範本中的 CloudFormation參考模組資源 - AWS CloudFormation

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

範本中的 CloudFormation參考模組資源

在 CloudFormation 範本中,您通常需要根據另一個資源的名稱或屬性,在某個資源上設定屬性。如需詳細資訊,請參閱參考資源

若要參考 CloudFormation 範本中模組中包含的資源,您必須合併兩個邏輯名稱:

  • 當您在範本中包含模組時,您提供給模組本身的邏輯名稱。

  • 該模組中特定資源的邏輯名稱。

您可以將這兩個邏輯名稱與它們結合,無論是否使用句點 (.)。例如,如果模組的邏輯名稱是 ,MyModule而資源的邏輯名稱是 MyBucket,您可以將該資源稱為 MyModule.MyBucketMyModuleMyBucket

若要尋找模組內資源的邏輯名稱,您可以查詢模組的結構描述,該結構描述可在 CloudFormation 登錄檔中使用,或使用 DescribeType 操作。結構描述會列出屬於模組一部分的所有資源及其邏輯名稱。

擁有完整的邏輯名稱後,您可以使用 GetAtt和 等 CloudFormation 函數Ref來存取模組資源上的屬性值。

例如,您有一個My::S3::SampleBucket::MODULE模組,其中包含邏輯名稱為 AWS::S3::Bucket的資源S3Bucket。若要使用 Ref函數參考此儲存貯體的名稱,您可以將範本 (MyBucket) 中的模組名稱與模組 () 中的資源邏輯名稱結合S3Bucket。完整邏輯名稱為 MyBucket.S3BucketMyBucketS3Bucket

範例 範本

下列範例範本會使用 My::S3::SampleBucket::MODULE模組建立 S3 儲存貯體。它也會建立 Amazon SQS佇列,並將其名稱設定為與模組中的儲存貯體名稱相同。此外,範本會輸出所建立 S3 儲存貯體的 Amazon Resource Name (ARN)。

# Template that uses 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 exampleQueue: Type: AWS::SQS::Queue Properties: QueueName: !Ref MyBucket.S3Bucket Outputs: BucketArn: Value: !GetAtt MyBucket.S3Bucket.Arn