AWS::CloudFormation::Stack
AWS::CloudFormation::Stack
タイプは、最上位のテンプレート内でスタックをリソースとしてネストさせます。
上位のテンプレートにネストされたスタックからの出力値を追加することができます。GetAtt 関数を、ネストされたスタックの論理名と、Outputs.NestedStackOutputName
形式のネストされたスタック内の出力値の名前とともに使用します。
ネストされたスタックの更新は、親スタックから実行することを強くお勧めします。
テンプレートの変更を適用して最上位のスタックを更新すると、CloudFormation によってその最上位のスタックが更新され、そこにネストされたスタックに対する更新が開始されます。ネストされたスタックのうち、CloudFormation によって更新されるのは、変更されたスタックのリソースだけです。変更されていないスタックのリソースは更新されません。詳細については、「CloudFormation スタックの更新」を参照してください。
IAM のリソースが含まれるネストされたスタックについては、IAM の機能に同意する必要があります。また、スタックの更新をキャンセルする権限があることを確認します。これは、更新がロールバックする場合に必要です。IAM および CloudFormation の詳細については、「AWS Identity and Access Management によるアクセスの制御」を参照してください。
構文
AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。
JSON
{ "Type" : "AWS::CloudFormation::Stack", "Properties" : { "NotificationARNs" :
[ String, ... ]
, "Parameters" :{
, "Tags" :Key
:Value
, ...}[ Tag, ... ]
, "TemplateURL" :String
, "TimeoutInMinutes" :Integer
} }
YAML
Type: AWS::CloudFormation::Stack Properties: NotificationARNs:
- String
Parameters:Tags:
Key
:Value
- Tag
TemplateURL:String
TimeoutInMinutes:Integer
プロパティ
NotificationARNs
-
スタック関連イベントを発行する Simple Notification Service (SNS) トピック ARN。SNS トピック ARN は、SNS コンソールまたは コマンドラインインターフェイス (CLI) を使用して見つけることができます。
必須: いいえ
タイプ: 文字列のリスト
最大:
5
Update requires: No interruption
Parameters
-
ネストされたスタックが作成されるとき CloudFormation に渡されるパラメータを表す設定値のペア。各パラメータは、名前 (埋め込みテンプレートに定義されたパラメータに対応する名前) と値 (パラメータに設定する値) を持ちます。
注記 ネストされたスタックに対し、
Ref
関数を使用してパラメータ値を渡す場合、カンマで区切られた一連のパラメータはString
型である必要があります。つまり、ネストされたスタックにCommaDelimitedList
型の値を渡すことはできません。条件付き。ネストされたスタックで入力パラメータが要求される場合は必須。
更新に中断が伴うかどうかは、更新対象のリソースによって異なります。更新が原因で、ネストされたスタックが置き換えられることはありません。
必須: 条件付き
タイプ: 文字列のマップ
Update requires: No interruption
Tags
-
このスタックに関連付るキー値のペア。また、AWS CloudFormation はスタックで作成されたリソースにこれらのタグを伝達します。最大で 50 個のタグを指定できます。
必須: いいえ
タイプ: Tag のリスト
最大:
50
Update requires: No interruption
TemplateURL
-
テンプレート本文を含むファイルの場所。URL は、Amazon S3 バケット内にあるテンプレート (最大サイズ: 460,800 バイト) を指す必要があります。詳細については、「テンプレートの分析」を参照してください。
更新に中断が伴うかどうかは、更新対象のリソースによって異なります。更新が原因で、ネストされたスタックが置き換えられることはありません。
必須: はい
タイプ: 文字列
最小:
1
最大:
1024
Update requires: No interruption
TimeoutInMinutes
-
ネストされたスタックが
CREATE_COMPLETE
の状態になるのを CloudFormation が待機する時間 (分)。デフォルトではタイムアウトが設定されていません。CloudFormation は、ネストされたスタックがCREATE_COMPLETE
状態になったことを検出すると、そのリソースを親スタック内でCREATE_COMPLETE
としてマークし、親スタックの作成を再開します。ネストされたスタックがCREATE_COMPLETE
の状態に至る前にタイムアウト期間が経過すると、CloudFormation は、ネストされたスタックは失敗としてマークし、ネストされたスタックと親スタックの両方がロールバックされます。アップデートはサポートされていません。
必須: いいえ
タイプ: 整数
最小:
1
Update requires: No interruption
戻り値
参照番号
スタック ID このリソースの論理 ID を組み込みの Ref
関数に渡すと、Ref
は次を返します: 。次に例を示します。
arn:aws:cloudformation:us-east-2:123456789012:stack/mystack-mynestedstack-sggfrhxhum7w/f449b250-b969-11e0-a185-5081d0136786
For more information about using the Ref
function, see Ref.
例
スタックパラメータの指定
サンプルテンプレート EC2ChooseAMI.template には、次の Parameters セクションがあります。
JSON
"Parameters" : { "InstanceType" : { "Type" : "String", "Default" : "m1.small", "Description" : "EC2 instance type, e.g. m1.small, m1.large, etc." }, "WebServerPort" : { "Type" : "String", "Default" : "80", "Description" : "TCP/IP port of the web server" }, "KeyName" : { "Type" : "String", "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the web server" } }
YAML
Parameters: InstanceType: Type: "String" Default: "m1.small" Description: "EC2 instance type, e.g. m1.small, m1.large, etc." WebServerPort: Type: "String" Default: "80" Description: "TCP/IP port of the web server" KeyName: Type: "String" Description: "Name of an existing EC2 KeyPair to enable SSH access to the web server"
ネストされたスタック
次のテンプレートを使用すると、EC2ChooseAMI.template を使ってスタック (myStackWithParams) を埋め込み、AWS::CloudFormation::Stack リソースの Parameters プロパティを使って、InstanceType と KeyName を指定することができます。
JSON
{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myStackWithParams" : { "Type" : "AWS::CloudFormation::Stack", "Properties" : { "TemplateURL" : "https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template", "Parameters" : { "InstanceType" : "t1.micro", "KeyName" : "mykey" } } } } }
YAML
AWSTemplateFormatVersion: "2010-09-09" Resources: myStackWithParams: Type: AWS::CloudFormation::Stack Properties: TemplateURL: "https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template" Parameters: InstanceType: "t1.micro" KeyName: "mykey"
以下の資料も参照してください。
-
テンプレートのサンプルスニペットについては、「CloudFormation テンプレートスニペット」の「ネストされたスタック」を参照してください。
-
ネストされたスタックが進行中のオペレーションで停止した場合には、「AWS CloudFormation のトラブルシューティング」でエラーのトラブルシューティングを参照してください。