Consulta de las salidas de recursos en otra pila de CloudFormation
En este tutorial, se muestra cómo hacer referencia a los resultados de una pila de CloudFormation dentro de otra pila para crear plantillas más modulares y reutilizables.
En lugar de incluir todos los recursos en una sola pila, debe crear recursos de AWS en pilas independientes. A continuación, puede consultar salidas de recursos necesarios de otras pilas. Al restringir referencias de pila cruzadas a salidas, usted controla las partes de una pila referenciadas por otras pilas.
Por ejemplo, podría tener una pila de red con una VPC, un grupo de seguridad, y una subred para aplicaciones web públicas y una pila de aplicaciones web públicas independientes. Para garantizar que las aplicaciones web utilicen el grupo de seguridad y la subred de la pila de la red, debe crear una referencia de pila cruzada que permita a la pila de aplicaciones web hacer referencia a resultados de recursos desde la pila de red. Con una referencia de pila cruzada, los propietarios de las pilas de aplicaciones web no necesitan crear ni mantener reglas de red o activos.
Para crear una referencia de pila cruzada, utilice el campo de campo de salida Export
para marcar el valor de la salida de un recurso para exportar. A continuación, utilice la función intrínseca Fn::ImportValue
para importar el valor. Para obtener más información, consulte Obtención de salidas exportadas de una pila implementada de CloudFormation.
nota
CloudFormation es un servicio gratuito. Sin embargo, se le cobrará por los recursos de AWS que incluya en sus pilas a la tarifa actual para cada una. Para obtener más información sobre los precios de AWS, consulte la página de detalles de cada producto
Paso 1: Utilice una plantilla de ejemplo para crear una pila de red
Antes de empezar este tutorial, compruebe que tiene permisos de IAM para utilizar todos los siguientes servicios: Amazon VPC, Amazon EC2 y CloudFormation.
La pila de red contiene la VPC, el grupo de seguridad y la subred que utilizará en la pila de aplicaciones web. Además de estos recursos, la pila de red crea una gateway de Internet y las tablas de ruteo para permitir el acceso público.
Debe crear esta pila antes de crear la pila de aplicaciones web. Si crea la pila de aplicaciones web primero, no tendrá un grupo de seguridad ni una subred.
La plantilla de pila está disponible a través de la siguiente URL: https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleNetworkCrossStack.templateOutputs
, puede ver los recursos de red que la plantilla de ejemplo exporta. Los nombres de los recursos exportados están prefijados con el nombre de la pila en caso de que se exporten recursos de red de otras pilas. Cuando los usuarios importan recursos de red, pueden especificar de qué pilas se importan los recursos.
Para crear la pila de la red
-
Abra la consola de CloudFormation
y seleccione Crear pila. -
Elija Template is ready (La plantilla está lista) y en la sección Specify template (Especificar plantilla), seleccione Amazon S3 URL (URL de Amazon S3).
-
Copie y pegue la siguiente URL en el cuadro de texto:
https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleNetworkCrossStack.template
. -
Elija Siguiente.
-
En Stack name (Nombre de pila), escriba
SampleNetworkCrossStack
y, a continuación, elija Next (Siguiente).nota
Registre el nombre de esta pila. Necesitará el nombre de la pila al lanzar la pila de aplicaciones web.
-
Elija Siguiente. Para este tutorial, no tiene que añadir etiquetas ni especificar una configuración avanzada.
-
Asegúrese de que el nombre de la pila y la URL de la plantilla sean correctos y elija Create stack (Crear pila).
CloudFormation puede tardar varios minutos en crear la pila. Espere hasta que todos los recursos se hayan creado correctamente antes de proceder a crear la pila de aplicaciones web.
-
Para monitorizar el progreso, vea los eventos de la pila. Para obtener más información, consulte Monitorizar el progreso de la pila.
Paso 2: Utilice una plantilla de ejemplo para crear una pila de aplicaciones web
La pila de aplicaciones web crea una instancia de EC2 que utiliza el grupo de seguridad y la subred desde la pila de la red.
Debe crear esta pila en la misma Región de AWS que la pila de la red.
La plantilla de pila está disponible a través de la siguiente URL: https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleWebAppCrossStack.templateResources
, vea las propiedades de la instancia de EC2. Puede ver cómo se importan los recursos de red de otra pila usando la función Fn::ImportValue
.
Para crear la pila de aplicaciones web
-
Abra la consola de CloudFormation
y seleccione Crear pila. -
Elija Template is ready (La plantilla está lista) y en la sección Specify template (Especificar plantilla), seleccione Amazon S3 URL (URL de Amazon S3).
-
Copie y pegue la siguiente URL en el cuadro de texto:
https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleWebAppCrossStack.template
. -
Elija Siguiente.
-
Para Stack name (Nombre de pila), escriba
SampleWebAppCrossStack
. En la sección Parameters (Parámetros), utilice el valor predeterminado para el parámetro NetworkStackName y, a continuación, elija Next (Siguiente).La plantilla de ejemplo utiliza el valor del parámetro para especificar en cada pila para importar valores.
-
Elija Siguiente. Para este tutorial, no tiene que añadir etiquetas ni especificar una configuración avanzada.
-
Asegúrese de que el nombre de la pila y la URL de la plantilla sean correctos y elija Create stack (Crear pila).
CloudFormation puede tardar varios minutos en crear la pila.
Paso 3: verifique que la pila funcione según lo esperado
Después de haber creado la pila, vea sus recursos y tenga en cuenta el ID de instancia. Para obtener más información acerca de la visualización de recursos de la pila, consulte Visualización de la información de la pila desde la consola de CloudFormation.
Para verificar la subred y el grupo de seguridad de la instancia, vea las propiedades de la instancia en la consola de Amazon EC2SampleNetworkCrossStack
, se ha creado correctamente una referencia de pila cruzada.
Utilice la consola para ver los resultados de pila y la URL del sitio web de ejemplo para comprobar que se ejecuta la aplicación web. Para obtener más información, consulte Visualización de la información de la pila desde la consola de CloudFormation.
Paso 4: Eliminar los recursos
Para asegurarse de que no se le cobra por servicios no deseados, elimine las pilas.
Para eliminar las pilas
-
En la consola de CloudFormation, seleccione la pila
SampleWebAppCrossStack
. -
Elija Actions (Acciones) y, a continuación, elija Delete Stack (Eliminar pila).
-
En el mensaje de confirmación, elija Delete (Eliminar).
-
Una vez que se haya eliminado la pila, repita los mismos pasos con la pila
SampleNetworkCrossStack
.nota
Espere hasta que CloudFormation elimine por completo la pila
SampleWebAppCrossStack
. Si la instancia de EC2 sigue ejecutándose en la VPC, CloudFormation no eliminará la VPC en la pilaSampleNetworkCrossStack
.