投稿日: Jan 11, 2023

AWS CloudFormation の言語拡張変換が更新され、Fn::FindInMap のデフォルト値および追加の組み込み関数のサポートが開始されました。これらの機能を使用すれば、CloudFormation テンプレートのサイズを最小限に抑えて、可読性の向上を図れます。言語変換は、CloudFormation テンプレート言語を、Fn::Length、Fn::JsonToString といったさまざまな関数で拡張します。このテンプレートは、Parameters や Mappings において、さまざまな属性を持つグループにモジュール化できます。また、Fn::FindInMap を使用すれば、これらのグループの属性を参照できます。例えば、1 つのマップ (RegionMap) を含む Mappings セクションの EC2 リソースタイプに Fn::FindInMap を使用し、AWS リージョンの AMI を EC2 インスタンスに関連付けるといったことが可能です。今回の言語機能の強化により、Fn::Split、Fn::Select、その他の組み込み関数を Fn::FindInMap 内で使用できるようになりました。Fn::FindInMap ではこれまで、Ref 組み込み関数しかサポートされていませんでした。また、Fn::FindInMap では、文字列やリストタイプのデフォルト値を定義できます。 サポートされている組み込み関数のリスト、および Fn::FindInMap の詳細については、ユーザーガイドを参照してください。

AWS::KMS::Key リソースタイプで Fn::Select と Fn::Split を Fn::FindInMap と一緒に使用すれば、パラメータ値の制約 (KeyUsage プロパティなど) を適用できます。これを、複数の条件を宣言するのではなく、より小さなサイズのコードで実行可能です。同様に、Fn::FindInMap のデフォルト値を使用すれば、マッピングで、考えられる値の順列をすべて指定する必要性を、最小限に抑えられます。例えば、非等価の条件を指定するときに、すべてのリージョンのマッピングを作成する必要がなくなり、デフォルト値を使用できます。こうした例やその他の例については、GitHub リポジトリを参照してください。

この機能をご利用いただけるリージョンは、米国東部 (オハイオとバージニア北部)、米国西部 (北カリフォルニアとオレゴン)、アフリカ (ケープタウン)、アジアパシフィック (香港、ジャカルタ、ムンバイ、大阪、ソウル、シンガポール、シドニー、東京)、カナダ (中部)、Sinnet が運営する中国 (北京)、NWCD が運営する中国 (寧夏)、欧州 (フランクフルト、アイルランド、ロンドン、ミラノ、パリ、ストックホルム)、中東 (バーレーン)、南米 (サンパウロ)、AWS GovCloud (米国) です。 

言語拡張変換の詳細については、CloudFormation のドキュメントを参照してください。

Parameters と Mappings の使用方法に関するテンプレートの基本情報は、入門ガイドを参照してください。