如何使用无服务器 VPC 和 Cloud VPN 将 AppEngine Standard Gen2 连接到本地资源?

How to connect AppEngine Standard Gen2 to local resource using Serverless VPC and Cloud VPN?

我有一个项目设置,我可以在其中通过在 VPC 网络上启动的 AppEngine Flexible 实例连接到本地资源,该网络设置有与本地防火墙的 Cloud VPN 连接。

随着 us-east1 区域无服务器 VPC 的发布,我想将我的设置替换为使用 AppEngine Standard Gen2 实例而不是 Flexible 实例以节省成本。我为托管我的 AppEngine 应用程序的 region/network 设置了一个无服务器 VPC,并配置了我的 Cloud VPN 连接,相应地更新了我的 app.yaml,并推送了一个新版本。

我不断收到尝试使用无服务器 VPC 连接到本地资源的新版本的超时错误。

一些上下文:

我不太清楚无服务器 VPC 的工作原理,所以我不确定如何开始进行故障排除。当我单击 192.168.11.0/24 目的地的路由规则时,我可以看到列出的 AppEngine Flexible 实例以及一些 "serverless-vpc-access" 标记的实例,这些实例似乎位于不同的子网但使用 10.8.0.0/28 IP .

此配置应该有效吗?如果不是,我需要做哪些更改才能支持它?

您的问题(很可能)是由静态路由引起的。您是否有从您的 VPN 到 VPC 连接器的 return 流量的路由?查看为 VPN 定义的路由。

无服务器 VPC 连接器的目的是允许从 App Engine 标准连接到您的 VPC 网络,因为 App Engine 标准环境由 Google 托管和管理,而不是您的 VPC 网络的一部分.

可在此处找到更多详细信息:[https://cloud.google.com/vpc/docs/configure-serverless-vpc-access]

话虽如此,您应该验证以下内容:

  1. 确保您已将新子网 (/28) 添加到本地本地路由,并将您的 VPN 网关作为下一跳。由于您使用的是基于路由的路由,因此与 VPN 上的流量选择器无关。 确保您的本地防火墙配置为接受新配置来回连接 (/28)。

  2. 虽然这可能不适用于您,但我只是想指出通过无服务器 VPC 连接器到 App Engine 标准环境的通信是不可能的,除非它是在同一个原始 tcp 上完成的源自同一个 App Engine 的连接(已建立 TCP)。

你的配置,按照你描述的,是肯定可以实现的。如前所述,您只需验证几项即可确保其正常工作。