【问题标题】:AWS CloudFormation error: [Value of property {/Tags/0/Values} does not match type {Map}]AWS CloudFormation 错误:[属性值 {/Tags/0/Values} 与类型 {Map} 不匹配]
【发布时间】:2021-10-25 22:32:09
【问题描述】:
我正在尝试将标签添加到 cloudformation 模板中的 aws 资源。
"Type" : "AWS::MediaLive::resource",
"Properties" : {
"Name" : {"Ref": "name"},
"RoleArn" : {"Ref": "RoleArn"},
"Tags" : {"Key": "projectName", "Value":"myProject}
}
我收到标签不是“地图”格式的错误。
我做错了什么?
【问题讨论】:
标签:
amazon-web-services
tags
amazon-cloudformation
【解决方案1】:
CloudFormation 中的地图格式依赖于对现有参数的引用。所以在我的模板中,我必须为我的项目键/值创建一个参数:
"Parameters: {
"projectName": {
"Type": "String",
"Default": "myProject"
}
然后,在您的资源中,您可以使用“Ref”将标签添加到上面的参数中:
"Type" : "AWS::MediaLive::resource",
"Properties" : {
"Name" : {"Ref": "name"},
"RoleArn" : {"Ref": "RoleArn"},
"Tags" : {"projectName": {"Ref": "projectName"}}
}
本质上会发生的是CF将从参数声明中获取“Key”,在本例中为“projectName”,然后从上面参数中的默认值中获取“Value”,即“myProject” ”。