我希望开发一个Google Cloud Functions端点,该端点将订阅对Google云端存储分区的文件更改,并将该文件FTP到第三方FTP站点,该站点将客户端的IP地址列入白名单。
因此,可以为Google Cloud Functions容器获取静态IP地址吗?
答案 0 :(得分:5)
不,这是不可能的,也不可能。也就是说,您可以选择将所有谷歌的IP列入白名单。
Where can I find Compute Engine IP ranges? →提供访问GCP中所有ips的方法。
但请注意安全隐患。
答案 1 :(得分:3)
首先,这不是一个不合理的请求,请不要生气。 AWS Lambdas已经支持此功能,并且已经有一段时间了。如果您对此功能感兴趣,请为该功能请求加注星标:https://issuetracker.google.com/issues/112629904
第二,我们得出了一种解决方法,我也对此问题发表了看法,也许这也将对您有用:
此方法的警告: -我们希望将代理放置在受管实例组中,并在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)。