CloudFormation テンプレート形式
JSON、または、YAML
---
AWSTemplateFormatVersion: "version date"
Description:
String
Metadata:
template metadata
Parameters:
set of parameters
Rules:
set of rules
Mappings:
set of mappings
Conditions:
set of conditions
Transform:
set of transforms
Resources:
set of resources
Outputs:
set of outputs
テンプレートの各セクション
AWSTemplateFormatVersion(任意)
・形式バージョン
Description(オプション)
・説明するテキスト文字列
Metadata(オプション)
・テンプレートに関する追加情報
Parameters(任意)
・実行時 (スタックを作成または更新するとき) にテンプレートに渡す値
(ResourcesとOutputsがこっちをみる)
Rules(オプション)
・スタックの作成またはスタックの更新時に、テンプレートに渡されたパラメータまたはパラメータの組み合わせを検証
(例:パラメーター値の条件付きの確認)
Mappings(任意)
・キーと関連する値のマッピングで、条件パラメータ値の指定に使用できる
(例:リージョンに基づく値を設定する場合、リージョン名をキーとして必要な値を保持するマッピングを作成)
(AMIがリージョン毎にIDが異なるとか)
Conditions(オプション)
・スタックの作成中または更新中に、特定のリソースが作成されるかどうか、または特定のリソースプロパティに値が割り当てられるかどうかを制御する条件
(例:リソースを作成するかどうか判断。条件式の結果がtrueの場合→作成、falseの場合→作成しない)
Transform(オプション)
・サーバーレスアプリケーション (Lambda ベースアプリケーション) の場合は、使用する AWS Serverless Application Model (AWS SAM) のバージョンを指定
(要は、Lambdaを作りたい場合ですね。。。)
Resources(必須)
・作りたいAWSリソースを記述
(ここがリソース本体の中身!一番大事!)
Outputs(任意)
・スタックのプロパティを確認すると返される値について説明
(スタックを生成してみないと分からない「結果」(EC2サーバのSecurityGroupのIDとか)を出力)
参考サイト