Amazon cloudformation 在Dashboard Cloudwatch中使用Fn::ImportValue
我正在尝试在Cloudformation中设置仪表板,并希望使用导出的值使其具有动态性:但它没有说明: 仪表板正文无效,存在1个验证错误:[{“消息”:“无效的度量字段类型,只允许使用\“字符串\”类型”,“数据路径”:“/widgets/0/properties/metrics/0/3”}](服务:AmazonCloudWatch;状态代码:400;错误代码:InvalidParameterInput;请求ID:01f3ebfa-d856-11e8-a2dc-dd8c90ad1109) 代码是:Amazon cloudformation 在Dashboard Cloudwatch中使用Fn::ImportValue,amazon-cloudformation,Amazon Cloudformation,我正在尝试在Cloudformation中设置仪表板,并希望使用导出的值使其具有动态性:但它没有说明: 仪表板正文无效,存在1个验证错误:[{“消息”:“无效的度量字段类型,只允许使用\“字符串\”类型”,“数据路径”:“/widgets/0/properties/metrics/0/3”}](服务:AmazonCloudWatch;状态代码:400;错误代码:InvalidParameterInput;请求ID:01f3ebfa-d856-11e8-a2dc-dd8c90ad1109) 代码是
Resources:
NATDashboard:
Type: AWS::CloudWatch::Dashboard
Properties:
DashboardName: NAT-Dashboard
DashboardBody: !Sub |
{
"widgets": [
{
"type": "metric",
"x": 0,
"y": 0,
"width": 3,
"height": 9,
"properties": {
"metrics": [
[ "AWS/NATGateway", "ActiveConnectionCount", "NatGatewayId", {"Fn::ImportValue": {"Fn::Sub": "${EnvironmentName}-NATGateway1Id"}}, { "stat": "Maximum" } ],
[ "...", "nat-057236a417c993781", { "stat": "Maximum" } ],
[ "...", "nat-09b8d012addc7e0fe", { "stat": "Maximum" } ]
],
"view": "singleValue",
"region": "${AWS::Region}"
}
},
在我介绍Fn::ImportValue之前,它一直有效;是否有机会在此处使用导出的值
Merci A是一个字符串,是
的缩写形式(没有映射)!Sub
将显示。如果要使用Fn::ImportValue
函数,必须使用键值映射语法:
资源:
NATDashboard:
类型:“AWS::CloudWatch::Dashboard”
特性:
仪表板名称:“NAT仪表板”
仪表板主体:!附属的
- |
{
“小部件”:[
{
“类型”:“公制”,
“x”:0,
“y”:0,
“宽度”:3,
“高度”:9,
“财产”:{
“指标”:[
[“AWS/NATGateway”、“ActiveConnectionCount”、“NatGatewayId”、“${NatGatewayId}”、{“stat”:“Maximum”}],
[“…”、“nat-057236a417c993781”、{“统计”:“最大值”}],
[“…”,“nat-09b8d012addc7e0fe”,{“统计”:“最大值”}]
],
“视图”:“单值”,
“区域”:“${AWS::region}”
}
}
]
}
-NatGatewayId:
'Fn::ImportValue':!子“${EnvironmentName}-NATGateway1Id”
非常感谢,但它不起作用;它说:模板格式错误:YAML格式不正确。(第58行,第29列)
@aerioeus你能再试一次吗?我试过了,得到了这个错误:字段仪表板主体必须是一个有效的JSON对象(服务:AmazonCloudWatch;状态代码:400;错误代码:InvalidParameterInput;请求ID:760f3b72-d86b-11e8-b43c-4f900131ef47)
发现错误:它必须是“AWS/NATGateway”,“ActiveConnectionCount”,“NatGatewayId”,“${NatGatewayId}”,{“stat”:“Maximum”}]
和-NatGatewayId:Fn::ImportValue:!子“${EnvironmentName}-NATGateway1Id”
将${NatGatewayId}括在引号中以使其成为有效的JSON是有意义的。我用这个更新了答案。谢谢