Fn::ImportValue - AWS CloudFormation

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Fn::ImportValue

La función intrínseca Fn::ImportValue devuelve el valor de una salida exportada por otra pila. Esta función se suele utilizar para crear referencias cruzadas entre pilas. En los siguientes fragmentos de código de plantillas de ejemplo, la Pila A exporta valores del grupo de seguridad de la VPC y la Pila B los importa.

nota

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

  • Los nombres Export de cada cuenta de AWS deben ser únicos.

  • No puede crear referencias cruzadas entre pilas en distintas 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 los resultados, el valor de la propiedad Name de Export no puede usar las funciones Ref ni GetAtt que dependen de un recurso.

    De igual modo, la función ImportValue no puede incluir las funciones Ref ni GetAtt que dependen de un recurso.

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

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

Exportación de la pila A

"Outputs" : { "PublicSubnet" : { "Description" : "The subnet ID to use for public web servers", "Value" : { "Ref" : "PublicSubnet" }, "Export" : { "Name" : {"Fn::Sub": "${AWS::StackName}-SubnetID" }} }, "WebServerSecurityGroup" : { "Description" : "The security group ID to use for public web servers", "Value" : { "Fn::GetAtt" : ["WebServerSecurityGroup", "GroupId"] }, "Export" : { "Name" : {"Fn::Sub": "${AWS::StackName}-SecurityGroupID" }} } }

Importación de la Pila B

"Resources" : { "WebServerInstance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : "t2.micro", "ImageId" : "ami-a1b23456", "NetworkInterfaces" : [{ "GroupSet" : [{"Fn::ImportValue" : {"Fn::Sub" : "${NetworkStackNameParameter}-SecurityGroupID"}}], "AssociatePublicIpAddress" : "true", "DeviceIndex" : "0", "DeleteOnTermination" : "true", "SubnetId" : {"Fn::ImportValue" : {"Fn::Sub" : "${NetworkStackNameParameter}-SubnetID"}} }] } } }

Declaración

JSON

{ "Fn::ImportValue" : sharedValueToImport }

YAML

Puede utilizar el nombre de la función completa:

Fn::ImportValue: sharedValueToImport

También puede utilizar la forma abreviada:

!ImportValue sharedValueToImport
importante

No se puede utilizar la forma abreviada de !ImportValue cuando contiene un !Sub. El siguiente ejemplo es válido para AWS CloudFormation, pero no es válido para YAML:

!ImportValue !Sub "${NetworkStack}-SubnetID"

En lugar de ello, debe utilizar el nombre de la función completa, por ejemplo:

Fn::ImportValue: !Sub "${NetworkStack}-SubnetID"

Parámetros

sharedValueToImport

El valor de salida de la pila que desea importar.

Valor devuelto

El valor de salida de la pila.

Ejemplo

JSON

{ "Fn::ImportValue" : {"Fn::Sub": "${NetworkStackNameParameter}-SubnetID" } }

YAML

Fn::ImportValue: !Sub "${NetworkStackName}-SecurityGroupID"

Funciones compatibles

Puede utilizar las siguientes funciones en la función Fn::ImportValue. El valor de estas funciones no puede depender de un recurso.

  • Fn::Base64

  • Fn::FindInMap

  • Fn::If

  • Fn::Join

  • Fn::Select

  • Fn::Split

  • Fn::Sub

  • Ref