AWS::LanguageExtensions 변환 - AWS CloudFormation

AWS::LanguageExtensions 변환

AWS::LanguageExtensions 변환은 기본적으로 AWS CloudFormation에 포함되지 않은 내장 함수와 기타 기능을 사용할 수 있도록 AWS CloudFormation에서 호스팅하는 매크로입니다. 템플릿에서 AWS::LanguageExtensions를 참조하고, 변경 세트를 사용하여 스택을 생성하거나 업데이트하는 경우 AWS CloudFormation은 변환에 의해 정의된 모든 내장 함수를 템플릿 내의 확인된 값으로 업데이트합니다. AWS CloudFormation 템플릿에 AWS::LanguageExtensions 변환을 추가할 때 내장 함수를 RefFn::GetAtt에 대한 파라미터로 사용할 수 있습니다.

AWS::LanguageExtensions 변환은 다음 함수와 속성을 지원합니다.

사용량

변환 선언 값은 리터럴 문자열이어야 합니다 파라미터나 함수를 사용하여 변환 값을 지정할 수 없습니다. 이 코드 조각은 변환 선언의 예입니다.

템플릿 최상위의 구문

템플릿의 최상위 수준에서 AWS::LanguageExtensions 변환을 사용합니다. 다른 템플릿 섹션에 포함된 변환으로 AWS::LanguageExtensions 변환을 사용할 수 없습니다.

JSON

"Transform": "AWS::LanguageExtensions"

YAML

Transform: AWS::LanguageExtensions

파라미터

AWS::LanguageExtensions 변환에는 파라미터를 사용할 수 없습니다.

설명

AWS::LanguageExtensions 변환 사용 시 다음 사항을 명심하세요.

  • 다른 파라미터 값을 사용하여 스택을 업데이트하는 경우 변환이 포함된 원본 템플릿에 --use-previous-template 옵션을 사용하지 마세요. 변환 전에 UpdateStack 호출에서 원본 템플릿을 사용하세요. 스택은 새 파라미터 값으로 업데이트됩니다.

  • AWS::LanguageExtensions 변환에서만 사용 가능한 내장 함수의 템플릿 내에서는 짧은 형식의 YAML 구문이 지원되지 않습니다. AWS::LanguageExtensions 변환에서만 사용 가능한 내장 함수의 예로는 Fn::LengthFn::ToJsonString이 있습니다. 이러한 함수에 대한 명시적 참조를 사용하세요. 예를 들어 !Length 대신 Fn::Length을 사용하십시오.

  • 여러 개의 변환을 사용하는 경우 목록 형식을 사용하세요. 사용자 지정 매크로를 사용하는 경우 AWS 제공 변환을 사용자 지정 매크로 뒤에 배치하세요. AWS::LanguageExtensionsAWS::Serverless 변환을 모두 사용하는 경우 AWS::LanguageExtensions 변환이 목록에서 AWS::Serverless 변환 앞에 있어야 합니다.

  • AWS::LanguageExtensions 변환에서 제공하는 함수 및 속성은 템플릿의 Resources, ConditionsOutputs 섹션에서만 지원됩니다.

매크로 사용에 대한 자세한 내용은 CloudFormation 매크로 정의 생성의 내용을 참조하세요.

다음 예제에서는 AWS::LanguageExtensions 변환을 사용하여 변환에서 정의된 Fn::Length 내장 함수를 사용하는 방법을 보여줍니다.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::LanguageExtensions", "Parameters": { "QueueList": { "Type": "CommaDelimitedList" }, "QueueNameParam": { "Description": "Name for your SQS queue", "Type": "String" } }, "Resources": { "Queue": { "Type": "AWS::SQS::Queue", "Properties": { "QueueName": { "Ref": "QueueNameParam" }, "DelaySeconds": { "Fn::Length": { "Ref": "QueueList" } } } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Transform: 'AWS::LanguageExtensions' Parameters: QueueList: Type: CommaDelimitedList QueueNameParam: Description: Name for your SQS queue Type: String Resources: Queue: Type: 'AWS::SQS::Queue' Properties: QueueName: !Ref QueueNameParam DelaySeconds: 'Fn::Length': !Ref QueueList