Salidas - AWS CloudFormation

Salidas

La sección Outputs opcional declara valores de salida que puede importar a otras pilas (para crear referencias cruzadas de pilas), devolver en respuesta (para describir las llamadas a la pila), o ver en la consola de AWS CloudFormation. Por ejemplo, puede declarar la salida para el nombre del bucket de S3 para una pila para que sea más fácil encontrar el bucket.

importante

CloudFormation no redacta ni ofusca ninguna información que incluya en la sección Outputs. Recomendamos encarecidamente que no utilice esta sección para generar información confidencial, como contraseñas o secretos.

Los valores de salida están disponibles una vez que la operación de pila está completa. Los valores de salida de la pila no están disponibles cuando el estado de la pila está en cualquiera de estos IN_PROGRESS estados. No recomendamos establecer dependencias entre un tiempo de ejecución de servicio y el valor de salida de la pila porque los valores de salida pueden no estar disponibles en todo momento.

Sintaxis

La sección Outputs consta del nombre de clave Outputs, seguido de un espacio y una sola coma. Puede declarar un máximo de 200 salidas en una plantilla.

El siguiente ejemplo muestra la estructura de la sección Outputs.

JSON

Utilice llaves para delimitar todas las declaraciones de salida. Delimite varias salidas con comas.

"Outputs" : { "Logical ID of resource" : { "Description" : "Information about the value", "Value" : "Value to return", "Export" : { "Name" : "Name of resource to export" } } }

YAML

Outputs: Logical ID of resource: Description: Information about the value Value: Value to return Export: Name: Name of resource to export

Campos de salida

La sección Outputs puede incluir los siguientes campos.

ID lógico (también denominado nombre lógico)

Un identificador para la salida actual. El ID lógico tiene que ser alfanumérico (a–z, A–Z, 0–9) y único dentro de la plantilla.

Descripción (opcional)

Un tipo de String que describe el valor de salida. El valor de la declaración de la descripción debe ser una cadena literal de entre 0 y 1024 bytes de longitud. No puede utilizar un parámetro o función para especificar la descripción.

Valor (obligatorio)

El valor de la propiedad devuelto por el comando aws cloudformation describe-stacks. El valor de una salida puede incluir literales, referencias de parámetros, pseudoparámetros, un valor de mapeo o funciones intrínsecas.

Exportación (opcional)

El nombre de la salida de los recursos que se exportan para una referencia cruzada de pila.

nota

Las siguientes restricciones se aplican a las referencias cruzadas entre pilas:

  • Para cada Cuenta de AWS, los nombres Export deben ser únicos dentro de una región.

  • No puede crear referencias cruzadas entre regiones. Puede utilizar la función intrínseca Fn::ImportValue para importar solo valores que se hayan exportado dentro de la misma región.

  • Para las salidas, el valor de la propiedad Name de un Export no puede usar las funciones Ref o GetAtt que dependen de un recurso.

    Del mismo modo, la función ImportValue no puede incluir funciones Ref o GetAtt que dependen de un recurso.

  • No puede eliminar una pila si otra pila hace referencia a una de sus salidas.

  • No puede modificar ni eliminar un valor de salida al que haga referencia otra pila.

Puede utilizar funciones intrínsecas para personalizar el valor Name de una exportación. Encontrará ejemplos en la siguiente sección.

Para asociar una condición a una salida, defina la condición en la sección Conditions de la plantilla.

Ejemplos

Los siguientes ejemplos ilustran cómo funciona la salida de la pila.

Salida de la pila

En el siguiente ejemplo, la salida denominada BackupLoadBalancerDNSName devuelve el nombre de DNS para el recurso con el ID lógico BackupLoadBalancer solo cuando la condición CreateProdResources es true. (La segunda salida muestra cómo especificar múltiples salidas.)

JSON

"Outputs" : { "BackupLoadBalancerDNSName" : { "Description": "The DNSName of the backup load balancer", "Value" : { "Fn::GetAtt" : [ "BackupLoadBalancer", "DNSName" ]}, "Condition" : "CreateProdResources" }, "InstanceID" : { "Description": "The Instance ID", "Value" : { "Ref" : "EC2Instance" } } }

YAML

Outputs: BackupLoadBalancerDNSName: Description: The DNSName of the backup load balancer Value: !GetAtt BackupLoadBalancer.DNSName Condition: CreateProdResources InstanceID: Description: The Instance ID Value: !Ref EC2Instance

Personalización del nombre de exportación mediante Fn::Sub

En los siguientes ejemplos, la salida denominada StackVPC devuelve el ID de una VPC y, a continuación, exporta el valor para la referencia cruzada de la pila VPCID junto al nombre de la pila.

JSON

"Outputs" : { "StackVPC" : { "Description" : "The ID of the VPC", "Value" : { "Ref" : "MyVPC" }, "Export" : { "Name" : {"Fn::Sub": "${AWS::StackName}-VPCID" } } } }

YAML

Outputs: StackVPC: Description: The ID of the VPC Value: !Ref MyVPC Export: Name: !Sub "${AWS::StackName}-VPCID"

Personalización del nombre de exportación mediante Fn::Join

En los ejemplos siguientes, se utiliza la función Fn::Join para personalizar el nombre de la exportación en lugar de la función Fn::Sub. La función Fn::Join de ejemplo concatena el nombre de la pila con el nombre VPCID utilizando dos puntos como separador.

JSON

"Outputs" : { "StackVPC" : { "Description" : "The ID of the VPC", "Value" : { "Ref" : "MyVPC" }, "Export" : { "Name" : { "Fn::Join" : [ ":", [ { "Ref" : "AWS::StackName" }, "VPCID" ] ] } } } }

YAML

Outputs: StackVPC: Description: The ID of the VPC Value: !Ref MyVPC Export: Name: !Join [ ":", [ !Ref "AWS::StackName", VPCID ] ]