默认情况下,函数计算无法访问VPC中的资源,如果您想让函数计算能够访问VPC中的资源,您需要手动为服务配置VPC功能和相关权限。
前提条件
背景信息
判断是否需要配置VPC
使用VPC功能会带来一些额外的费用,如果可以使用RAM授权方式访问的资源建议您不要使用VPC功能,例如OTS。因此,在配置VPC前,需要先判断您的场景是否需要使用VPC功能。
函数计算访问VPC的配置是服务级别的,为一个服务配置了访问VPC的能力后,那么此服务下的所有函数都可以访问VPC。
vpcConfig属性
- vpcId:要访问的VPC ID。
- vSwitchIds:一系列交换机的列表,至少要提供一个VSwitch ID。
该字段限定了函数计算可以访问的子网,建议在vSwitchIds中设置两个或多个VSwitch,如果一个可用区出现故障或IP地址不足,您的函数可以在其他子网下运行。如果指定了多个VSwitch ID,函数计算在创建ENI的时候会随机选取一个。
- securityGroupId:ENI所在安全组的ID。
"vpcConfig": { "vpcId": "string", "vSwitchIds": [ "string" ], "securityGroupId": "string" }
此安全组是ENI所在的安全组,也就是函数计算所在的安全组,安全组限定了函数计算在VPC中的出入站规则。需要设置您的VPC所在安全组的入站规则为允许函数计算所在的安全组访问。否则,函数计算无法顺畅地访问您的VPC内资源。
访问公网
函数计算的服务中有internetAccess字段,布尔类型,用于表示此服务是否可以访问公网,默认值为true,表示此服务可以访问互联网。您可以将internetAccess字段设置为false,表示此服务下的所有函数都无法连接互联网。
原理说明
专有网络VPC是基于阿里云创建的自定义私有网络,不同的VPC之间彻底逻辑隔离。您可以在自己创建的VPC内创建和管理云产品实例,例如ECS、SLB、RDS等,以便这些资源不被公共互联网访问。
函数计算访问VPC内的资源原理如下:
创建弹性网卡ENI时,需要您提供VPC ID、安全组ID、交换机ID等配置信息,函数计算使用这些信息配置弹性网卡ENI,您的函数可以通过ENI安全访问指定VPC中的资源。
函数计算访问VPC内资源的使用示例请参见访问数据库概述。
注意事项
- 华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)这四个地域如果无法使用VPC功能,则需要根据控制台的申请提示申请开通。
- 函数计算支持访问的可用区列表如下。如果您的资源所在的可用区不在以下列表中,请参见遇到VSwitch is in unsupported zone的错误怎么办?。
地域 地域ID VPC 华东1(杭州) cn-hangzhou cn-hangzhou-f,cn-hangzhou-g,cn-hangzhou-h 华东2(上海) cn-shanghai cn-shanghai-b,cn-shanghai-e,cn-shanghai-g,cn-shanghai-f 华北1(青岛) cn-qingdao cn-qingdao-c 华北2(北京) cn-beijing cn-beijing-h,cn-beijing-c,cn-beijing-e,cn-beijing-f 华北3(张家口) cn-zhangjiakou cn-zhangjiakou-b,cn-zhangjiakou-a 华北5(呼和浩特) cn-huhehaote cn-huhehaote-a,cn-huhehaote-b 华南1(深圳) cn-shenzhen cn-shenzhen-e,cn-shenzhen-d 西南1(成都) cn-chengdu cn-chengdu-a, cn-chengdu-b 中国香港 cn-hongkong cn-hongkong-c 新加坡 ap-southeast-1 ap-southeast-1a,ap-southeast-1b 澳大利亚(悉尼) ap-southeast-2 ap-southeast-2a,ap-southeast-2b 马来西亚(吉隆坡) ap-southeast-3 ap-southeast-3a 印度尼西亚(雅加达) ap-southeast-5 ap-southeast-5a,ap-southeast-5b 日本(东京) ap-northeast-1 ap-northeast-1b,ap-northeast-1a 英国(伦敦) eu-west-1 eu-west-1a 德国(法兰克福) eu-central-1 eu-central-a,eu-central-1a,eu-central-1b 美国(硅谷) us-west-1 us-west-1a,us-west-1b 美国(弗吉尼亚) us-east-1 us-east-1b,us-east-1a 印度(孟买) ap-south-1 ap-south-1a,ap-south-1b
网络访问能力
根据对网络的不同设置,函数存在四种类型的网络访问能力,您可以根据自己的需求设置。
是否允许函数访问公网 | 是否允许函数访问VPC内资源 | 网络访问能力 |
---|---|---|
是 | 是 | 函数可以访问公网,也可以访问VPC。 |
是 | 否 | 函数可以访问公网,不可以访问VPC。 |
否 | 是 | 函数不访问公网,可以访问VPC。 |
否 | 否 | 函数不可以访问公网,也不可以访问VPC。 |
配置网络及权限
函数计算访问VPC的配置以及权限的配置是服务级别的,为一个服务配置了访问VPC的能力后,此服务下的所有函数都可以访问VPC。