¿Cómo puedo hacer referencia a un recurso de otra pila desde una plantilla de AWS CloudFormation?

4 minutos de lectura
0

Quiero hacer referencia a un recurso de otra pila de AWS CloudFormation al crear una plantilla.

Descripción breve

La siguiente resolución proporciona un ejemplo de un método para crear una referencia entre pilas. Para obtener más instrucciones, consulte Tutorial: Consulte las salidas de recursos en otra pila de AWS CloudFormation.

Nota: Para hacer referencia a un recurso de otra pila de AWS CloudFormation, primero debe crear referencias entre pilas. Para crear una referencia entre pilas, utilice el campo de exportación para marcar el valor de la salida de un recurso para su exportación. A continuación, utilice la función intrínseca Fn::ImportValue para importar el valor de cualquier pila dentro de la misma región y cuenta de AWS. AWS CloudFormation identifica los valores exportados mediante los nombres especificados en la plantilla. Estos nombres deben ser exclusivos de su región y cuenta de AWS.

Resolución

Los siguientes pasos muestran cómo crear una pila de AWS CloudFormation llamada NetworkStack. Esta pila crea recursos relacionados con la red y exporta los llamados ${AWS::StackName}-SecurityGroupID y ${AWS::StackName}-SubnetID. El ${AWS::StackName} se sustituye por NetworkStack tras la creación de la pila. Los nombres finales de exportación son NetworkStack-SecurityGroupID y NetworkStack-SubnetID.

Crear una pila para exportar los valores de salida

1.    Cree una pila de AWS CloudFormation con esta plantilla.

2.    Llame la pila NetworkStack.

Nota: NetworkStack exporta los valores de subred y grupo de seguridad.

Crear una instancia de Amazon Elastic Compute Cloud (Amazon EC2) mediante una subred y un grupo de seguridad importados

1.    Abra la consola de AWS CloudFormation.

2.    Seleccione Crear pila y, a continuación, Plantilla de diseño.

3.    En la pestaña Parámetros del editor de código, seleccione Plantilla.

4.    Copie y pegue la siguiente plantilla en el editor de código y, a continuación, actualícela con los valores adecuados para Tipo de instancia e ID de imagen:

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

Importante: En la plantilla del paso 4, utilice la pila de recursos NetworkStack como valor para NetworkStackParameter. El valor NetworkStack reemplaza al nombre de pila correcto en las funciones Fn::ImportValue correspondientes.

Nota: Para ver ejemplos de plantillas de importación y exportación, consulte Fn::ImportValue.

5.    Seleccione el icono Crear pila y, a continuación, Siguiente.

6.    En Nombre de pila, introduzca un nombre para la pila.

7.    En Parámetros, introduzca el nombre de la pila de red (NetworkStack) con la que desee hacer la referencia cruzada.

8.    Seleccione Siguiente, otra vez Siguiente y, a continuación, Crear.

9.    Una vez finalizada la creación de la pila, abra la consola de Amazon EC2.

10.    En el panel de navegación, seleccione Instancias y, a continuación, elija la instancia que ha creado con la plantilla en el paso 4.

11.    Elija la vista de Descripción y, a continuación, compruebe que el grupo de seguridad y la subred estén configurados.

Importante: No puede eliminar la pila de origen ni los valores de exportación de la pila de origen mientras otra pila importe estos valores. Para actualizar los valores de exportación de la pila de origen, primero sustituya manualmente los valores reales de las pilas que importan los valores de exportación de la pila de origen. A continuación, podrá actualizar los valores de exportación de la pila de origen.

Para ver una lista de todas las pilas que importan un valor de salida exportado, ejecute el comando list-imports . Para ver una lista de todas las exportaciones de una región de AWS, utilice la consola de AWS CloudFormation o ejecute el comando list-exports . El nombre de exportación debe ser único para la cuenta por región de AWS.

Información relacionada

¿Cómo utilizo los parámetros del Almacén de parámetros de AWS Systems Manager para compartir valores entre pilas de CloudFormation?

Plantillas de AWS CloudFormation

AWS::EC2::Instance

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año