[英]AWS CloudFormation conditional tagging
我需要根據用戶對停機時間參數的響應以及map中定義的環境值來有條件地標記資源。 此標記稍后由lambda函數用於在晚上關閉實例。
我試試這樣沒有運氣 -
條件 -
"EnvCheck": {
"Fn::Not": [
{"Fn::Equals": [{"Ref": "EnvironmentType"}, "prod"]}
]
},
"EnableDowntimeTag": {
"Fn::And": [
{"Fn::Equals": [{"Ref": "CustodianDowntime"}, "true"]},
{"Condition": "EnvCheck"}
]
}
標簽部分
"Tags": [
{
"Key": "OwnerContact",
"PropagateAtLaunch": "true",
"Value": {
"Ref": "OwnerContact"
}
},
{
"Condition" : "EnableDowntimeTag",
"Key": "custodian_downtime",
"PropagateAtLaunch": "true",
"Value": "Offhours tz=ET"
}
],
有關如何添加條件標簽的任何想法?
謝謝!
我有類似的需求,不希望未使用的標簽。 我已經使用以下代碼片段了解它:
"Tags": [
...,
{
"Fn::If": [
"MyCondition",
{"Key": "MyKey", "Value": "MyValue"},
{"Ref": "AWS::NoValue"}
]
}
],
不幸的是,我不認為有條件地添加標簽是可能的。 您可以做的最好的事情是使用條件來修改標記的數據 - 鍵或值或兩者。 如果您修改密鑰,則任何自動搜索預期標記密鑰都不會找到具有修改密鑰的資源。 但是你會留下不必要的標簽。
例如
"Tags": [
{
"Key": "OwnerContact",
"PropagateAtLaunch": "true",
"Value": {
"Ref": "OwnerContact"
}
},
{
"Key": {
"Fn::If" : [
"EnableDowntimeTag",
"custodian_downtime",
"no_custodian_downtime"
]
},
"PropagateAtLaunch": "true",
"Value": {
"Fn::If" : [
"EnableDowntimeTag",
"Offhours tz=ET",
""
]
}
}
],
借助於此,如果條件EnableDowntimeTag
為真,則與鍵標簽custodian_downtime
被創建,並且值Offhours tz=ET
。
如果條件不為真,則創建具有鍵no_custodian_downtime
的標記,其值為空。
如果您使用標簽來識別自動化流程中的資源,這應該有助於它僅識別所需的資源 - 同時還為那些具有no_custodian_downtime
標簽的人提供明確的參考,以確保不需要停機時間 - 因此它可能更多很有幫助。
如果你正在使用YAML
Tags:
- 'Fn::If':
- MyCondition
-
Key: MyKey
Value: MyValue
- !Ref AWS::NoValue
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.