Closed13
AWS SAM Template のセクションを理解したいメモ
AWS SAM テンプレートの構造を理解したい
- 理解したことを簡潔に書いていく
Transform
- CFnの機能を拡張するためにマクロを適用することができる
- SAMはAWSのホスティングするマクロでCFnを拡張したものである
- そのため、SAMの利用には以下が必須である
Transform: AWS::Serverless-2016-10-31
Globals
- SAMで定義するAWSリソースが共通で持つ値を指定する
- 適用できるのはそれぞれ以下4つのリソース
- AWS::Serverless::Function
- AWS::Serverless::Api
- AWS::Serverless::HttpApi
- AWS::Serverless::SimpleTable
- リソースがGlobalsの設定を変更することはできないが、追加はできる
プロパティの種類はドキュメント参照
Parameters
- 設定すると、
sam deploy --guided
するときにオリジナルの値を入れられる -
sam deploy --parameter-overrides
に相当(?)
Description
- CFnのもつセクション
- 言わずもがな、説明。
- Descriptionだけの変更だとスタックは更新されない
Metadata
- CFnのセクション
- リソースや構成の説明をJSONもしくはYAMLで渡せる(?)
- CFnデザイナーに反映できたりする(?)
- Metadataだけの変更だとスタックは更新されない
Mappings
- CFnのセクション
- KVを指定してMapを定義しておける
-
!FindInMap
を使って環境ごとに値を使い分けたりできる
Conditions
- CFnのセクション
- 関数を利用して条件を設定し、リソースの作成条件を制御できる
- Fn::And
- Fn::Equals
- Fn::If
- Fn::Not
- Fn::Or
- 条件がTrueだとリソースが作られる
- Conditionsだけの変更だとスタックは更新されない
Outputs
- CFnのセクション
- スタックで生成されるリソースの命名をコントロールできる(?)
その他: 疑似パラメータ
- CFnで定義されるパラメータ
- AWSリソースの情報が取れる
- リージョンとか
- IDとか
このスクラップは2023/04/18にクローズされました