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 aUpdateStack
. 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 sonFn::Length
yFn::ToJsonString
. Use las referencias explícitas a estas funciones. Por ejemplo, utiliceFn::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
yAWS::Serverless
, la transformaciónAWS::LanguageExtensions
debe aparecer antes que la transformaciónAWS::Serverless
en la lista. -
Las funciones y los atributos proporcionados por la transformación
AWS::LanguageExtensions
solo se admiten en las seccionesResources
,Conditions
yOutputs
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