[英]How to use Parameters in CloudWatch Dashboard template
我想創建一個CloudFormation
模板來創建CloudWatch
儀表板。 以下是模板代碼-
Parameters:
MyEnvironment:
Type: String
Default: "do"
Description: "Specifies the environment of the platform."
Resources:
MyServiceDashboard:
Type: AWS::CloudWatch::Dashboard
Properties:
DashboardName: "Test-My-Dashboard"
DashboardBody: >
{
"widgets": [
{
"type": "metric",
"x": 15,
"y": 18,
"width": 6,
"height": 6,
"properties": {
"view": "timeSeries",
"stacked": false,
"metrics": [
[ "AWS/Kinesis", "GetRecords.IteratorAgeMilliseconds", "StreamName",
"${MyEnvironment}-my-data-out"
]...
我正在嘗試使用MyEnvironment
參數,該參數將在我實際使用此模板創建堆棧時提供。
問題是使用此方法創建了stack / dashbaord,但未在Dashboard指標中使用參數值,而是使用了"${MyEnvironment}-my-data-out"
而不是"Dev-my-data-out"
我已將"MyEnvironment"
值提供為"Dev"
我嘗試了此鏈接中指定的方法- 在Cloudwatch儀表板模板(Cloudformation)中使用偽變量,但是當使用Sub >-
關鍵字時, CloudFormation顯示無效的模板。
“ MyEnvironment”不是偽變量。 它僅適用於AWS變量,例如region。 如果要進行參數化,則需要使用“ Ref”。
Parameters:
MyEnvironment:
Type: String
Default: "do"
Description: "Specifies the environment of the platform."
Resources:
MyServiceDashboard:
Type: AWS::CloudWatch::Dashboard
Properties:
DashboardName: "Test-My-Dashboard"
DashboardBody: >
{
"widgets": [
{
"type": "metric",
"x": 15,
"y": 18,
"width": 6,
"height": 6,
"properties": {
"view": "timeSeries",
"stacked": false,
"metrics": [
[ "AWS/Kinesis", "GetRecords.IteratorAgeMilliseconds", "StreamName", {"Ref" : "MyEnvironment"}
]...
直接在MyEnvironment參數中傳遞“ Dev-my-data-out”,以避免復雜化。
嘗試各種選項之后,找到了解決辦法, 重要的 一點就是使用!Sub
功能,否則參數值未在JSON字符串替換。
DashboardName: "Test-My-Dashboard"
DashboardBody: !Sub '{
"widgets": [
注意DashboardBody
屬性中的!Sub函數。 之后,您可以使用${PARAMETER_NAME}
格式來引用參數值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.