Google Cloud-Google Cloud功能的出口IP / NAT /代理

时间:2018-08-13 08:38:13

标签: google-cloud-platform google-cloud-functions

我正在为我的公司建立一个数据提取层,在那里我有很多不同的集成点(其余api)。

某些API要求您从列入白名单的IP连接。

由于它的可扩展性和降低的成本,我真的很想使用google cloud功能/ pubsub来构建提取逻辑。

但是问题是,谷歌云功能总是从随机ips连接,对此我们无能为力,对此问题的回答是:Possible to get static IP address for Google Cloud Functions?

所以我的问题是:是否可以通过代理/ nat云功能来使它们来自一组静态ip?

2 个答案:

答案 0 :(得分:3)

现在可以通过为Cloud Functions特别是Egress Settings配置网络设置来实现。

摘自官方Docs

通过控制台:

  1. 在云控制台中打开“功能概述”页面
  2. 单击创建功能。或者,单击现有功能以转到其详细信息页面,然后单击编辑
  3. 通过单击环境变量,网络,超时等来扩展高级设置。
  4. 在“网络”部分的“出口设置”下,选择“无服务器VPC访问”连接器。
  5. 根据您要如何通过连接器路由出站流量,选择适当的出口设置。

通过gcloud:

gcloud functions deploy FUNCTION_NAME \
--vpc-connector CONNECTOR_NAME \
--egress-settings EGRESS_SETTINGS \
FLAGS...

其中:

FUNCTION_NAME 是您的函数的名称。 CONNECTOR_NAME 是要使用的无服务器VPC访问连接器的名称。有关更多信息,请参见gcloud文档。

注意:如果要更新出口,则可以省略--vpc-connector标志 已有连接器的现有功能上的设置。

EGRESS_SETTINGS 是出口设置支持的值之一:请参见gcloud documentation

标志 ...是指您传递给deploy命令的其他标志。

根据您希望通过连接器路由出站流量的方式选择适当的出口设置。

此后,您只需要

  1. Set up Cloud NAT
  2. Specify a static IP address for NAT

创建云NAT:

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges \
    --enable-logging

指定IP地址:

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --nat-external-ip-pool=ip-address1,ip-address2

答案 1 :(得分:0)

正如@Murtaza Kanchwala提到的那样,不可能使用代理/ NAT云功能,以便它们将来自一组静态IP。但是,由于这将是一个不错的功能,因此我打开了一个feature request来实现该功能。有关所有其他更新,请参阅请求本身,因为所有更新都将发布在此处。