使serverless.yml使用现有的vpc

时间:2019-11-11 07:07:57

标签: serverless-framework

是否可以获取serverless.yml模板,以便用VPC ID替换AWS账户中已经存在的VPC?

我和我的同事每个人都有我们自己的AWS帐户,这些帐户由我们公司通过单个VPC设置(并且我们无权创建自己的VPC),所以我希望我的serverless.yml能够每个人,获取该人帐户的VPC ID,并将其替换为serverless.yml

是否可以使用无服务器执行此操作?是否有必要使用环境变量对其进行参数化设置?

2 个答案:

答案 0 :(得分:1)

如果VPC是通过Cloudformation模板创建的,则可以your own kernel来输入每个VPC ID。然后,在serverless.yml文件中,您可以使用内置的固有函数export a stack output value来读取导出的vpc id的值。

如果您不使用Cloudformation或无法导出vpc ID,那么我建议将其作为参数添加到无服务器。我个人认为为VPC ID设置参数没有什么害处。

答案 1 :(得分:1)

编辑您的serverless.yml

尝试在功能或提供者部分添加vpc:

特定功能:

 functions:
  getAllTrucksTSPFleetilla:
      handler: src/functions/get-all-trip-stop-parking.handler
      vpc:
        securityGroupIds:
          - sg-xxxxxxx1
          - sg-xxxxxxx2
        subnetIds:
          - subnet-xxxxxx1
          - subnet-xxxxxx2
          - subnet-xxxxxx3

在所有项目中:

provider:
  name: aws
  vpc:
    securityGroupIds:
      - sg-xxxxxxx1
      - sg-xxxxxxx2
    subnet-xxxxxx1
      - subnet-xxxxxx2
      - subnet-xxxxxx3

要获取安全组和相关信息,您需要转到aws控制台上的 VPC服务并找到此信息。

访问无服务器文档:sls vpc docs