AWS CloudFormation
ユーザーガイド (API バージョン 2010-05-15)

AWS::CloudFormation::Stack

AWS::CloudFormation::Stack タイプは、最上位のテンプレート内でスタックをリソースとしてネストさせます。

上位のテンプレートにネストされたスタックからの出力値を追加することができます。GetAtt 関数を、ネストされたスタックの論理名と、Outputs.NestedStackOutputName 形式のネストされたスタック内の出力値の名前とともに使用します。

重要

ネストされたスタックの更新は、親スタックから実行することを強くお勧めします。

テンプレートの変更を適用して最上位のスタックを更新すると、CloudFormation によってその最上位のスタックが更新され、そこにネストされたスタックに対する更新が開始されます。ネストされたスタックのうち、CloudFormation によって更新されるのは、変更されたスタックのリソースだけです。変更されていないスタックのリソースは更新されません。詳細については、「AWS CloudFormation スタックの更新」を参照してください。

注記

IAM のリソースが含まれるネストされたスタックについては、IAM の機能に同意する必要があります。また、スタックの更新をキャンセルする権限があることを確認します。これは、更新がロールバックする場合に必要です。IAM および CloudFormation の詳細については、「AWS Identity and Access Management によるアクセスの制御」を参照してください。

構文

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

JSON

{ "Type" : "AWS::CloudFormation::Stack", "Properties" : { "NotificationARNs" : [ String, ... ], "Parameters" : {Key : Value, ...}, "Tags" : [ Tag, ... ], "TemplateURL" : String, "TimeoutInMinutes" : Integer } }

YAML

Type: AWS::CloudFormation::Stack Properties: NotificationARNs: - String Parameters: Key : Value Tags: - 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"

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