在Google Compute Engine上设置静态出站/源IP地址

时间:2017-10-08 15:15:26

标签: python google-compute-engine

我为Google Compute Engine虚拟机实例设置了静态外部IP地址,当我通过SSH连接到计算机时,我的出站请求(例如curl canhazip.com)来自静态外部IP,但是当我启动Google Cloud时从控制台内部或我部署应用程序时的Shell(例如通过gcloud app部署的Python应用程序,IP地址是不同的。有关如何使这一点保持一致的任何想法吗?我需要在app.yaml中指定一些内容吗?在其他如果我想部署一个看起来像这样的Python应用程序:

import requests

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

如何将其配置为始终返回我已设置的相同静态外部IP?

1 个答案:

答案 0 :(得分: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。但是,此设置也无法从Cloud Shell或App Engine Standard中使用。