在Cloudwatch仪表板模板(Cloudformation)中使用伪变量

时间:2018-10-18 15:56:48

标签: amazon-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::RegionRef函数动态保留变量?

Merci A

1 个答案:

答案 0 :(得分:0)

在您的示例中,DashboardBody是字符串,因此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 block string >-