[AWS]CloudFormationテンプレート の概観
[AWS]CloudFormationテンプレート の概観:
CloudFormationをこれから使っていく初心者です。
自分の理解の整理のために書いていますので、間違っていることも多いと思います。
指摘などしていただけると助かります。
CloudFormationテンプレート の概観
書いている人
CloudFormationをこれから使っていく初心者です。自分の理解の整理のために書いていますので、間違っていることも多いと思います。
指摘などしていただけると助かります。
Overview
Refalence(本家)
- 本家リファレンス
- 情報が古くなっている可能性、誤解がある可能性があります。
- こちらの記事はあくまで参考として、本家のリファレンスを活用する補助程度にご利用ください。
用語(テンプレート要素)
- Metadata メタデータ
- オプションの Metadata セクションを使用して、テンプレートの詳細を提供する
- 特定のリソースについてのテンプレートの実装の詳細を含めるなど
- Parameters パラメータ
- 定義したパラメータは、スタック作成時に動的に指定し、各リソースのパラメータに利用することができます。
- パラメーターは最大 60 個です。
- 正規表現を使ったチェックも可能
- AWS固有のパラメータ型なども指定可能
- Mappings マッピング
- キーと名前付きの一連の値とが対応付けられます。
- たとえば、リージョンに基づく値を設定する場合、リージョン名をキーとして必要な値を保持するマッピングを作成します。
- 条件 Conditions
- 条件の結果に応じてリソースを作成することができます。
- テスト環境と本稼働環境など、異なるコンテキストでリソースを作成できるテンプレートを再利用する場合に、条件を使用することがあります。
- Parametersを参照し、Resources および Outputsを操作します。
- 変換 Transform
- AWS インフランストラクチャの式をコードとして要約し、テンプレートコンポーネントを再利用できるようにすることで、テンプレート作成を簡素化します。
- 変換の種類として、AWS::Serverless や AWS::Include をサポートしています。
- AWS::Include 変換では、メインの AWS CloudFormation テンプレートとは別に保存されているテンプレートスニペットを利用します。
- AWS::Include
- テンプレートのトップレベルに配置する場合と、リソース等のセクションに埋め込む場合があります
- リソース
- スタックに含める Amazon EC2 インスタンスや Amazon S3 バケットなどの AWS リソースを宣言します。
- アウトプット
- 欲しい結果を指定すればまとめて表示してくれる
- ほかのスタックにインポートすることもできる。
- 1 つのテンプレートで宣言できる出力は最大 60 個です。
テンプレートの作成で使える関数
主な関数
param | discription |
---|---|
Fn::Base64 | 入力文字列の Base64 表現を返します |
Fn::FindInMap | Mappings セクションで宣言された キーに対応する値を返します。 |
Fn::GetAtt | テンプレートのリソースから属性の値を返します。 |
Fn::GetAZs | 指定されたリージョンのアベイラビリティーゾーンを含んだ配列を返します。呼び出し元のユーザーのアクセス権に適応するテンプレートを作成できます。 |
Fn::ImportValue | 別のスタックによってエクスポートされた出力の値を返します。別の AWS CloudFormation スタックのリソース出力を参照する |
Fn::Join | 一連の値を特定の区切り文字で区切って 1 つの値に追加します。 |
Fn::Select | リストから 1 つのオブジェクトを返します。 |
Fn::Split | 区切り記号で分割の場所を指定し、文字列のリストから要素を選択できるようにします |
Fn::Sub | 特定した値の入力文字列にある変数の代わりになります。 |
Ref | 指定したパラメーターまたはリソースの値を返します。 |
条件関数
param | discription |
---|---|
Fn::Not | false に評価される条件に対しては、true を返します。 |
Fn::And | 指定されたすべての条件が true に評価された場合は true を返します。 |
Fn::Or | 指定された条件のいずれかが true に評価された場合は true を返します。 |
Fn::Equals | 2 つの値が等しいかどうかを比較します。 |
Fn::If | 指定されたリストの0番目にある条件の評価に合わせて、リストの1番目か2番目の値を返します |
参考
ヘルパースクリプト
- スタックの作成・更新・削除などのイベントに合わせて EC2 インスタンス内部で処理を実行することができる
- イベント毎に発生させる処理の中身も指定出来る
疑似パラメータ
- パラメーターと同じように、Ref 関数の引数として使用します。
param | discription |
---|---|
AWS::AccountId | スタックが作成されているアカウントの AWS アカウント ID |
AWS::NotificationARNs | スタックの通知 Amazon リソースネーム (ARN) のリスト |
AWS::NoValue | 組み込み関数(Fn::If)の戻り値として指定すると、条件が false に評価された場合、対応するリソースプロパティを削除します。 |
AWS::Partition | リソースがあるパーティションを返します。 |
AWS::Region | AWS リージョンを表す文字列を返します。 |
AWS::StackId | スタックの ID を返します。 |
AWS::StackName | スタックの名前を返します。 |
AWS::URLSuffix | ドメインのサフィックスを返します。 |
コメント
コメントを投稿