Lambdaが既存のVPCのSecurityGroupにデプロイされるServerlessFramework Lambdaデプロイメントを作成することは可能ですか?サービスのデプロイまたはスタックがネットワークアーティファクトの1つを所有することを望まないのですか?
はい、そうです。 serverless.yml
のvpc
構成は、既存のサブネットとセキュリティグループを参照する必要があります。このようなもの:
vpc:
securityGroupIds:
- securityGroupId1
- securityGroupId2
subnetIds:
- subnetId1
- subnetId2
見てください https://serverless.com/framework/docs/providers/aws/guide/functions/#vpc-configuration
次のセットアップは、サーバーレスバージョン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
@Nebulasticによって提供された回答の拡張。
これは、さまざまなステージで複数のサブネットから実行するようにVPCLambdaを設定する場合です。
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