如何使用无服务器框架为 Lambda 指定多个子网

How to specify multiple subnets for Lambdas using serverless framework

我正在尝试使用 example code 指定我的 Lambda 在多个子网中可用:

provider:
  vpc: # Optional VPC. But if you use VPC then both subproperties (securityGroupIds and subnetIds) are required
    securityGroupIds:
      - securityGroupId1
      - securityGroupId2
    subnetIds:
      - subnetId1
      - subnetId2

但是,我已经尝试了几种变体,但出现了几种不同的错误,而且我只能让它与指定的单个子网一起工作。

provider:
  name:       aws
  runtime:    python3.8
  memorySize: 512
  lambdaHashingVersion: '20201221'
  stage: dev
  vpc:
    securityGroupIds:
    - sg-06e65a1f67c7XXXX
    subnetIds:
      - subnet-e84fXXXX
      – subnet-6e2cXXXX

Cannot parse "serverless.yml": bad indentation of a mapping entry in "$FOLDER/serverless.yml" (45:7)

另一种尝试,只是缩进有所变化:

provider:
  name:       aws
  runtime:    python3.8
  memorySize: 512
  lambdaHashingVersion: '20201221'
  stage: dev
  vpc:
    securityGroupIds:
    - sg-06e65a1f67c7XXXX
    subnetIds:
    - subnet-e84fXXXX
    – subnet-6e2cXXXX

Cannot parse "serverless.yml": can not read an implicit mapping pair; a colon is missed in "$FOLDER/serverless.yml" (45:22)

我还尝试了缩进 securityGroupIds 两个空格的变体,结果相同。任何想法表示赞赏。我的想法是,这似乎是无服务器框架中的一个错误,就像它期待密钥对而不是列表一样?

在子网部分中,第二个 - 不是 -。这是一个不同的角色。尝试删除它并用普通连字符替换它。

错误发生是因为它无法将文件解析为该字符的有效 yaml。