函数配置VPC
函数支持用户创建虚拟私有云(VPC)并访问自己VPC内的资源,同时支持通过SNAT方式绑定EIP访问外网。在编辑函数时,您可以通过配置,为函数增加VPC的网络的访问能力。
前提条件
使用VPC访问能力时函数必须配置具备VPC管理权限的委托,创建委托请参考创建委托。
配置VPC
函数配置VPC访问功能步骤如下:
- 登录FunctionGraph控制台,进入“函数”界面。
- 在“函数”界面创建一个目标函数,参考创建并初始化函数。
- 单击已创建的函数名称,进入函数“配置”详情页面。
- 选择“设置 > 网络设置”,开启“函数访问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服务的“添加安全组规则”章节。
- 单击“保存”完成VPC配置。
示例:
利用VPC配置访问Redis示例如下。
- 在分布式缓存服务控制台查看缓存实例的虚拟私有云和子网。如果没有实例请先进入分布式缓存服务控制台创建缓存实例。
- 在函数工作流控制台的函数配置详情界面配置VPC,配置信息如下。
- 配置后,使用如下代码访问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网关。
前提条件:
- 已创建虚拟私有云和子网,请参考VPC服务的“创建虚拟私有云基本信息及默认子网”章节。
- 已申请弹性云公网IP,请参考EIP服务的“申请弹性公网IP”章节。
创建NAT网关步骤如下:
- 登录NAT网关控制台,单击“Create NAT Gateway”。
- 在NAT网关创建界面,输入相关信息,选择已创建的虚拟私有云及子网(此处以vpc-01为例),在确认规格信息后提交,完成创建。具体操作步骤请参考NAT服务的“创建NAT网关”章节。
- 创建完成后,单击NAT网关名称进入详情页面,选择“添加SNAT规则”,单击“确定”完成配置。