2016-08-22 7 views
3

私は、ダウンタイムパラメータとマップに定義されている環境の値に対するユーザーの応答に基づいて、条件付きでリソースにタグを付ける必要があります。このタグは後でラムダ関数によって夜間にインスタンスをオフにするために使用されます。AWS CloudFormation条件付きタグ付け

ノー運とこのようにそれを試してみました -

条件 - "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" } ],

条件付きのタグを追加する方法上の任意のアイデアを?

ありがとうございます!

答えて

2

残念ながら、条件付きでタグを追加することはできません。キーまたは値のいずれか、またはその両方のタグのデータを変更するには、条件を使用します。キーを変更すると、期待されるタグキーを自動的に検索すると、変更されたキーでリソースが検索されません。しかし、あなたは不要なタグが残っています。

これにより

"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タグを持つユーザーに対して、ダウンタイムのないことを明示的に参照する必要がありますさらに役立つかもしれません。

+0

感謝を使用している場合:私は、それは次のコードを使用して働いてもらいました!私はあなたが与えたものを含むすべてのオプションを試しました。私がこのアプローチを使用することを躊躇していた理由は、私のインスタンスに不要なタグを持たせたくないのですが、現時点ではこれが唯一の解決策であるようです。 –

5

私は同様の必要性を持ち、未使用のタグもその周りに置かないようにします。

"Tags": [ 
    ..., 
    { 
    "Fn::If": [ 
     "MyCondition", 
     {"Key": "MyKey", "Value": "MyValue"}, 
     {"Ref": "AWS::NoValue"} 
    ] 
    } 
], 
0

をそして、あなたはYAML

Tags: 
    - 'Fn::If': 
     - MyCondition 
     - 
     Key: MyKey 
     Value: MyValue 
     - !Ref AWS::NoValue 
クリスを確認するための