Cloudformation lambda 函数代码引用生成的 s3 存储桶

Cloudformation lambda function code reference a generated s3 bucket

提前致谢!

所以我目前有一个创建 lambda 函数的云形成脚本,lambda 函数中的代码需要引用一个 s3 存储桶,该存储桶也需要由相同的 cloudformation 脚本生成。 lambda 函数的代码存储在一个 pre-cloudformation 存储桶中,该存储桶在 运行.

时被拉入

我遇到的问题是如何在我的 node.js lambda 函数代码中满足以编程方式生成的存储桶名称?

给我的感觉有点像先有鸡还是先有蛋!

您可以使用 Lambda function environment variable 引用您的 S3 存储桶。您的代码是静态的,不会按名称引用硬编码的存储桶。相反,它会从环境变量中检索存储桶名称。

在您的 CloudFormation 脚本中,您可以在 environment 属性.

下将环境变量设置为 AWS::Lambda::Function 定义的一部分

例如:

"Resources" : {

    "MyFunction" : {
      "Type" : "AWS::Lambda::Function",
      "Properties": {
        "Environment" : {
          "Variables" : {
            "BucketName" : { "Ref" : "MyBucket" }
          }
        },
      }
    },
    "MyBucket" : {
       "Type" : "AWS::S3::Bucket"
    }
}