2017-10-08 66 views
1

我为Google Compute Engine虚拟机实例设置了一个静态外部IP地址,当我将SSH连入计算机时,我的出站请求(例如curl canhazip.com)静态外部IP,但是当我从控制台启动Google Cloud Shell或部署应用程序时(例如,通过gcloud应用程序部署的Python应用程序,IP地址不同,有关如何使其一致性的任何想法?需要在app.yaml中指定的东西。换句话说,如果我想部署一个看起来像这样的Python应用程序:在谷歌计算引擎上设置静态出站/源IP地址

import requests 

print('requesting...') 
res = requests.get("http://ip.jsontest.com/") 
print(res.text) 

我将如何配置它总是返回我已经设置相同的静态外部IP up?

回答

1

Cloud Shell和App Engine都没有直接网络访问权限。

  • 对于Cloud Shell,有limitations to network access。由于Cloud Shell是ephemeral instance,因此您无法对使用的IP地址等内容进行进一步控制。

  • App Engine Standard在没有网络访问权限的情况下运行沙盒环境。应用程序必须使用Sockets or URLFetch API来提出外部请求。 python运行时补丁套接字和urllib,以便大多数python代码可以使用这些API,而无需进一步修改。

如果您需要传出连接的一致源IP地址,则可能需要寻找egress NAT gateway。但是,此设置也不适用于云端Shell或App Engine标准。