AWS::Include 변환 - AWS CloudFormation

AWS::Include 변환

AWS CloudFormation에서 호스팅된 매크로인 AWS::Include 변형을 사용하여 보일러플레이트 콘텐츠를 템플릿에 삽입합니다. AWS::Include 변형을 사용하여 Amazon S3 버킷에서 템플릿 코드 조각에 대한 참조를 생성할 수 있습니다. 변경 세트 생성 또는 변경 세트를 사용하여 스택 업데이트 및 템플릿에서 AWS::Include를 참조할 때 AWS CloudFormation에서 템플릿에 있는 변형의 위치에 지정된 파일의 콘텐츠를 삽입합니다. AWS::Include 함수는 프로그래밍 언어로 include, copy 또는 import 지시문과 비슷하게 동작합니다.

예를 들어 하나 이상의 AWS CloudFormation 템플릿에서 재사용하려는 Lambda 함수가 있을 수 있습니다.

사용량

템플릿 파라미터 섹션 또는 템플릿 버전 필드를 제외하고 AWS CloudFormation 템플릿 내의 어디서든지 AWS::Include 변형을 사용할 수 있습니다. 예를 들어 매핑 섹션에서 AWS::Include를 사용할 수 있습니다.

템플릿 최상위의 구문

Transform 섹션에 있는 템플릿 최상위에 AWS::Include 변형을 포함하려면 다음 구문을 사용합니다.

JSON

{ "Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location" : "s3://DOC-EXAMPLE-BUCKET/MyFileName.json" } } }

YAML

Transform: Name: 'AWS::Include' Parameters: Location: 's3://DOC-EXAMPLE-BUCKET/MyFileName.yaml'

변형이 템플릿의 섹션 내에 포함되는 경우의 구문

섹션 내에 포함된 변형을 포함하려면 Fn::Transform 내장 함수 및 다음 구문을 사용합니다.

JSON

{ "Fn::Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location": "s3://DOC-EXAMPLE-BUCKET/MyFileName.json" } } }

YAML

'Fn::Transform': Name: 'AWS::Include' Parameters: Location: s3://DOC-EXAMPLE-BUCKET/MyFileName.yaml

파라미터

위치

위치는 구체적인 파일 이름이 S3 버킷인 Amazon S3 URI입니다. 예: s3://MyBucketName/MyFile.yaml.

설명

AWS::Include 사용 시 다음 사항을 명심하십시오. 매크로 사용에 대한 일반적인 고려 사항은 AWS 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로 저장하고, DOC-EXAMPLE-BUCKET과 동일한 이름으로 S3 버킷에 저장합니다.

WebServerWaitHandle: Type: 'AWS::CloudFormation::WaitConditionHandle'

JSON

{ "Resources": { "MyWaitHandle": { "Type": "AWS::CloudFormation::WaitConditionHandle" }, "Fn::Transform": { "Name": "AWS::Include", "Parameters": { "Location": "s3://DOC-EXAMPLE-BUCKET/single_wait_condition.yaml" } } } }

YAML

Resources: MyWaitHandle: Type: 'AWS::CloudFormation::WaitConditionHandle' 'Fn::Transform': Name: 'AWS::Include' Parameters: Location: "s3://DOC-EXAMPLE-BUCKET/single_wait_condition.yaml"