首页 > 解决方案 > 在 aws lambda 无服务器框架中使用自定义 vpc 而不是默认 vpc

问题描述

我的 aws 帐户中有两个 vpc(创建帐户时默认出现,另一个由我创建)。我想在自定义创建的 vpc 中而不是默认 vpc 中部署我的 lambda 函数

  vpc:
    subnetIds:
      - subnet-123456
      - subnet-452345
    securityGroupIds:
      - sg-ff555144
      - sg-edfe5566

上面在默认 vpc 中创建了 lambda 函数

serverless文档不包含在 serverless.yml 中指定自定义 vpc 的方式

标签: amazon-web-servicesaws-lambdaamazon-cloudformationserverless-frameworkamazon-vpc

解决方案


首先,您不需要将 lambda 部署到特定的 VPC 中,仅当您需要 Lambda 函数来专门访问仅在您的 VPC 中可用的资源时才需要这样做。如果您没有这方面的用例,您可以VpcConfig从您的 lambda 资源中删除。

其次,如果您确实需要将它放在特定的内部,那么在 Cloudformation 中,您不会将其链接到 VPC,而是将其链接到该 VPC 内的子网和安全组。因此,在您的新 VPC 中,确保您创建了相关的安全组和子网 - 然后将这些 ID 放入上述代码段中。

参考https ://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-vpcconfig


推荐阅读