45

我想开发一个谷歌云函数,它将订阅谷歌云存储桶中的文件更改并将文件上传到第三方 FTP 站点。此 FTP 站点需要客户端的允许列表 IP 地址。

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

4

6 回答 6

52

更新:此功能现已在 GCP https://cloud.google.com/functions/docs/networking/network-settings#associate-static-ip中可用


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

其次,我们找到了一个解决方法,我也发布了该问题,也许这对你也有用:

  • 设置 VPC 连接器
  • 在 VPC 上创建 Cloud NAT
  • 创建一个没有公共 IP 的 Proxy 主机,因此出口流量通过 Cloud NAT 路由
  • 配置一个使用 VPC 连接器的云函数,并配置为对所有出站流量使用代理服务器

这种方法的一个警告:

  • 我们希望将代理放在托管实例组中并位于 GCP 内部 LB 之后,以便它可以动态扩展,但 GCP 支持人员已确认这是不可能的,因为 GCP ILB 基本上允许列出子网,而 Cloud Function CIDR 是在该子网之外

我希望这是有帮助的。

更新:就在前几天,他们宣布了此功能的早期访问测试版!!

“这里是 Cloud Functions PM。如果您想对其进行测试,我们实际上提供了此功能的早期访问预览。

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

该表格可以在上面链接的问题中找到。

于 2019-07-05T17:21:53.847 回答
10

请参阅下面的答案 - 花了很多年,但现在支持。

https://cloud.google.com/functions/docs/networking/network-settings#associate-static-ip

于 2017-01-15T03:42:33.803 回答
5

对于那些想要将云功能关联到静态 IP 地址以便将 API 的 IP 列入白名单的人,我建议您查看这个对我有很大帮助的分步指南: https ://dev.to/alvardev /gcp-cloud-functions-with-a-static-ip-3fe9

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

于 2020-08-17T20:31:54.410 回答
4

此功能现在是 Google Cloud Functions 的本机一部分(请参见此处

根据GCF 文档,这是一个两步过程:

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

通过 VPC 网络路由函数的出口。请参阅上一部分,通过您的 VPC 网络路由功能出口。

设置 Cloud NAT 并指定静态 IP 地址。按照为 NAT 指定子网范围和为 NAT 指定 IP 地址中的指南为与您的函数的无服务器 VPC 访问连接器关联的子网设置 Cloud NAT。

于 2020-04-18T15:17:55.753 回答
2

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

于 2020-05-06T18:07:15.913 回答
1

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

但是,您可以利用 HTTP 代理来实现类似的效果。设置一个 Google Compute Engine 实例,为其分配一个静态 IP 并安装一个代理库,例如https://www.npmjs.com/package/http-proxy。然后,您可以通过此代理路由所有外部 API 调用等。

但是,这可能会降低规模和灵活性,但这可能是一种解决方法。

于 2019-02-02T19:49:38.660 回答