簡體   English   中英

AWS CloudFormation條件標記

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM