Esta es la guía para AWS CDK desarrolladores de la versión 2. La primera versión del CDK pasó a la etapa de mantenimiento el 1.° de junio de 2022 y no cuenta con soporte desde el 1.° de junio de 2023.
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.
Implemente AWS CDK aplicaciones
Una AWS Cloud Development Kit (AWS CDK) implementación es el proceso de aprovisionamiento de la infraestructura. AWS
Cómo funcionan AWS CDK las implementaciones
AWS CDK Utiliza el AWS CloudFormation servicio para realizar despliegues. Antes de la implementación, se sintetizan las pilas de CDK. Esto crea una CloudFormation plantilla y artefactos de despliegue para cada pila de CDK de la aplicación. Las implementaciones se inician desde una máquina de desarrollo local o desde un entorno de integración y entrega continuas (CI/CD). Durante la implementación, los activos se cargan en los recursos iniciales y se envía la CloudFormation plantilla para CloudFormation aprovisionar los recursos. AWS
Para que la implementación se realice correctamente, se requiere lo siguiente:
-
La interfaz de línea AWS CDK de comandos (AWS CDK CLI) debe contar con permisos válidos.
-
El AWS entorno debe estar iniciado.
-
AWS CDK Debe conocer los recursos de arranque en los que cargar los activos.
Requisitos previos para las implementaciones de CDK
Antes de poder implementar una AWS CDK aplicación, debe completar lo siguiente:
-
Configure las credenciales de seguridad para la CDK CLI.
-
Inicie su entorno. AWS
-
Configure un AWS entorno para cada una de sus pilas de CDK.
-
Desarrolle su aplicación de CDK.
Configuración de credenciales de seguridad
Para usar el CDK CLI para interactuar con él AWS, debe configurar las credenciales de seguridad en su máquina local. Para obtener instrucciones, consulte Configure las credenciales de seguridad para AWS CDK CLI.
Inicie su entorno AWS
Una implementación siempre está asociada a uno o más AWS entornos. Antes de poder realizar la implementación, primero se debe iniciar el entorno. El inicio aprovisiona recursos en su entorno que el CDK utiliza para realizar y gestionar las implementaciones. Estos recursos incluyen un bucket de Amazon Simple Storage Service (Amazon S3) y un repositorio de Amazon Elastic Container Registry (Amazon ECR) para almacenar y administrar los activos. Estos recursos también incluyen funciones AWS Identity and Access Management (de IAM) que se utilizan para proporcionar permisos durante el desarrollo y la implementación.
Se recomienda utilizar la interfaz de línea de AWS CDK comandos (AWS CDK CLI) cdk bootstrap
para arrancar el entorno. Si es necesario, puede personalizar el inicio o crear estos recursos manualmente en su entorno. Para obtener instrucciones, consulte Inicie su entorno para usarlo con AWS CDK.
Configure AWS los entornos
Cada pila del CDK debe estar asociada a un entorno para determinar dónde se implementa la pila. Para obtener instrucciones, consulte Configure los entornos para usarlos con el AWS CDK.
Desarrolle su aplicación del CDK
Dentro de un proyecto de CDK, usted crea y desarrolla su aplicación de CDK. Dentro de la aplicación, se crean una o más pilas de CDK. Dentro de sus pilas, puede importar y utilizar componentes fijos de la biblioteca AWS Construct para definir su infraestructura. Antes de poder implementarla, la aplicación de CDK debe contener al menos una pila.
Síntesis de aplicaciones del CDK
Para realizar la síntesis, le recomendamos que utilice el CDK CLI comando cdk synth
El comando cdk
deploy
también realizará una síntesis antes de iniciar la implementación. Sin embargo, usando cdk
synth
, puede validar su aplicación de CDK y detectar errores antes de iniciar la implementación.
El comportamiento de la síntesis está determinado por el sintetizador de pila que configure para la pila del CDK. Si no configura un sintetizador, se utilizará DefaultStackSynthesizer
. También puede configurar y personalizar la síntesis para que se adapte a sus necesidades. Para obtener instrucciones, consulte Configurar y realizar la síntesis de pilas de CDK.
Para que la CloudFormation plantilla sintetizada se implemente correctamente en su entorno, debe ser compatible con la forma en que se inició su entorno. Por ejemplo, la CloudFormation plantilla debe especificar el bucket de Amazon S3 correcto en el que implementar los activos. Si utiliza el método predeterminado para iniciar su entorno, el sintetizador de pilas predeterminado funcionará. Si personaliza el comportamiento del CDK, por ejemplo, si personaliza el inicio o la síntesis, el comportamiento de implementación del CDK puede variar.
El ciclo de vida de la aplicación
Al realizar la síntesis, la aplicación del CDK pasa por las siguientes fases, conocidas como el ciclo de vida de la aplicación:
- Construcción (o inicialización)
-
El código crea instancias de todos los constructos definidos y, a continuación, los vincula entre sí. En esta etapa, se crean instancias de todos los constructos (aplicación, pilas y constructos secundarios) y se ejecuta la cadena de constructos. La mayor parte del código de la aplicación se ejecuta en esta etapa.
- Preparación
-
Todos los constructos que han implementado el método
prepare
participan en una ronda final de modificaciones para configurar su estado final. La fase de preparación se produce automáticamente. Como usuario, no ve ningún comentario de esta fase. Es poco frecuente que necesite usar el enlace de “prepare” y, por lo general, no se recomienda. Tenga mucho cuidado al mutar el árbol de constructos durante esta fase, ya que el orden de las operaciones podría afectar al comportamiento.Durante esta fase, una vez que se haya creado el árbol de constructos, también se aplicarán todos los aspectos que haya configurado.
- Validación
-
Todos los constructos que han implementado el método
validate
pueden validarse a sí mismos para garantizar que se encuentren en un estado que permita su correcta implementación. Se le notificará de cualquier error de validación que se produzca durante esta fase. Por lo general, le recomendamos que realice la validación lo antes posible (normalmente tan pronto como reciba información) y que descarte las excepciones lo antes posible. Realizar la validación de forma temprana mejora la fiabilidad, ya que los seguimientos de las pilas son más precisos y garantizan que el código pueda seguir ejecutándose de forma segura. - Síntesis
-
Esta es la etapa final de la ejecución de la aplicación de CDK. Se activa con una llamada a
app.synth()
, recorre el árbol de constructos e invoca el métodosynthesize
en todos los constructos. Los constructos que implementansynthesize
pueden participar en la síntesis y producir artefactos de implementación para el montaje en la nube resultante. Estos artefactos incluyen CloudFormation plantillas, paquetes de AWS Lambda aplicaciones, archivos y Docker activos de imagen y otros artefactos de despliegue. En la mayoría de los casos, no necesitará implementar el métodosynthesize
.
Ejecute una aplicación
El CDK. CLI necesita saber cómo ejecutar su aplicación CDK. Si creó el proyecto a partir de una plantilla mediante el comando cdk init
, el archivo cdk.json
de su aplicación incluye una clave de app
. Esta clave especifica el comando necesario para el lenguaje en el que está escrita la aplicación. Si su lenguaje requiere compilación, la línea de comandos realiza este paso antes de ejecutar la aplicación automáticamente.
Si no creó su proyecto con el CDK CLI, o si desea anular la línea de comandos proporcionadacdk.json
, puede proporcionar la --app
opción al ejecutar el cdk
comando.
$
cdk --app 'executable
'cdk-command
...
La executable
parte del comando indica el comando que debe ejecutarse para ejecutar la aplicación CDK. Use las comillas como se muestra, ya que estos comandos contienen espacios. cdk-command
Es un subcomando similar synth
o deploy
que indica al CDK CLI lo que quieres hacer con tu aplicación. Siga esto con cualquier opción adicional necesaria para ese subcomando.
El CDK. CLI también puede interactuar directamente con un conjunto de nubes ya sintetizado. Para ello, pase el directorio en el que está almacenado el montaje en la nube en --app
. En el siguiente ejemplo, se enumeran las pilas definidas en el montaje en la nube almacenado en ./my-cloud-assembly
.
$
cdk --app./my-cloud-assembly
ls
Montajes en la nube
La llamada a app.synth()
es lo que le indica AWS CDK a sintetizar un conjunto de nubes a partir de una aplicación. Por lo general, no se interactúa directamente con los montajes en la nube. Son archivos que incluyen todo lo necesario para implementar la aplicación en un entorno de nube. Por ejemplo, incluye una AWS CloudFormation plantilla para cada pila de la aplicación. También incluye una copia de cualquier archivo, activo o Docker imágenes a las que hagas referencia en tu aplicación.
Consulte la especificación del montaje en la nube
Para interactuar con el ensamblaje de nubes que crea tu AWS CDK aplicación, normalmente usas el AWS CDK CLI. Sin embargo, se puede usar cualquier herramienta que pueda leer el formato de ensamblaje de la nube para implementar su aplicación.
Implementar la aplicación
Para implementar la aplicación, le recomendamos que utilice la CDK CLI cdk deploy
comando para iniciar las implementaciones o configurar las implementaciones automatizadas.
Al ejecutar, el cdk deploy
CDK CLI se inicia cdk synth
para prepararse para el despliegue. En el siguiente diagrama, se ilustra el ciclo de vida de una aplicación en el contexto de una implementación:

