テンプレートセクション
CloudFormation テンプレートは、さまざまなセクションに分かれており、各セクションは特定のタイプの情報を保持するように設計されています。特定の順序で宣言する必要があるセクションと、順序は重要でないセクションがあります。ただし、あるセクションの値が前のセクションの値を参照している場合があるため、テンプレートを構築する際には、次のリストで示されている論理的な順序を使用すると便利です。
重要
テンプレートを作成するときは、Resources
セクションなどの主要セクションを重複して使用しないでください。CloudFormation はテンプレートを受け入れる場合がありますが、テンプレートを処理するときに未定義の動作が発生し、リソースを誤ってプロビジョニングしたり、不可解なエラーを返したりする可能性があります。
- 形式バージョン (任意)
-
テンプレートが準拠している CloudFormation テンプレートバージョン。
- Description (オプション)
-
テンプレートを説明するテキスト文字列です。このセクションは、必ずテンプレートの Format Version セクションの後に記述する必要があります。
- メタデータ (オプション)
-
テンプレートに関する追加情報を提供するオブジェクトです。
- パラメータ (任意)
-
実行時 (スタックを作成または更新するとき) にテンプレートに渡す値です。テンプレートの
Resources
およびOutputs
セクションからのパラメータを参照できます。 - ルール (オプション)
-
スタックの作成またはスタックの更新時に、テンプレートに渡されたパラメータまたはパラメータの組み合わせを検証します。
- マッピング (任意)
-
キーと関連する値のマッピングで、条件パラメータ値の指定に使用でき、ルックアップテーブルに似ています。
Resources
セクションとOutputs
セクションで Fn::FindInMap 組み込み関数を使用することで、キーと対応する値を一致させることができます。 - 条件 (オプション)
-
スタックの作成中または更新中に、特定のリソースが作成されるかどうか、または特定のリソースプロパティに値が割り当てられるかどうかを制御する条件です。例えば、スタックが実稼働用であるかテスト環境用であるかに依存するリソースを、条件付きで作成できます。
- 変換 (オプション)
-
サーバーレスアプリケーション (Lambda ベースアプリケーションとも呼ばれます) の場合は、使用する AWS Serverless Application Model (AWS SAM)
のバージョンを指定します。変換を指定する場合は、AWS SAM 構文を使用して、テンプレート内のリソースを宣言できます。このモデルでは、使用できる構文と、その処理方法を定義します。 AWS::Include transform 変換を使用して、メインの CloudFormation テンプレートとは別に保存されているテンプレートスニペットを利用することもできます。スニペットファイルを Amazon S3 バケットに保存すると、複数のテンプレート間で関数を再利用できます。
- リソース (必須)
-
Amazon EC2 インスタンスや Amazon S3 バケットなど、スタックリソースとそのプロパティを指定します。テンプレートの
Resources
とOutputs
セクションのリソースを参照できます。 - 出力 (任意)
-
スタックのプロパティを確認すると返される値について説明します。たとえば、S3 バケット名の出力を宣言してから、describe-stacks AWS CLI コマンドを呼び出して名前を表示することができます。