本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範本中的 CloudFormation參考模組資源
在 CloudFormation 範本中,您通常需要根據另一個資源的名稱或屬性,在某個資源上設定屬性。如需詳細資訊,請參閱參考資源。
若要參考 CloudFormation 範本中模組中包含的資源,您必須合併兩個邏輯名稱:
-
當您在範本中包含模組時,您提供給模組本身的邏輯名稱。
-
該模組中特定資源的邏輯名稱。
您可以將這兩個邏輯名稱與它們結合,無論是否使用句點 (.)。例如,如果模組的邏輯名稱是 ,MyModule
而資源的邏輯名稱是 MyBucket
,您可以將該資源稱為 MyModule.MyBucket
或 MyModuleMyBucket
。
若要尋找模組內資源的邏輯名稱,您可以查詢模組的結構描述,該結構描述可在 CloudFormation 登錄檔中使用,或使用 DescribeType 操作。結構描述會列出屬於模組一部分的所有資源及其邏輯名稱。
擁有完整的邏輯名稱後,您可以使用 GetAtt
和 等 CloudFormation 函數Ref
來存取模組資源上的屬性值。
例如,您有一個My::S3::SampleBucket::MODULE
模組,其中包含邏輯名稱為 AWS::S3::Bucket
的資源S3Bucket
。若要使用 Ref
函數參考此儲存貯體的名稱,您可以將範本 (MyBucket
) 中的模組名稱與模組 () 中的資源邏輯名稱結合S3Bucket
。完整邏輯名稱為 MyBucket.S3Bucket
或 MyBucketS3Bucket
。
範例 範本
下列範例範本會使用 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