更新时间:2026-01-09 GMT+08:00

函数配置VPC

函数支持用户创建虚拟私有云(VPC)并访问自己VPC内的资源,同时支持通过SNAT方式绑定EIP访问外网。在编辑函数时,您可以通过配置,为函数增加VPC的网络的访问能力。

前提条件

使用VPC访问能力时函数必须配置具备VPC管理权限的委托,创建委托请参考创建委托

配置VPC

函数配置VPC访问功能步骤如下:

  1. 登录FunctionGraph控制台,进入“函数”界面。
  2. 在“函数”界面创建一个目标函数,参考创建并初始化函数
  3. 单击已创建的函数名称,进入函数“配置”详情页面。
  4. 选择“设置 > 网络设置”,开启“函数访问VPC内资源”,参考表1配置VPC访问。

    表1 配置函数访问VPC

    参数

    说明

    VPC

    必选参数。

    选择函数需要访问的VPC。

    创建虚拟私有云VPC和子网请参考VPC服务的“创建虚拟私有云基本信息及默认子网”章节。

    子网

    必选参数。

    选择函数需要访问的VPC下的子网。

    单个租户在一个项目下所有的函数最多能绑定4个不同的子网。(不区分VPC,此处的项目指在创建帐号的时候分配的一个32位的唯一值project_id,且主帐户和子帐户的project_id相同。)

    域名

    可选参数。

    如果函数需要通过内网域名访问VPC内的服务,可配置和VPC绑定的域名,域名可以配置多个。

    • 创建内网域名请参见DNS服务的“创建内网域名”章节。
    • 当前函数仅支持对A记录集类型的域名解析,记录集添加请参见DNS服务的“记录集类型及配置规则”章节。

    VPC对等连接网段

    可选参数。

    您可以声明代码中使用到的VPC网段,用以检测是否与服务使用VPC网段冲突。网段间使用分号分隔且不能超过5个。

    安全组

    必选参数。

    选择已创建的安全组,选择后下方会展示安全组的入方向规则和出方向规则。

    需在选择的安全组中配置如下要求的入方向规则和出方向规则,添加规则详情请参见VPC服务的“添加安全组规则”章节。

    • 入方向规则:配置“策略”为“允许”、“协议端口”为“ICMP”、“源地址”设置的最小范围为函数所选VPC网段的规则。

      例如,函数的VPC网段为192.168.x.x/24,安全组的入方向需增加一个规则:“策略”选择“允许”、“协议端口”选择“ICMP”、“源地址”设置最小范围的网段为192.168.x.x/24。

    • 出方向规则:配置“策略”为“允许”的相关业务端口规则。

  5. 单击“保存”完成VPC配置。

示例:

利用VPC配置访问Redis示例如下。

  1. 在分布式缓存服务控制台查看缓存实例的虚拟私有云和子网。如果没有实例请先进入分布式缓存服务控制台创建缓存实例。
  2. 在函数工作流控制台的函数配置详情界面配置VPC,配置信息如下。

    • VPC访问:开启“VPC访问”。
    • VPC:选择1中查询的虚拟私有云。
    • 子网:选择1中查询的子网。

  3. 配置后,使用如下代码访问Redis实例:

    # -*- coding:utf-8 -*-
    import redis
    
    def handler (event, context):
        r = redis.StrictRedis(host='192.168.1.143', port=6379, db=0)
        r.set('product', 'FunctionGraph')
        print r.keys('*')
        print r.get('product')

函数在VPC的网络中访问外网配置

部署在VPC中的函数默认是和外网隔离开的,如果您想让函数同时具备内网访问和外网访问能力,您可以选择给VPC添加NAT网关。

前提条件:

  1. 已创建虚拟私有云和子网,请参考VPC服务的“创建虚拟私有云基本信息及默认子网”章节。
  2. 已申请弹性云公网IP,请参考EIP服务的“申请弹性公网IP”章节。

创建NAT网关步骤如下:

  1. 登录NAT网关控制台,单击“Create NAT Gateway”。
  2. 在NAT网关创建界面,输入相关信息,选择已创建的虚拟私有云及子网(此处以vpc-01为例),在确认规格信息后提交,完成创建。具体操作步骤请参考NAT服务的“创建NAT网关”章节。
  3. 创建完成后,单击NAT网关名称进入详情页面,选择“添加SNAT规则”,单击“确定”完成配置。