web-dev-qa-db-ja.com

サーバーレスフレームワークは、既存のVPCとサブネットにLambdaを追加します

Lambdaが既存のVPCのSecurityGroupにデプロイされるServerlessFramework Lambdaデプロイメントを作成することは可能ですか?サービスのデプロイまたはスタックがネットワークアーティファクトの1つを所有することを望まないのですか?

9
Ryan Fisch

はい、そうです。 serverless.ymlvpc構成は、既存のサブネットとセキュリティグループを参照する必要があります。このようなもの:

vpc:
    securityGroupIds:
      - securityGroupId1
      - securityGroupId2
    subnetIds:
      - subnetId1
      - subnetId2

見てください https://serverless.com/framework/docs/providers/aws/guide/functions/#vpc-configuration

12
Brian Winant

次のセットアップは、サーバーレスバージョン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
2
Nebulastic

@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
0
kiran01bm