Transformación AWS::LanguageExtensions - AWS CloudFormation

Transformación AWS::LanguageExtensions

La transformación AWS::LanguageExtensions es una macro que aloja AWS CloudFormation y que le permite usar funciones intrínsecas y otras funcionalidades no incluidas de forma predeterminada en AWS CloudFormation. Cuando una plantilla hace referencia a AWS::LanguageExtensions, y está creando o actualizando pilas con conjuntos de cambios, AWS CloudFormation actualiza cualquier función intrínseca definida por la transformación a su valor resuelto dentro de la plantilla. Cuando se agrega la transformación AWS::LanguageExtensions en una plantilla de AWS CloudFormation, se pueden usar funciones intrínsecas como parámetro para Ref y Fn::GetAtt.

La transformación AWS::LanguageExtensions admite las siguientes funciones y atributos:

Uso

El valor para la declaración de transformación debe ser una cadena literal. No puede utilizar un parámetro o función para especificar un valor de transformación. Consulte este fragmento de código para ver un ejemplo de una declaración de transformación:

Sintaxis de nivel superior de una plantilla

Use la transformación AWS::LanguageExtensions en el nivel superior de la plantilla. No se puede utilizar la transformación AWS::LanguageExtensions como una transformación integrada en ninguna otra sección de la plantilla.

JSON

"Transform": "AWS::LanguageExtensions"

YAML

Transform: AWS::LanguageExtensions

Parámetros

La transformación AWS::LanguageExtensions no acepta ningún parámetro.

Observaciones

Cuando use la transformación AWS::LanguageExtensions, tenga en cuenta las siguientes consideraciones:

  • Si actualiza una pila con un valor de parámetro diferente, no use la opción --use-previous-template en la que la plantilla original contiene la transformación. Utilice la plantilla original, antes de la transformación, en la llamada a UpdateStack. La pila se actualizará con los nuevos valores de los parámetros.

  • La sintaxis YAML de formato corto no se admite en una plantilla para las funciones intrínsecas que proporcione la transformación AWS::LanguageExtensions. Los ejemplos de funciones intrínsecas que solo están disponibles en laAWS::LanguageExtensions transformación son Fn::Length y Fn::ToJsonString. Use las referencias explícitas a estas funciones. Por ejemplo, utilice Fn::Length en lugar de !Length.

  • Si usa varias transformaciones, use un formato de lista. Si usa macros personalizadas, coloque las transformaciones que proporcione AWS después de sus macros personalizadas. Si usa las transformaciones AWS::LanguageExtensions y AWS::Serverless, la transformación AWS::LanguageExtensions debe aparecer antes que la transformación AWS::Serverless en la lista.

  • Las funciones y los atributos proporcionados por la transformación AWS::LanguageExtensions solo se admiten en las secciones Resources, Conditions y Outputs de una plantilla.

Para más información sobre el uso de macros, consulte Creación de una definición de macro de CloudFormation.

Ejemplo

En el siguiente ejemplo se muestra cómo usar la transformación AWS::LanguageExtensions para usar la función Fn::Length intrínseca, definida por la transformación.

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