什么是 AppEngine 的主机文件映射?

What is the equivalent of a hosts file mapping for AppEngine?

我们的 AppEngine 应用程序正在连接到需要 VPN 的远程服务,并且还要求我将条目添加到本地计算机上的主机文件,以便连接到它们的端点。 例如

10.200.30.150 foo.bar.com

当 运行 本地应用程序时,这工作正常,但我无法弄清楚如何在 Google 云上设置它以在部署后工作。 我不能直接使用 IP 地址,因为 IP 不在证书列表中会出错。

如何将主机名映射到 Google 云中的 IP,以便 AppEngine 可以使用它们?

根据评论中提到的错误,我怀疑直接通过 IP 连接失败,因为证书无法将 IP 识别为有效的 DNS 映射,因此安全连接设置中断。根据通过 VPN 连接到 API 和调整主机映射的要求,您可以尝试一些操作。

最简单可行的方法是使用 Google Compute Engine VM 实例,因为在那里您可以操作 etc/hosts 文件并复制本地计算机设置。此 VM 可以用作主要应用程序服务,也可以用作 App Engine 到第 3 方 API 端点的代理。要走那条路,我建议看看这些 two posts,它解释了如何在 GCE 上更改 etc/hosts 文件(更改文件一次是行不通的,因为 VM 会定期覆盖它,请参阅帖子对于 cronjob 之类的解决方法)。

另外,当您的应用程序在 App Engine 柔性环境中运行时,有机会提供一个 docker 容器来打包应用程序。可以在 docker 文件中设置上面的解决方法,并使其在 App Engine 中也能正常工作。