繁体   English   中英

Cloudformation 子 function 用于 cloudwatch 仪表板主体

[英]Cloudformation sub function for cloudwatch dashboard body

我在我的 cloudwatch 仪表板主体中使用带有 AWS:.Region 伪参数的子内部 cloudformation function 遇到了问题(以确保我的堆栈与区域无关)。 我正在使用的 cloudformation 如下所示

  OrderDashboard:
    Type: AWS::CloudWatch::Dashboard
    Properties:
      DashboardBody:  !Sub  '{  "widgets": [    {      "type": "metric",      "x": 6,      "y": 0,      "width": 6,      "height": 6,      "properties": {        "metrics": [          [ "address", "validateAddressApiLatency" ]        ],        "view": "timeSeries",        "stacked": false,        "region": "${AWS::Region}",        "title": "ValidateAddressApiSuccessLatencyP99",        "period": 300,        "stat": "p99"      }    },    {      "type": "metric",      "x": 12,      "y": 0,      "width": 8,      "height": 6,      "properties": {        "metrics": [          [ "address", "validateAddressApiErrorLatency" ]        ],        "view": "timeSeries",        "stacked": false,        "region": "${AWS::Region}",        "title": "ValidateAddressApiErrorLatencyP99",        "period": 300,        "stat": "p99"      }    },    {      "type": "text",      "x": 0,      "y": 0,      "width": 6,      "height": 6,      "properties": {        "markdown": "# Heading \nThis dashboard exists to show that our success latency metric and error latency metric are published successfully using a single annotation and aspectj.\n\nThe first row shows the 99th percentile latencies, and the bottom column shows the count of the number of calls"      }    },    {      "type": "metric",      "x": 6,      "y": 6,      "width": 6,      "height": 6,      "properties": {        "metrics": [          [ { "expression": "SELECT COUNT(validateAddressApiLatency) FROM SCHEMA(address)", "label": "NumberOfSuccessfulCalls", "id": "q1", "region": "${AWS::Region}" } ]        ],        "view": "timeSeries",        "stacked": false,        "region": "${AWS::Region}",        "stat": "Average",        "period": 300,        "title": "NumberOfSuccessfulValidateCalls"      }    },    {      "type": "metric",      "x": 12,      "y": 6,      "width": 6,      "height": 6,      "properties": {        "metrics": [          [ { "expression": "SELECT COUNT(validateAddressApiErrorLatency) FROM SCHEMA(address)", "label": "NumberOfErroredCalls", "id": "q1", "region": "${AWS::Region}" } ]        ],        "view": "timeSeries",        "stacked": false,        "region": "${AWS::Region}",        "stat": "Average",        "period": 300,        "title": "NumberOfErrorValidateCalls"     }    }  ]}'
      DashboardName: order-dashboard

当我部署仪表板时,该区域没有被替换在此处输入图像描述

有趣的是我在模板中的其他地方使用 sub 和 region 参数,它可以工作。

Outputs:
  OrderApiUrl:
    Description: "The endpoint you can use to place orders.  Make sure to append the order id to the end"
    Value: !Sub "https://${OrderApi}.execute-api.${AWS::Region}.amazonaws.com/v1/orders/"

关于我可以做些什么来获得替代价值的任何想法? 谢谢

我同意@ErikAsplund,例如:

  OrderDashboard:
    Type: AWS::CloudWatch::Dashboard
    Properties:
      DashboardName: order-dashboard
      DashboardBody: !Sub |
        {
          "widgets": [
            {
              "properties": {
                "metrics": [
                  "AWS/Lambda",
                  "Duration",
                  "FunctionName",
                  "${MyReference}"
                ]
              }
            }
        }

您提供的代码运行良好 因此,您遇到的问题必须与问题中的 CloudFormation 代码以外的其他因素有关。

也许您正在使用其他代码,而不是问题中的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM