[英]Cloudformation ImportValue within ParameterOverride CodePipeline
[英]use Fn::ImportValue inside a json which is inside a yaml in cloudformation
我正在使用基礎設施即代碼為 cloudwatch 編寫一個儀表板來實現這一點我在 yaml 文件的 DashboardBody 中有一個 json 當我嘗試在 json 的指標中使用 function fn::xxxx
時,我的問題就出現了,如下所示:
Resources:
DashboardTestYAML:
Type: AWS::CloudWatch::Dashboard
Properties:
DashboardName: SummaryDashboard
DashboardBody: '{
"widgets": [{
"type": "metric",
"x": 0,
"y": 0,
"width": 6,
"height": 6,
"properties": {
"metrics": [
[ "AWS/ApplicationELB", "RequestCount", "LoadBalancer", {"Fn::ImportValue": "LoadBalancerFullName"} ]
],
"view": "timeSeries",
"stacked": false,
"region": "eu-west-1",
"stat": "Sum",
"period": 300,
"title": "Load-blancer-requests"
}
}]
}'
我嘗試了以下方法,但都沒有用(有些甚至無效 json 但免費試用。
{"Fn::ImportValue": "LoadBalancerFullName"}
"{"Fn::ImportValue": "LoadBalancerFullName"}"
'{"Fn::ImportValue": "LoadBalancerFullName"}'
{Fn::ImportValue: LoadBalancerFullName}
Fn::ImportValue: LoadBalancerFullName
-Fn::ImportValue: LoadBalancerFullName
知道這是否可行嗎? 關於 migrate all to yaml 被丟棄了,因為我們正在准備 migrate all to use Amazon CDK
並且遷移會浪費時間。
對名稱進行硬編碼是可行的,但由於負載均衡器也在 cloudformation 上,我無法做到這一點。
謝謝。
我認為應該可以使用數組形式的!Sub來做到這一點:
DashboardBody:
!Sub
- |
{
"widgets": [{
"type": "metric",
"x": 0,
"y": 0,
"width": 6,
"height": 6,
"properties": {
"metrics": [
[ "AWS/ApplicationELB", "RequestCount", "LoadBalancer", "${LoadBalancerName}" ]
],
"view": "timeSeries",
"stacked": false,
"region": "eu-west-1",
"stat": "Sum",
"period": 300,
"title": "Load-blancer-requests"
}
}]
}
- LoadBalancerName: !ImportValue LoadBalancerFullName
我的語法或意圖可能不對,但我認為使用!Sub
時可以看到核心結構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.