メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::CloudFormation::WaitCondition

重要

Amazon EC2 および Auto Scaling リソースについては、待機条件ではなく CreationPolicy 属性を使用することをお勧めします。CreationPolicy 属性をこれらのリソースに追加し、インスタンス作成プロセスが正常に完了したときにシグナルを送信するために cfn-signal ヘルパースクリプトを使用します。

次のような状況で待機条件を使用できます。

  • スタックの作成の外部での設定アクションを使ったスタックリソース作成を調整するため

  • 設定プロセスのステータスを追跡するため

これらの場合には、待機条件ハンドルを使用しないで済むように、CreationPolicy 属性を待機条件に関連付けることをお勧めします。詳細と例については、「テンプレートでの待機条件の作成」を参照してください。待機条件に CreationPolicy を使用している場合は、待機条件のプロパティを何も指定しないでください。

注記

VPC エンドポイント機能を使用する場合、待機条件に応答する VPC のリソースには、AWS CloudFormation 固有の Amazon Simple Storage Service (Amazon S3) バケットへのアクセス権が必要です。リソースは、署名付き Amazon S3 URL に応答する待機条件を送信する必要があります。Amazon S3 に応答を送信できない場合、AWS CloudFormation は応答を受信せず、スタックオペレーションは失敗となります。詳細については、「AWS CloudFormation および VPC エンドポイント」を参照してください。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

Copy
{ "Type" : "AWS::CloudFormation::WaitCondition", "Properties" : { "Count" : Integer, "Handle" : String, "Timeout" : String } }

YAML

Copy
Type: "AWS::CloudFormation::WaitCondition" Properties: Count: Integer Handle: String Timeout: String

プロパティ

Count

スタックの作成プロセスを AWS CloudFormation が再開するために受け取る必要のある成功シグナルの数。所定の数の成功シグナルが待機条件に通知されると、AWS CloudFormation はスタックの作成を再開します。待機条件に通知された成功シグナルの数が指定数に達する前にタイムアウト時間が経過した場合、AWS CloudFormation は、待機条件が満たされなかったものと見なし、スタックをロールバックします。

Required: No

Type: Integer

[Update requires]: アップデートはサポートされていません。

Handle

この待機条件にシグナルを送る待機条件ハンドルへのリファレンス。Ref 組み込み関数を使用して、AWS::CloudFormation::WaitConditionHandle リソースを指定します。

スタックの更新中 WaitCondition リソースを追加するときは、常に、その待機条件を新しい WaitConditionHandle リソースに関連付ける必要があります。既にテンプレートに定義されている古い待機条件ハンドルを再利用することは避けてください。待機条件ハンドルを再利用した場合、以前のスタック作成コマンドまたはスタック更新コマンドからの古いシグナルが評価される可能性があります。

Required: Yes

Type: String

[Update requires]: アップデートはサポートされていません。

Timeout

Count プロパティに指定されたシグナル数を待機する時間 (秒)。Timeout は、最小許容プロパティです。つまり、タイムアウトは、指定した時間の経過直後に発生しますが、間を置いて発生する可能性があります。このプロパティに指定できる時間は最長 12 時間 (43200 秒) です。

Required: Yes

Type: String

[Update requires]: アップデートはサポートされていません。

戻り値

参照番号

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref によりリソース名が返されます。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

Fn::GetAtt

Fn::GetAtt は、このタイプの指定された属性の値を返します。以下には、利用可能な属性とサンプル戻り値のリストが示されます。

Data

戻り値: 指定された待機条件について、待機条件シグナルからの UniqueId 値と Data 値を格納する JSON オブジェクト。待機条件シグナルの詳細については、「待機条件シグナルの JSON 形式」を参照してください。

2 つのシグナルを含んだ待機条件の戻り値の例:

Copy
{ "Signal1" : "Step 1 complete." , "Signal2" : "Step 2 complete." }

Fn::GetAtt の使用の詳細については、「Fn::GetAtt」を参照してください。

ウェブサーバーグループ内の所定のインスタンス数を待機する WaitCondition

JSON

Copy
"WebServerGroup" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "AvailabilityZones" : { "Fn::GetAZs" : "" }, "LaunchConfigurationName" : { "Ref" : "LaunchConfig" }, "MinSize" : "1", "MaxSize" : "5", "DesiredCapacity" : { "Ref" : "WebServerCapacity" }, "LoadBalancerNames" : [ { "Ref" : "ElasticLoadBalancer" } ] } }, "WaitHandle" : { "Type" : "AWS::CloudFormation::WaitConditionHandle" }, "WaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "DependsOn" : "WebServerGroup", "Properties" : { "Handle" : { "Ref" : "WaitHandle" }, "Timeout" : "300", "Count" : { "Ref" : "WebServerCapacity" } } }

YAML

Copy
WebServerGroup: Type: "AWS::AutoScaling::AutoScalingGroup" Properties: AvailabilityZones: Fn::GetAZs: "" LaunchConfigurationName: Ref: "LaunchConfig" MinSize: "1" MaxSize: "5" DesiredCapacity: Ref: "WebServerCapacity" LoadBalancerNames: - Ref: "ElasticLoadBalancer" WaitHandle: Type: "AWS::CloudFormation::WaitConditionHandle" WaitCondition: Type: "AWS::CloudFormation::WaitCondition" DependsOn: "WebServerGroup" Properties: Handle: Ref: "WaitHandle" Timeout: "300" Count: Ref: "WebServerCapacity"

以下の資料も参照してください。