View a markdown version of this page

Migre los recursos existentes y AWS CloudFormation plantillas al AWS CDK - AWS Kit de desarrollo en la nube (AWS (CDK) v2

Esta es la guía para desarrolladores del AWS CDK v2. 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.

Migre los recursos existentes y AWS CloudFormation plantillas al AWS CDK

La función CDK Migrate está en versión preliminar para AWS CDK y está sujeta a cambios.

Usa la interfaz de línea de comandos (CLI del AWS CDK) del AWS Cloud Development Kit (AWS CDK) para migrar AWS los recursos implementados, las AWS CloudFormation pilas implementadas y las plantillas locales al CDK. AWS CloudFormation AWS

Cómo funciona la migración

Use el cdk migrate comando de la CLI del AWS CDK para migrar desde las siguientes fuentes:

  • AWS Recursos desplegados.

  • AWS CloudFormation Pilas desplegadas.

  • AWS CloudFormation Plantillas locales.

AWS Recursos desplegados

Puede migrar AWS los recursos implementados desde un entorno específico (AWS cuenta y AWS región) que no estén asociados a una AWS CloudFormation pila.

La CLI del AWS CDK utiliza el servicio generador de IaC para buscar recursos en su AWS entorno y recopilar detalles sobre los recursos. Para obtener más información sobre el generador iAC, consulte Generar plantillas para los recursos existentes en la Guía del usuario. AWS CloudFormation

Tras recopilar los detalles de los recursos, la CLI del AWS CDK crea una nueva aplicación del CDK que incluye una única pila que contiene los recursos migrados.

Pilas implementadas AWS CloudFormation

Puede migrar una sola AWS CloudFormation pila a una nueva aplicación de AWS CDK. La CLI del AWS CDK recuperará la AWS CloudFormation plantilla de su pila y creará una nueva aplicación de CDK. La aplicación CDK constará de una sola pila que contendrá la pila migrada. AWS CloudFormation

Plantillas locales AWS CloudFormation

Puede migrar desde una AWS CloudFormation plantilla local. Las plantillas locales pueden contener recursos implementados o no. La CLI del AWS CDK creará una nueva aplicación del CDK que contendrá una sola pila con sus recursos.

Tras la migración, puede administrar, modificar e implementar su aplicación CDK para aprovisionar o AWS CloudFormation actualizar sus recursos.

Beneficios de CDK Migrate

Históricamente, la migración de recursos a un AWS CDK ha sido un proceso manual que, incluso para empezar, requiere tiempo y experiencia con AWS CloudFormation un AWS CDK. Con CDK Migrate, la CLI de AWS CDK facilita la mayor parte del esfuerzo de migración en una fracción del tiempo. CDK Migrate le permitirá empezar rápidamente a usar el AWS CDK para desarrollar y administrar aplicaciones nuevas y existentes. AWS

Consideraciones

Consideraciones generales

CDK Migrate frente a CDK Import

El comando cdk import puede importar los recursos implementados a una aplicación de CDK nueva o existente. Durante la importación, tendrá que definirse manualmente cada recurso como un constructo de nivel 1 en la aplicación. Recomendamos el uso de cdk import para importar uno o más recursos a la vez a una aplicación de CDK nueva o existente. Para obtener más información, consulte Importe recursos existentes a una pila.

El cdk migrate comando migra desde los recursos implementados, las AWS CloudFormation pilas implementadas o las AWS CloudFormation plantillas locales a una nueva aplicación de CDK. Durante la migración, la CLI del AWS CDK se utiliza cdk import para importar los recursos a la nueva aplicación del CDK. La CLI del AWS CDK también genera automáticamente las construcciones de nivel 1 para cada recurso. Se recomienda utilizarla cdk migrate al importar desde una fuente de migración compatible a una nueva AWS aplicación de CDK.

CDK Migrate solo crea construcciones L1

La aplicación de CDK recién creada incluirá únicamente constructos de nivel 1. Puede agregar constructos de nivel superior a su aplicación después de la migración.

CDK Migrate crea aplicaciones de CDK que contienen una sola pila

La aplicación de CDK recién creada contendrá una sola pila.

Al migrar los recursos implementados, todos los recursos migrados se incluirán en una sola pila en la nueva aplicación de CDK.

Al migrar AWS CloudFormation pilas, solo puede migrar una única pila a una única AWS CloudFormation pila en la nueva aplicación CDK.

Migración de activos

Los activos del proyecto, como el código AWS Lambda, no se migrarán directamente a la nueva aplicación del CDK. Después de la migración, puede especificar los valores de los activos para incluirlos en la aplicación de CDK.

Migración de recursos con estado

Al migrar recursos con estado, como bases de datos y buckets de Amazon Simple Storage Service (Amazon S3), lo más habitual es migrar el recurso existente, en lugar de crear uno nuevo.

Para migrar y conservar los recursos con estado, haga lo siguiente:

  • Compruebe que el recurso con estado admite la importación. Para obtener más información, consulte la compatibilidad con los tipos de recursos en la Guía del AWS CloudFormation usuario.

  • Después de la migración, compruebe que el ID lógico del recurso migrado en la nueva aplicación de CDK coincide con el ID lógico del recurso implementado.

  • Si vas a migrar desde una AWS CloudFormation pila, comprueba que el nombre de la pila de la nueva aplicación de CDK coincide con la AWS CloudFormation pila.

  • Implemente la aplicación CDK con la misma AWS cuenta y AWS región del recurso migrado.

Consideraciones a la hora de migrar desde un AWS CloudFormation plantilla

CDK Migrate admite la migración de una sola plantilla

Al migrar AWS CloudFormation plantillas, puede seleccionar una sola plantilla para migrar. No se admiten las plantillas anidadas.

Migración de plantillas con funciones intrínsecas

Al migrar desde una AWS CloudFormation plantilla que usa funciones intrínsecas, la CLI del AWS CDK intentará migrar la lógica a la aplicación del CDK con la clase. Fn Para obtener más información, consulta la clase Fn en la referencia de la API del AWS Cloud Development Kit (AWS CDK).

Consideraciones a la hora de realizar migraciones a partir de recursos implementados

Limitaciones de escaneo

Al buscar recursos en su entorno, el generador IaC tiene limitaciones específicas en cuanto a los datos que puede recuperar y cuotas para los análisis. Para obtener más información, consulte las consideraciones en la Guía AWS CloudFormation del usuario.

Requisitos previos

Antes de usar el cdk migrate comando, complete todos los pasos de configuración que se indican en Primeros pasos con el AWS CDK.

Comience a usar CDK Migrate

Para empezar, ejecute el cdk migrate comando de la CLI del AWS CDK desde el directorio que elija. Elija las opciones obligatorias y optativas, según el tipo de migración que vaya a realizar.

Para obtener una lista completa de las opciones que puede utilizar con cdk migrate con descripciones, consulte cdk migrate.

A continuación, se indican algunas opciones importantes que debería proporcionar.

Nombre de pila

La única opción obligatoria es --stack-name. Usa esta opción para especificar un nombre para la pila que se creará en la aplicación AWS CDK después de la migración. El nombre de la pila también se utilizará como nombre de la AWS CloudFormation pila en el momento de la implementación.

Idioma

Use --language para especificar el lenguaje de programación de la nueva aplicación de CDK.

AWS cuenta y AWS región

La CLI del AWS CDK recupera la información de la AWS cuenta y AWS la región de las fuentes predeterminadas. Para obtener más información, consulte Entornos del AWS CDK. Puede utilizar las opciones --account y --region con cdk migrate para proporcionar otros valores.

Directorio de salida de su nuevo proyecto de CDK

De forma predeterminada, la CLI del AWS CDK creará un nuevo proyecto de CDK en tu directorio de trabajo y usará el valor que proporciones para asignar un nombre --stack-name a la carpeta del proyecto. Si actualmente existe una carpeta con el mismo nombre, la CLI del AWS CDK la sobrescribirá.

Puede especificar una ruta de salida diferente para la nueva carpeta del proyecto de CDK con la opción --output-path.

Fuente de migración

Elija una opción para especificar el origen desde el que está realizando la migración.

  • --from-path— Migrar desde una AWS CloudFormation plantilla local.

  • --from-scan— Migrar desde los recursos desplegados en una AWS cuenta y una AWS región.

  • --from-stack— Migrar desde una AWS CloudFormation pila.

En función del origen de la migración, puede proporcionar más opciones para personalizar el comando cdk migrate.

Migre desde un AWS CloudFormation pila

Para migrar desde una AWS CloudFormation pila implementada, proporcione la --from-stack opción. Introduzca el nombre de la AWS CloudFormation pila implementada con--stack-name. A continuación, se muestra un ejemplo:

$ cdk migrate --from-stack --stack-name "myCloudFormationStack"

La CLI del AWS CDK realizará lo siguiente:

  1. Recupere la AWS CloudFormation plantilla de la pila implementada.

  2. Ejecutar cdk init para iniciar una nueva aplicación de CDK

  3. Cree una pila dentro de la aplicación CDK que contenga la AWS CloudFormation pila migrada.

Al migrar desde una AWS CloudFormation pila implementada, la CLI del AWS CDK intenta hacer coincidir los identificadores lógicos de los recursos implementados y el nombre de la AWS CloudFormation pila implementada con los recursos y la pila migrados en la nueva aplicación de CDK.

Después de la migración, puede administrar y modificar su aplicación de CDK con normalidad. Al realizar la implementación, AWS CloudFormation identificará la implementación como una actualización de la AWS CloudFormation pila debido al nombre de la AWS CloudFormation pila correspondiente. Se actualizarán los recursos con ID lógicos coincidentes. Para obtener más información sobre la implementación, consulte Administración e implementación de su aplicación de CDK.

Migre desde un AWS CloudFormation plantilla

CDK Migrate admite la migración desde AWS CloudFormation plantillas formateadas en o. JSON YAML

Para migrar desde una AWS CloudFormation plantilla local, utilice la --from-path opción e indique una ruta a la plantilla local. También debe proporcionar la opción --stack-name requerida. A continuación, se muestra un ejemplo:

$ cdk migrate --from-path "./template.json" --stack-name "myCloudFormationStack"

La CLI del AWS CDK realizará lo siguiente:

  1. Recupera tu AWS CloudFormation plantilla local.

  2. Ejecutar cdk init para iniciar una nueva aplicación de CDK

  3. Crea una pila en la aplicación CDK que contenga la AWS CloudFormation plantilla migrada.

Después de la migración, puede administrar y modificar su aplicación de CDK con normalidad. En el momento de la implementación, tiene las siguientes opciones:

  • Actualizar una AWS CloudFormation pila: si la AWS CloudFormation plantilla local se implementó anteriormente, puede actualizar la AWS CloudFormation pila implementada.

  • Implemente una nueva AWS CloudFormation pila: si la AWS CloudFormation plantilla local nunca se implementó o si desea crear una nueva pila a partir de una plantilla implementada anteriormente, puede implementar una nueva AWS CloudFormation pila.

Migre desde un AWS SAM template (Plantilla de SAM)

Para migrar desde una plantilla del modelo de aplicaciones AWS sin servidor (AWS SAM), primero debe convertirla en una AWS CloudFormation plantilla o implementarla para crear una AWS CloudFormation pila.

Para convertir una plantilla de AWS SAM a AWS CloudFormation, puede usar el sam validate --debug comando de la CLI de AWS SAM. Es posible que tenga que configurar lint como false en su archivo samconfig.toml antes de ejecutar este comando.

Para convertirla en una AWS CloudFormation pila, implemente la plantilla AWS SAM mediante la CLI de AWS SAM. A continuación, migre los recursos a partir de la pila implementada.

Migración a partir de los recursos implementados

Para migrar desde AWS los recursos implementados, brinde la --from-scan opción. También debe proporcionar la opción --stack-name requerida. A continuación, se muestra un ejemplo:

$ cdk migrate --from-scan --stack-name "myCloudFormationStack"

La CLI del AWS CDK realizará lo siguiente:

  1. Escanee su cuenta para obtener detalles sobre los recursos y las propiedades: la CLI del AWS CDK utiliza el generador iAC para escanear su cuenta y recopilar detalles.

  2. Genere una AWS CloudFormation plantilla: después de escanear, la CLI del AWS CDK utiliza el generador IaC para crear una plantilla. AWS CloudFormation

  3. Inicialice una nueva aplicación de CDK y migre su plantilla: la CLI de AWS CDK se ejecuta cdk init para inicializar una nueva aplicación de CDK y migra su AWS CloudFormation plantilla a la aplicación de AWS CDK como una sola pila.

Utilice filtros

De forma predeterminada, la CLI del AWS CDK analizará todo el AWS entorno y migrará los recursos hasta el límite máximo de cuota del generador de IaC. Puede proporcionar filtros con la CLI del AWS CDK para especificar los criterios para la migración de los recursos de su cuenta a la nueva aplicación del CDK. Para obtener más información, consulte --filter .

Búsqueda de recursos con el generador IaC

En función del número de recursos en la cuenta, la búsqueda puede tardar unos minutos. Aparecerá una barra de progreso durante el proceso de búsqueda.

Tipos de recursos compatibles

La CLI del AWS CDK migrará los recursos compatibles con el generador de IaC. Para obtener una lista completa, consulte la compatibilidad con los tipos de recursos en la Guía del AWS CloudFormation usuario.

Resolución de propiedades de solo escritura

Algunos recursos compatibles contienen propiedades de solo escritura. Estas propiedades se pueden escribir para configurar la propiedad, pero el generador de IaC no las puede leer ni AWS CloudFormation para obtener el valor. Por ejemplo, una propiedad utilizada para especificar la contraseña de una base de datos puede ser de solo escritura por motivos de seguridad.

Al analizar los recursos durante la migración, el generador IaC detectará los recursos que puedan contener propiedades de solo escritura y los clasificará de acuerdo con cualquiera de los siguientes tipos:

  • MUTUALLY_EXCLUSIVE_PROPERTIES: se trata de propiedades de solo escritura para un recurso específico que son intercambiables y tienen un propósito similar. Se requiere una de las propiedades que se excluyen mutuamente para configurar el recurso. Por ejemplo, las propiedades S3Bucket, ImageUri y ZipFile para un recurso AWS::Lambda::Function son propiedades de solo escritura que se excluyen mutuamente. Puede usar cualquiera de ellas para especificar los activos de su función, pero debe usar una.

  • MUTUALLY_EXCLUSIVE_TYPES: se trata de propiedades obligatorias de solo escritura que aceptan varios tipos de configuración. Por ejemplo, la propiedad Body de un recurso AWS::ApiGateway::RestApi acepta un tipo de objeto o cadena.

  • UNSUPPORTED_PROPERTIES: se trata de propiedades de solo escritura que no se incluyen en las otras dos categorías. Son propiedades opcionales u obligatorias que aceptan una matriz de objetos.

Para obtener más información sobre las propiedades de solo escritura y sobre cómo las administra el generador de IaC al buscar recursos implementados y crear AWS CloudFormation plantillas, consulte el generador de IaC y las propiedades de solo escritura en la Guía del usuario. AWS CloudFormation

Después de la migración, debe especificar los valores de las propiedades de solo escritura en la nueva aplicación de CDK. La CLI del AWS CDK añadirá una sección de advertencias al ReadMe archivo del proyecto del CDK para documentar cualquier propiedad de solo escritura que el generador de IaC haya identificado. A continuación, se muestra un ejemplo:

# Welcome to your CDK TypeScript project ... ## Warnings ### Write-only properties Write-only properties are resource property values that can be written to but can't be read by AWS CloudFormation or CDK Migrate. For more information, see [IaC generator and write-only properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/generate-IaC-write-only-properties.html). Write-only properties discovered during migration are organized here by resource ID and categorized by write-only property type. Resolve write-only properties by providing property values in your CDK app. For guidance, see [Resolve write-only properties](https://docs.aws.amazon.com/cdk/v2/guide/migrate.html#migrate-resources-writeonly). ### MyLambdaFunction - **UNSUPPORTED_PROPERTIES**: - SnapStart/ApplyOn: Applying SnapStart setting on function resource type.Possible values: [PublishedVersions, None] This property can be replaced with other types - Code/S3ObjectVersion: For versioned objects, the version of the deployment package object to use. This property can be replaced with other exclusive properties - **MUTUALLY_EXCLUSIVE_PROPERTIES**: - Code/S3Bucket: An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account. This property can be replaced with other exclusive properties - Code/S3Key: The Amazon S3 key of the deployment package. This property can be replaced with other exclusive properties
  • Las advertencias se organizan con encabezados que identifican el ID lógico del recurso al que están asociadas.

  • Las advertencias se clasifican por tipo. Estos tipos provienen directamente del generador IaC.

Para resolver las propiedades de solo escritura
  1. Identifique las propiedades de solo escritura para resolverlas en la sección Advertencias del archivo ReadMe de su proyecto de CDK. Aquí puede tomar nota de los recursos de su aplicación de CDK que pueden contener propiedades de solo escritura e identificar los tipos de propiedades de solo escritura que se descubrieron.

    1. ParaMUTUALLY_EXCLUSIVE_PROPERTIES, determine qué propiedad que se excluya mutuamente va a configurar en su aplicación AWS CDK.

    2. Para MUTUALLY_EXCLUSIVE_TYPES, determine qué tipo aceptado utilizará para configurar la propiedad.

    3. Para UNSUPPORTED_PROPERTIES, determine si la propiedad es opcional u obligatoria. A continuación, configúrela según sea necesario.

  2. Utilice las instrucciones del generador IaC y las propiedades de solo escritura para consultar el significado de los tipos de advertencia.

  3. En su aplicación de CDK, los valores de las propiedades de solo escritura que se deben resolver también se especificarán en la sección Props de su aplicación. Introduzca aquí los valores correctos. Para obtener instrucciones y descripciones de las propiedades, puede consultar la Referencia de la API de AWS CDK.

    A continuación, se muestra un ejemplo de la sección Props en una aplicación de CDK migrada con dos propiedades de solo escritura que resolver:

    export interface MyTestAppStackProps extends cdk.StackProps { /** * The Amazon S3 key of the deployment package. */ readonly lambdaFunction00asdfasdfsadf008grk1CodeS3Keym8P82: string; /** * An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account. */ readonly lambdaFunction00asdfasdfsadf008grk1CodeS3Bucketzidw8: string; }

    Una vez que haya resuelto todos los valores de las propiedades de solo escritura, estará listo para prepararse para la implementación.

El archivo migrate.json

La CLI del AWS CDK crea un migrate.json archivo en su proyecto de AWS CDK durante la migración. Este archivo contiene información de referencia sobre los recursos implementados. Cuando implementas tu aplicación de CDK por primera vez, la CLI de AWS CDK usa este archivo para hacer referencia a los recursos implementados, los asocia a la nueva AWS CloudFormation pila y elimina el archivo.

Administración e implementación de su aplicación de CDK

Al migrar a AWS CDK, es posible que la nueva aplicación de CDK no esté lista para su implementación de inmediato. En este tema, se describen las medidas que se deben tener en cuenta al administrar e implementar su nueva aplicación de CDK.

Preparación para la implementación

Antes de la implementación, debe preparar la aplicación de CDK.

Sintetiza tu aplicación

Usa el cdk synth comando para sintetizar la pila de tu aplicación CDK en una plantilla. AWS CloudFormation

Si migraste desde una AWS CloudFormation pila o plantilla implementada, puedes comparar la plantilla sintetizada con la plantilla migrada para verificar los valores de los recursos y las propiedades.

Para obtener más información sobre cdk synth, consulte Sintetizar pilas.

Realice una diferencia

Si migraste desde una AWS CloudFormation pila implementada, puedes usar el comando cdk diff para compararla con la pila de tu nueva aplicación de CDK.

Para obtener más información sobre cdk diff, consulte Comparar pilas.

Arranca tu entorno

Si es la primera vez que realiza la implementación desde un AWS entorno, utilícelo cdk bootstrap para preparar el entorno. Para obtener más información, consulte Arranque de AWS CDK.

Implemente la aplicación de CDK

Cuando implementa una aplicación de CDK, la CLI de AWS CDK utiliza el AWS CloudFormation servicio para aprovisionar sus recursos. Los recursos se agrupan en una sola pila en la aplicación CDK y se implementan como una sola pila. AWS CloudFormation

Según el lugar desde el que hayas migrado, puedes implementarlos para crear una AWS CloudFormation pila nueva o actualizar una pila existente AWS CloudFormation .

Implemente para crear una AWS CloudFormation pila nueva

Si migró desde los recursos implementados, la CLI del AWS CDK creará automáticamente una nueva AWS CloudFormation pila en el momento de la implementación. Los recursos desplegados se incluirán en la nueva AWS CloudFormation pila.

Si migró desde una AWS CloudFormation plantilla local que nunca se implementó, la CLI del AWS CDK creará automáticamente una nueva AWS CloudFormation pila en el momento de la implementación.

Si migró desde una AWS CloudFormation pila implementada o una AWS CloudFormation plantilla local que ya estaba implementada anteriormente, puede realizar la implementación para crear una AWS CloudFormation pila nueva. Para crear una nueva pila, haga lo siguiente:

  • Implemente en un AWS entorno nuevo. Esto consiste en usar una AWS cuenta diferente o realizar la implementación en una AWS región diferente.

  • Si quieres implementar una nueva pila en el mismo AWS entorno de la pila o plantilla migrada, debes modificar el nombre de la pila en tu aplicación de CDK por un valor nuevo. También debe modificar todos los ID lógicos de los recursos en su aplicación de CDK. A continuación, puede realizar la implementación en el mismo entorno para crear una pila y recursos nuevos.

Implemente para actualizar una pila existente AWS CloudFormation

Si migraste desde una AWS CloudFormation pila implementada o una AWS CloudFormation plantilla local que ya estaba implementada, puedes implementarla para actualizar la AWS CloudFormation pila existente.

Comprueba que el nombre de la pila de tu aplicación CDK coincide con el nombre de la AWS CloudFormation pila implementada e impleméntala en el mismo AWS entorno.