AWS::Include
변환
AWS CloudFormation에서 호스팅된 매크로인 AWS::Include
변형을 사용하여 보일러플레이트 콘텐츠를 템플릿에 삽입합니다. AWS::Include
변형을 사용하여 Amazon S3 버킷에서 템플릿 코드 조각에 대한 참조를 생성할 수 있습니다. 변경 세트 생성 또는 변경 세트를 사용하여 CloudFormation 스택 업데이트 및 템플릿에서 AWS::Include
를 참조할 때 CloudFormation에서 템플릿에 있는 변형의 위치에 지정된 파일의 콘텐츠를 삽입합니다. AWS::Include
함수는 프로그래밍 언어로 include
, copy
또는 import
지시문과 비슷하게 동작합니다.
예를 들어, 하나 이상의 CloudFormation 템플릿에서 재사용하려는 Lambda 함수가 있을 수 있습니다.
사용량
템플릿 파라미터 섹션 또는 템플릿 버전 필드를 제외하고 CloudFormation 템플릿 내의 어디서든지 AWS::Include
변형을 사용할 수 있습니다. 예를 들어 매핑 섹션에서 AWS::Include
를 사용할 수 있습니다.
템플릿 최상위의 구문
Transform
섹션에 있는 템플릿 최상위에 AWS::Include
변형을 포함하려면 다음 구문을 사용합니다.
JSON
{ "Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location" : "s3://
amzn-s3-demo-bucket
/MyFileName
.json" } } }
YAML
Transform: Name: 'AWS::Include' Parameters: Location: '
s3://amzn-s3-demo-bucket/MyFileName.yaml
'
변형이 템플릿의 섹션 내에 포함되는 경우의 구문
섹션 내에 포함된 변형을 포함하려면 Fn::Transform
내장 함수 및 다음 구문을 사용합니다.
JSON
{ "Fn::Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location": "
s3://amzn-s3-demo-bucket/MyFileName.json
" } } }
YAML
'Fn::Transform': Name: 'AWS::Include' Parameters: Location: s3://
amzn-s3-demo-bucket
/MyFileName.yaml
파라미터
위치
위치는 구체적인 파일 이름이 S3 버킷인 Amazon S3 URI입니다. 예: s3://
.amzn-s3-demo-bucket
/MyFile.yaml
설명
AWS::Include
사용 시 다음 사항을 명심하십시오. 매크로 사용에 대한 일반적인 고려 사항은 CloudFormation 매크로 정의 생성 시 고려 사항 단원을 참조하십시오.
-
현재 Amazon S3 URI를 지원하지만, 다른 Amazon S3 형식(예: Amazon S3 ARN)은 없습니다. GitHub 리포지토리와는 반대로, 이름은 Amazon S3 버킷이어야 합니다.
-
Amazon S3 URL에 액세스할 수 있는 사람은 누구나 템플릿에 조각을 포함할 수 있습니다.
-
템플릿 조각은 유효한 JSON이어야 합니다.
-
템플릿 조각은
"KeyName": "keyValue"
와 같은 유효한 키– 객체여야 합니다. -
AWS::Include
를 사용하여AWS::Include
를 사용하는 템플릿 코드 조각을 참조할 수는 없습니다. -
코드 조각이 변경되는 경우 스택은 자동으로 해당 변경 사항을 선택하지 않습니다. 해당 변경 사항을 가져오려면 업데이트된 코드 조각으로 스택을 업데이트해야 합니다. 스택을 업데이트할 경우 포함된 코드 조각이 모르는 사이에 변경되지 않았는지 확인하십시오. 스택을 업데이트하기 전에 확인하려면 변경 세트를 확인하십시오.
-
템플릿과 코드 조각을 생성할 때 YAML 및 JSON 템플릿 언어를 혼합할 수 있습니다.
-
현재 YAML 코드 조각의 간편 표기법 사용은 지원되지 않습니다.
-
AWS::Include
를 사용하여 교차 리전 복제 Amazon S3 URI를 제공할 수 있습니다. 교차 리전 복제 객체에 액세스할 때는 반드시 Amazon S3 버킷을 확인하십시오. 자세한 내용은 교차 리전 복제를 참조하세요.
예
다음 예제에서는 AWS::Include
변형을 사용하여 대기 조건 핸들을 실행하는 방법을 보여 줍니다.
JSON 버전과 YAML 버전은 모두 다음 대기 조건 코드 조각을 사용합니다. 파일을 single_wait_condition.yaml
로 저장하고 S3 버킷에 저장합니다. amzn-s3-demo-bucket
을 실제 버킷 이름으로 바꿉니다.
WebServerWaitHandle: Type: 'AWS::CloudFormation::WaitConditionHandle'
JSON
{ "Resources": { "MyWaitHandle": { "Type": "AWS::CloudFormation::WaitConditionHandle" }, "Fn::Transform": { "Name": "AWS::Include", "Parameters": { "Location": "s3://
amzn-s3-demo-bucket
/single_wait_condition.yaml" } } } }
YAML
Resources: MyWaitHandle: Type: 'AWS::CloudFormation::WaitConditionHandle' 'Fn::Transform': Name: 'AWS::Include' Parameters: Location: "s3://
amzn-s3-demo-bucket
/single_wait_condition.yaml"