Durante el despliegue, el CDK CLI toma el conjunto de nubes producido por la síntesis y lo despliega en un AWS entorno. Los activos se cargan en Amazon S3 y Amazon ECR y la CloudFormation plantilla se envía a Amazon AWS CloudFormation para su implementación.
Cuando comience la fase de AWS CloudFormation implementación, su aplicación de CDK ya habrá terminado de ejecutarse y se habrá cerrado. Esto tiene las siguientes implicaciones:
-
La aplicación del CDK no puede responder a los eventos que se producen durante la implementación, como la creación de un recurso o la finalización de toda la implementación. Para ejecutar el código durante la fase de implementación, debes inyectarlo en la AWS CloudFormation plantilla como un recurso personalizado. Para obtener más información sobre cómo agregar un recurso personalizado a su aplicación, consulte el módulo de AWS CloudFormation o el ejemplo del recurso personalizado
. También puede configurar el módulo Triggers para que ejecute código durante las implementaciones. -
Es posible que la aplicación del CDK tenga que funcionar con valores que no se pueden conocer al momento en que se ejecuta. Por ejemplo, si la aplicación de AWS CDK define un bucket de Amazon S3 con un nombre generado automáticamente y usted recupera el atributo
bucket.bucketName
(Python:bucket_name
), ese valor no es el nombre del bucket implementado. En su lugar, se obtiene un valor deToken
. Para determinar si un valor concreto está disponible, realice una llamada acdk.isUnresolved(value)
(Python:is_unresolved
). Para obtener más información, consulte Los tokens y el AWS CDK.
Permisos de implementación
Antes de poder realizar la implementación, se deben establecer los permisos. El siguiente diagrama ilustra los permisos que se utilizan durante una implementación predeterminada, cuando se utiliza el proceso de inicio y el sintetizador de pilas predeterminados:

