我有一个大致如下所示的 cloudformation 片段:
"LambdaScale": {
"Type": "AWS::Lambda::Function",
"Properties": {
...
"Code": {
"S3Bucket": {
{
"Ref": "LambdaBucket"
}
},
"S3Key": {
"Fn::Join": [
"/",
[
{
"Ref": "LambdaDirectoryKey"
},
"some_func.zip"
]
]
}
},
...
}
但是当我尝试运行它时,出现以下错误:
An error occurred (ValidationError) when calling the CreateStack operation: Template format error: [/Resources/LambdaScale/Type/Code/S3Bucket] map keys must be strings; received a map instead
读到这里,我觉得 S3Bucket 和 S3Key 属性需要字符串文字,并且不支持字符串操作函数。这真的是真的吗?如果是这样,这对于在不同环境中部署这些模板来说是一个巨大的障碍。
是否有我没有考虑过的解决方法?感谢您的建议!
最佳答案
你有:
"S3Bucket": {
{
"Ref": "LambdaBucket"
}
},
可能应该是:
"S3Bucket": {
"Ref": "LambdaBucket"
},
关于string - 在 Cloudformation 中使用字符串函数来获取 Lambda 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48175648/