可以获得Google Cloud Functions的静态IP地址吗?

时间:2016-08-07 07:19:48

标签: google-cloud-functions

我希望开发一个Google Cloud Functions端点,该端点将订阅对Google云端存储分区的文件更改,并将该文件FTP到第三方FTP站点,该站点将客户端的IP地址列入白名单。

因此,可以为Google Cloud Functions容器获取静态IP地址吗?

6 个答案:

答案 0 :(得分:5)

不,这是不可能的,也不可能。也就是说,您可以选择将所有谷歌的IP列入白名单。

  

Where can I find Compute Engine IP ranges? →提供访问GCP中所有ips的方法。

但请注意安全隐患。

答案 1 :(得分:3)

首先,这不是一个不合理的请求,请不要生气。 AWS Lambdas已经支持此功能,并且已经有一段时间了。如果您对此功能感兴趣,请为该功能请求加注星标:https://issuetracker.google.com/issues/112629904

第二,我们得出了一种解决方法,我也对此问题发表了看法,也许这也将对您有用:

  • 设置VPC连接器
  • 在VPC上创建云NAT
  • 创建没有公共IP的代理主机,以便通过Cloud NAT路由出口流量
  • 配置使用VPC连接器并配置为对所有出站流量使用代理服务器的云功能

此方法的警告: -我们希望将代理放置在受管实例组中,并在GCP内部LB后面,以便可以动态扩展,但是GCP支持已确认这是不可能的,因为GCP ILB基本上将子网列入白名单,并且云功能CIDR在外部该子网

我希望这会有所帮助。

更新:就在前几天,他们宣布了此功能的抢先体验版!

“此处是Cloud Functions PM。实际上,如果您想对其进行测试,我们可以抢先预览此功能。

请填写此表格,以便我们添加您...”

可以在上面的“问题”中找到该表格。

答案 2 :(得分:3)

此功能现在是Google Cloud Functions(see here)的本地部分

根据the GCF docs,此过程分为两步:

将功能出口与静态IP地址相关联在某些情况下, 您可能希望将源自功能的流量关联 使用静态IP地址。例如,如果您 调用仅允许白名单请求的外部服务 IP地址。

通过VPC网络路由功能的出口。见 上一节,通过您的VPC网络的路由功能出口。

设置Cloud NAT并指定一个静态IP地址。遵循以下指南 指定NAT的子网范围并指定要设置的NAT的IP地址 与功能的无服务器关联的子网的Cloud NAT VPC访问连接器。

答案 3 :(得分:1)

无法为Google Cloud Functions分配静态IP,因为它与“无服务器”架构的本质非常正交,即按需分配和取消分配服务器。

但是,您可以利用HTTP代理来达到类似的效果。设置一个谷歌Compute Engine执行个体,它分配一个静态IP,并安装一个代理库,如https://www.npmjs.com/package/http-proxy。然后,您可以将所有的外部API,通过这个代理调用等。

然而,这可能降低了扩展性和灵活性,但它可能是一种解决方法。

答案 4 :(得分:1)

请参阅以下链接: https://cloud.google.com/functions/docs/networking/network-settings#associate-static-ip 根据Google的说法,该功能已发布,可以查看整个主题 https://issuetracker.google.com/issues/112629904

答案 5 :(得分:0)

对于那些希望将云功能与静态IP地址相关联以将API的IP白名单列入白名单的人,我建议您仔细阅读本逐步指南,该指南对我有很大帮助: https://dev.to/alvardev/gcp-cloud-functions-with-a-static-ip-3fe9

我还想指定此解决方案适用于Google Cloud Functions和Firebase Functions(因为它基于GCP)。