- Actor inicia la implementación
-
Los despliegues los inicia un actor mediante el CDK CLI. Un actor puede ser una persona o un servicio como AWS CodePipeline.
Si es necesario, el CDK CLI se ejecuta
cdk synth
cuando tú correscdk deploy
. Durante la síntesis, la AWS identidad asumeLookupRole
que debe realizar búsquedas de contexto en el AWS entorno. - Los permisos están establecidos
-
En primer lugar, las credenciales de seguridad del actor se utilizan para autenticarse AWS y obtener la primera identidad de IAM del proceso. Para actores humanos, la forma en que configure las credenciales de seguridad depende de la forma en que usted o su organización administren los usuarios. Para obtener más información, consulte Configure las credenciales de seguridad para AWS CDK CLI. En el caso de los actores de servicio, por ejemplo CodePipeline, se asume y utiliza una función de ejecución de IAM.
A continuación, las funciones de IAM creadas en su AWS entorno durante el arranque se utilizan para establecer los permisos necesarios para realizar las acciones necesarias para la implementación. Para obtener más información acerca de los roles y sus permisos, consulte Roles de IAM creados durante el arranque. Este proceso consta de los pasos siguientes:
-
La AWS identidad asume la
DeploymentActionRole
función y se laCloudFormationExecutionRole
transfiere CloudFormation, lo que garantiza que CloudFormation asuma la función cuando realiza cualquier acción en su entorno. AWSDeploymentActionRole
otorga permiso para realizar despliegues en su entorno yCloudFormationExecutionRole
determina qué acciones CloudFormation se pueden realizar. -
La AWS identidad asume que
FilePublishingRole
, lo que determina las acciones que se pueden realizar en el bucket de Amazon S3 creado durante el arranque. -
La AWS identidad asume el
ImagePublishingRole
, lo que determina las acciones que se pueden realizar en el repositorio de Amazon ECR creado durante el arranque. -
Si es necesario, la AWS identidad asume que debe
LookupRole
realizar búsquedas de contexto en el entorno. AWS Esta acción también se puede realizar durante la síntesis de plantillas.
-
- Se realiza la implementación
-
Durante el despliegue, el CDK CLI lee el parámetro de versión de arranque para confirmar el número de versión de arranque. AWS CloudFormation también lee este parámetro en el momento del despliegue para confirmarlo. Si los permisos en todo el flujo de trabajo de implementación son válidos, se realiza la implementación. Los activos se cargan en los recursos iniciales y la CloudFormation plantilla producida en la síntesis se implementa utilizando el CloudFormation servicio como una CloudFormation pila para aprovisionar los recursos.