问题描述
我们的AppEngine应用正在连接到需要VPN的远程服务,还要求我向本地计算机上的hosts文件中添加条目以连接到其端点。 例如
10.200.30.150 foo.bar.com
在本地运行应用程序时,此方法工作正常,但我不知道如何在Google Cloud上进行设置,使其在部署后即可正常工作。 我不能直接使用IP地址,因为它会错误显示IP不在证书列表中。
如何将主机名映射到Google Cloud中的IP,以便AppEngine可以使用它们?
解决方法
由于注释中提到的错误,我怀疑直接通过IP连接失败,因为证书无法将IP到DNS的映射识别为有效,因此安全连接设置中断。根据通过VPN连接到API并调整主机映射的要求,您可以尝试做一些尝试。
可行的最简单方法是使用Google Compute Engine VM实例,因为在那里您可以操作etc/hosts
文件并复制本地计算机设置。该VM既可以用作主要应用程序服务,也可以用作从App Engine到第三方API端点的代理。要走那条路线,我建议您看一下这些two posts,它们解释了如何在GCE上更改etc/hosts
文件(由于VM会定期覆盖该文件,因此无法一次更改文件) ,请参阅cronjob的帖子,如解决方法)。
另外,由于您的应用程序在App Engine灵活的环境中运行,因此有机会为docker容器提供打包的应用程序。可能可以在docker文件中设置上面的解决方法,并且也可以在App Engine中使用它。