使用參數指定模組值 - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用參數指定模組值

在 中 CloudFormation,您可以使用範本參數,在堆疊建立或更新期間提供輸入值來自訂堆疊。這些參數可讓您根據您的需求變更堆疊的某些層面。如需定義範本參數的詳細資訊,請參閱CloudFormation 範本 Parameters 語法

同樣地,模組也可以有參數。這些模組參數可讓您從使用它的範本 (或其他模組) 輸入自訂值到模組。然後,模組可以使用這些自訂值來為其包含的資源設定屬性值。

您也可以定義設定模組屬性的範本參數,以便輸入在堆疊操作時傳遞給模組的值。

如果模組包含具有自己的模組參數的巢狀模組,您可以:

  • 直接在父模組中指定巢狀模組參數的值。

  • 在父模組中定義對應的模組參數,使包含父模組的範本 (或模組) 可設定巢狀模組的參數。

使用範本參數指定模組參數值

下列範例顯示如何定義將值傳遞給模組的範本參數。

此包含 的範本My::S3::SampleBucket::MODULE定義範本參數 BucketName,可讓使用者在堆疊操作期間指定 S3 儲存貯體名稱。

# 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 將是子模組。其定義了兩個參數:BucketNameAccessControl。為這些參數指定的值會用來指定此模組包含之 AWS::S3::Bucket 資源的 BucketNameAccessControl 屬性。以下是 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 會以下列方式設定子模組參數:

  • 它會將 AccessControl 參數設定為 My::S3::SampleBucketPrivate::MODULE 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 語法