AWS Lambda 如果同时配置了 Internet 和 VPC 访问,可以使用不同的网关(Gateway)进行流量的转发。其中,Internet 访问使用 Internet Gateway,而 VPC 访问使用 VPC Endpoint。如下面的代码示例:
import boto3
ec2 = boto3.client('ec2') vpce = ec2.create_vpc_endpoint( VpcId='vpc-xxxxxxxx', ServiceName='com.amazonaws.us-west-2.s3', VpcEndpointType='Gateway', SubnetIds=[ 'subnet-xxxxxxxx', ], SecurityGroupIds=[ 'sg-xxxxxxxx', ] )
lambda = boto3.client('lambda') response = lambda.create_function( FunctionName='MyFunction', ... VpcConfig={ 'SubnetIds': [ 'subnet-xxxxxxxx', ], 'SecurityGroupIds': [ 'sg-xxxxxxxx', ], 'VpcId': 'vpc-xxxxxxxx', 'EndpointType': 'VPC_ENDPOINT' }, ... )
其中,create_vpc_endpoint
方法用于创建 VPC Endpoint,并指定相应的 VPC、服务名称、子网和安全组等信息。而 create_function
方法则用于创建 Lambda 函数,并指定 VPC 配置,其中包括子网、安全组、VPC ID 和 Endpoint 类型等信息。这样,在 Lambda 函数执行时,就可以根据配置将流量流向指定的 Internet 网关或 VPC Endpoint 中。