パラメータを使用してモジュール値を指定する
CloudFormation では、スタックの作成時または更新中に入力値を指定することにより、テンプレートパラメータを使用してスタックをカスタマイズできます。これらのパラメータにより、必要に応じてスタックの特定の特徴を変更できます。テンプレートのパラメータの定義に関する詳細は、「CloudFormation テンプレートの Parameters 構文」を参照してください。
同様に、モジュールにパラメータを含めることもできます。これらのモジュールパラメータにより、使用しているテンプレート (または別のモジュール) からモジュールにカスタム値を入力できます。モジュールはこれらのカスタム値を使用し、プロパティ値が含まれるリソースにそのプロパティ値を設定できます。
スタック操作時にモジュールに渡される値を入力できるように、モジュールプロパティを設定するテンプレートパラメータを定義することもできます。
独自のモジュールパラメータを持つネストされたモジュールがモジュールに含まれている場合、次のいずれかの操作ができます。
-
ネストされたモジュールのパラメータの値を親モジュールで直接指定します。
-
親モジュール内の対応するモジュールパラメータを定義して、ネストされたモジュールのパラメータを、親モジュールが含まれているテンプレート (またはモジュール) で設定できるようにします。
テンプレートパラメータを使用したモジュールパラメータ値の指定
次の例は、モジュールに値を渡すテンプレートパラメータを定義する方法を示しています。
My::S3::SampleBucket::MODULE
を含むこのテンプレートは、スタック操作時にユーザーが S3 バケット名を指定できるようにするテンプレートパラメータの BucketName
を定義します。
# Template containing My::S3::SampleBucket::MODULE Parameters: BucketName: Description: Name for your sample bucket Type: String Resources: MyBucket: Type: 'My::S3::SampleBucket::MODULE' Properties: BucketName: !Ref BucketName
親モジュールから子モジュール内のリソースのプロパティを指定する
次の例は、別のモジュール内にネストされているモジュールでパラメータ値を指定する方法を示しています。
この最初のモジュール My::S3::SampleBucketPrivate::MODULE
は、子モジュールになります。これは、BucketName
と AccessControl
の 2 つのパラメータを定義します。これらのパラメータに指定された値は、モジュールに含まれる AWS::S3::Bucket
リソースの BucketName
およびAccessControl
プロパティを指定するために使用されます。以下は My::S3::SampleBucketPrivate::MODULE
のテンプレートフラグメントです。
# My::S3::SampleBucketPrivate::MODULE AWSTemplateFormatVersion: 2010-09-09 Description: A sample S3 Bucket with Versioning and DeletionPolicy. Parameters: BucketName: Description: Name for the bucket Type: String AccessControl: Description: AccessControl for the bucket Type: String Resources: S3Bucket: Type: 'AWS::S3::Bucket' Properties: BucketName: !Ref BucketName AccessControl: !Ref AccessControl DeletionPolicy: Retain VersioningConfiguration: Status: Enabled
次に、前のモジュールは親モジュール My::S3::SampleBucket::MODULE
内にネストされます。親モジュール My::S3::SampleBucket::MODULE
は、次の方法で子モジュールのパラメータを設定します。
-
My::S3::SampleBucketPrivate::MODULE
のAccessControl
パラメータをPrivate
に設定します。 -
BucketName
では 、モジュールパラメータを定義します。これにより、My::S3::SampleBucket::MODULE
を含むテンプレート (またはモジュール) でバケット名を指定できます 。
# My::S3::SampleBucket::MODULE AWSTemplateFormatVersion: 2010-09-09 Description: A sample S3 Bucket. With Private AccessControl. Parameters: BucketName: Description: Name for your sample bucket Type: String Resources: MyBucket: Type: 'My::S3::SampleBucketPrivate::MODULE' Properties: BucketName: !Ref BucketName AccessControl: Private
モジュールパラメータの制約の指定
モジュールパラメータは、制約の適用をサポートしていません。モジュールパラメータに対して制約チェックを実行するには、必要な制約を持つテンプレートパラメータを作成します。その後、モジュールパラメータでそのテンプレートパラメータを参照します。テンプレートのパラメータの定義に関する詳細は、「CloudFormation テンプレートの Parameters 構文」を参照してください。