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"
}
}
提前致谢!
所以我目前有一个创建 lambda 函数的云形成脚本,lambda 函数中的代码需要引用一个 s3 存储桶,该存储桶也需要由相同的 cloudformation 脚本生成。 lambda 函数的代码存储在一个 pre-cloudformation 存储桶中,该存储桶在 运行.
时被拉入我遇到的问题是如何在我的 node.js lambda 函数代码中满足以编程方式生成的存储桶名称?
给我的感觉有点像先有鸡还是先有蛋!
您可以使用 Lambda function environment variable 引用您的 S3 存储桶。您的代码是静态的,不会按名称引用硬编码的存储桶。相反,它会从环境变量中检索存储桶名称。
在您的 CloudFormation 脚本中,您可以在 environment
属性.
例如:
"Resources" : {
"MyFunction" : {
"Type" : "AWS::Lambda::Function",
"Properties": {
"Environment" : {
"Variables" : {
"BucketName" : { "Ref" : "MyBucket" }
}
},
}
},
"MyBucket" : {
"Type" : "AWS::S3::Bucket"
}
}