2016-11-28 3 views
0

CloudFormation Stackの作成時に前提条件が満たされていないと前提条件を確認してエラーを発生させることはできますか?CloudFormation Stackの作成時に前提条件を確認する

たとえば、Stackの作成をus-east-1 Regionに制限したいとします。次のコードは動作しますが、[FAILED]メッセージは関係なく、地域の常にCREATE_COMPLETEあるスタック、最終的なステータスと矛盾:

{ 
    "Conditions": { 
    "ValidRegion": { 
     "Fn::Equals": [ 
     { 
      "Ref": "AWS::Region" 
     }, 
     "us-east-1" 
     ] 
    } 
    }, 
    "Description": "Certificate for Global services", 
    "Outputs": { 
    "GlobalCertificateArn": { 
     "Description": "Certificate ARN", 
     "Value": { 
     "Fn::If": [ 
      "ValidRegion", 
      { 
      "Ref": "GlobalCertificate" 
      }, 
      "[FAILED] Failed to create certificate for Global services. Create this stack in us-east-1." 
     ] 
     } 
    } 
    }, 
    "Parameters": { 
    "Domain": { 
     "Description": "Domain name of this website", 
     "Type": "String" 
    } 
    }, 
    "Resources": { 
    "GlobalCertificate": { 
     "Condition": "ValidRegion", 
     "Properties": { 
     "DomainName": { 
      "Ref": "Domain" 
     } 
     }, 
     "Type": "AWS::CertificateManager::Certificate" 
    } 
    } 
} 

はエラーを発生させるためのより良い方法はありますか?

答えて

0

例の場合は、AWS擬似パラメータを使用する方が良いでしょう。 「AWS :: Region」がus-east-1に等しいかどうかをチェックする条件を作成するだけです。

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html

は本当にすべてをチェックする一般的な方法を考え出すことはできません、それは状況によって異なります。

「パラメータ」::{ 「InstanceTypeParameter」:{ 「タイプ」:「文字列」、 「デフォルト」あなたはパラメータを扱っている場合たとえば、あなたは正規表現または設定許容値を使用することができます。 "t2.micro"、 "m1.small"、 "m1.large"]、 "説明": "t1.micro、m1.small、またはm1.largeを入力してください。" t2.micro "、" t2.micro "、" AllowedValues "デフォルトはt1.microです。 }}

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html

それとも条件に、ご希望の値が含まれているマッピングを組み合わせることができます。可能性の

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html

たくさん。 :)

関連する問題