amazon-cloudformation - 在 Cloudwatch 仪表板模板 (Cloudformation) 中使用伪变量
问题描述
我正在尝试设置 Cloud Formation 模板来创建 Cloudwatch-Dashboard。在这种情况下,我想使用伪变量来确定区域。
如果我只是使用伪变量AWS::Region
,代码似乎不起作用:
AutoscalingDashboard:
Type: AWS::CloudWatch::Dashboard
Properties:
DashboardName: AutoscalingDashboard
DashboardBody: '
{
"widgets":[
{
"type":"metric",
"x":0,
"y":0,
"width":12,
"height":6,
"properties":{
"metrics":[
[ "AWS/ECS", "MemoryUtilization", "ServiceName", "invoice_web", "ClusterName", "InvoicegenappCluster" ],
[ "...", "invoice_data", ".", "." ],
[ "...", "invoice_generator", ".", "." ]
],
"region": "AWS::Region",
"period": 300,
"view": "timeSeries",
"title":"ECS MemoryUtilization",
"stacked": false
}
如何使用伪变量AWS::Region
或Ref
函数来动态保持变量?
谢谢
解决方案
在您的示例中, theDashboardBody
是一个字符串,因此AWS::Region
不会被替换。添加该功能可能会更好Fn::Sub
,例如:
AutoscalingDashboard:
Type: 'AWS::CloudWatch::Dashboard'
Properties:
DashboardName: 'AutoscalingDashboard'
DashboardBody: !Sub >-
{
"widgets":[
{
"type":"metric",
"x":0,
"y":0,
"width":12,
"height":6,
"properties":{
"metrics":[
[ "AWS/ECS", "MemoryUtilization", "ServiceName", "invoice_web", "ClusterName", "InvoicegenappCluster" ],
[ "...", "invoice_data", ".", "." ],
[ "...", "invoice_generator", ".", "." ]
],
"region": "${AWS::Region}",
"period": 300,
"view": "timeSeries",
"title":"ECS MemoryUtilization",
"stacked": false
}
}]
}
注意${}
周围的区域,还有 YAML块字符串>-
。
推荐阅读
- java - Azure 发布管道未从 nestedStack.yml 文件中获取变量
- c++ - 替换 CComVariant 的低风险选项?
- angular7 - 带有签名功能的查看器的角度 7
- npm - 什么情况下需要NPX?
- python - 如何将数据库中的所有数据作为 Json 返回?
- c++ - 在构造函数中将全局类成员指针添加到 std::list 会导致下一个类添加时出现问题
- javascript - 如何添加这些依赖项?
- php - php版本及与Mysql 8的兼容性
- .htaccess - htaccess 如何设置诸如捕获所有指向一个 index.html 的链接?
- json - oracle - json 路径中的 & 符号