CloudFormation 템플릿의 모듈 리소스 참조 - AWS CloudFormation

CloudFormation 템플릿의 모듈 리소스 참조

CloudFormation에서 다른 리소스의 이름이나 속성을 기반으로 한 리소스의 속성을 설정해야 하는 경우가 있습니다. 자세한 내용은 참조 리소스 단원을 참조하십시오.

CloudFormation 템플릿의 모듈에 포함된 리소스를 참조하려면 두 논리명을 결합해야 합니다.

  • 템플릿에 모듈을 포함할 때 모듈 자체에 지정한 논리명입니다.

  • 해당 모듈 내 특정 리소스의 논리명입니다.

이 두 논리명을 마침표(.)를 사용하거나 사용하지 않고 결합할 수 있습니다. 예를 들어, 모듈의 논리명이 MyModule이고 리소스의 논리명이 MyBucket인 경우 해당 리소스를 MyModule.MyBucket 또는 MyModuleMyBucket으로 참조할 수 있습니다.

모듈 내부 리소스의 논리명을 찾으려면 CloudFormation 레지스트리에서 사용할 수 있는 모듈 스키마를 참조하거나 DescribeType 작업을 사용합니다. 스키마에는 모듈의 일부인 모든 리소스와 해당 논리명이 나열됩니다.

전체 논리명을 알면 GetAttRef와 같은 CloudFormation 함수를 사용하여 모듈 리소스의 속성 값에 액세스할 수 있습니다.

예를 들어, 논리명이 S3BucketAWS::S3::Bucket 리소스를 포함하는 My::S3::SampleBucket::MODULE 모듈이 있다고 가정해 보겠습니다. Ref 함수를 사용하여 이 버킷의 이름을 참조하려면 템플릿의 모듈 이름(MyBucket)과 모듈의 리소스 논리명(S3Bucket)을 결합합니다. 전체 논리명은 MyBucket.S3Bucket 또는 MyBucketS3Bucket입니다.

예제 템플릿

다음 예 템플릿은 My::S3::SampleBucket::MODULE 모듈을 사용하여 S3 버킷을 생성합니다. 또한 Amazon SQS 대기열을 생성하고 해당 이름을 모듈의 버킷 이름과 동일하게 설정합니다. 생성된 S3 버킷의 Amazon 리소스 이름(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