Aws lambda 无服务器框架将Lambda添加到现有VPC和子网
是否可以创建一个无服务器框架Lambda部署,将Lambda部署到现有VPC的SecurityGroup中?我不想让服务部署或它的堆栈拥有一个网络工件 是的。Aws lambda 无服务器框架将Lambda添加到现有VPC和子网,aws-lambda,aws-sdk,aws-api-gateway,amazon-cloudformation,serverless-framework,Aws Lambda,Aws Sdk,Aws Api Gateway,Amazon Cloudformation,Serverless Framework,是否可以创建一个无服务器框架Lambda部署,将Lambda部署到现有VPC的SecurityGroup中?我不想让服务部署或它的堆栈拥有一个网络工件 是的。serverless.yml中的vpc配置只需要引用现有的子网和安全组。大概是这样的: vpc: securityGroupIds: - securityGroupId1 - securityGroupId2 subnetIds: - subnetId1 - subnetId2
serverless.yml
中的vpc
配置只需要引用现有的子网和安全组。大概是这样的:
vpc:
securityGroupIds:
- securityGroupId1
- securityGroupId2
subnetIds:
- subnetId1
- subnetId2
看一看以下设置在无服务器版本1.51.0中非常适合我。我包括了登台变量,因为我的环境使用不同的子网和安全组进行逻辑隔离。我的网络设置是一个已经存在的VPC,带有子网和安全组
provider:
name: aws
....
....
vpc:
securityGroupIds:
- ${self:custom.securityGroupId.${self:provider.stage}}
subnetIds:
- ${self:custom.subnetId.${self:provider.stage}}
custom:
stages:
- tst
- dev
- prd
securityGroupId:
local: sg-local
tst: sg-tst
dev: sg-dev
prd: sg-prd
subnetId:
local: subnet-local
tst: subnet-tst
dev: subnet-dev
prd: subnet-prd
plugins:
- serverless-stage-manager
对@Nebulatic提供的答案的扩展 此时,您需要将VPC Lambda配置为从多个子网执行不同阶段的操作
provider:
name: aws
vpc:
securityGroupIds:
- ${self:custom.securityGroupId.${self:provider.stage}}
subnetIds:
- ${self:custom.subnetId1.${self:provider.stage}}
- ${self:custom.subnetId2.${self:provider.stage}}
- ${self:custom.subnetId3.${self:provider.stage}}
custom:
stage: ${opt:stage, self:provider.stage}
securityGroupId:
prod: sgId-prod
test: sgId-test
dev: sgId-dev
subnetId1:
prod: subnetId1-prod
test: subnetId1-test
dev: subnetId1-dev
subnetId2:
prod: subnetId2-prod
test: subnetId2-test
dev: subnetId2-dev
subnetId2:
prod: subnetId3-prod
test: subnetId3-test
dev: subnetId3-dev
@布莱恩,这不管用。由于某些原因,VPC未被添加。请注意,如果您已经部署了无服务器api,则可能需要使用
sls deploy--force
,甚至需要删除并重新部署无服务器api。如果您希望创建一个接口VPC端点,以允许lambda连接到服务,在通过clouformation创建vpc端点时,您如何提供vpc Id?您可以使用输出在CloudFormation中导出vpc Id,然后使用${cf:WhateverYourExportedVPCOutputNameIs}在Serverless中引用vpc Id