Migrez les ressources et les AWS CloudFormation modèles existants vers AWS CDK - AWS Cloud Development Kit (AWS CDK) v2

Ceci est le guide du AWS CDK développeur de la version 2. L'ancienne CDK version 1 est entrée en maintenance le 1er juin 2022 et a pris fin le 1er juin 2023.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Migrez les ressources et les AWS CloudFormation modèles existants vers AWS CDK

La fonctionnalité CDK Migrer est en version préliminaire AWS CDK et est sujette à modification.

Utilisez l'interface AWS Cloud Development Kit (AWS CDK) de ligne de commande (AWS CDK CLI) pour migrer les AWS ressources déployées, les AWS CloudFormation piles déployées et les AWS CloudFormation modèles locaux vers AWS CDK.

Comment fonctionne la migration

Utilisez le AWS CDK CLI cdk migratecommande pour effectuer la migration à partir des sources suivantes :

  • AWS Ressources déployées.

  • AWS CloudFormation Stacks déployés.

  • AWS CloudFormation Modèles locaux.

AWS Ressources déployées

Vous pouvez migrer AWS des ressources déployées depuis un environnement spécifique (Compte AWS et Région AWS) qui ne sont pas associées à une AWS CloudFormation pile.

Le AWS CDK CLI utilise le service de génération iAC pour rechercher les ressources de votre AWS environnement afin de recueillir des informations détaillées sur les ressources. Pour en savoir plus sur le générateur IaC, consultez la section Génération de modèles pour les ressources existantes dans le guide de AWS CloudFormation l'utilisateur.

Après avoir rassemblé les détails des ressources, le AWS CDK CLI crée une nouvelle CDK application qui inclut une pile unique contenant vos ressources migrées.

AWS CloudFormation Stacks déployés

Vous pouvez migrer une seule AWS CloudFormation pile vers une nouvelle AWS CDK application. Le AWS CDK CLI récupérera le AWS CloudFormation modèle de votre pile et créera une nouvelle CDK application. L'CDKapplication sera composée d'une seule pile contenant votre AWS CloudFormation pile migrée.

AWS CloudFormation Modèles locaux

Vous pouvez effectuer la migration à partir d'un AWS CloudFormation modèle local. Les modèles locaux peuvent contenir ou non des ressources déployées. Le AWS CDK CLI créera une nouvelle CDK application contenant une pile unique contenant vos ressources.

Après la migration, vous pouvez gérer, modifier et déployer votre CDK application pour approvisionner ou mettre AWS CloudFormation à jour vos ressources.

Avantages de CDK Migrate

La migration des ressources vers ce AWS CDK site a toujours été un processus manuel qui nécessite du temps et de l'expertise, voire même AWS CDK pour commencer. AWS CloudFormation Avec CDK Migrate, le AWS CDK CLI facilite la majeure partie des efforts de migration pour vous en un rien de temps. CDKMigrate vous permettra de commencer rapidement à utiliser le AWS CDK pour développer et gérer des applications nouvelles et existantes sur AWS.

Considérations

Considérations d’ordre général

CDKMigrer ou CDK importer

La cdk import commande peut importer des ressources déployées dans une CDK application nouvelle ou existante. Lors de l'importation, chaque ressource devra être définie manuellement en tant que construction L1 dans votre application. Nous vous recommandons d'cdk importutiliser cette option pour importer une ou plusieurs ressources à la fois dans une CDK application nouvelle ou existante. Pour en savoir plus, consultez Importer des ressources existantes dans une pile.

La cdk migrate commande migre depuis les ressources déployées, les AWS CloudFormation piles déployées ou les AWS CloudFormation modèles locaux vers une nouvelle CDK application. Au cours de la migration, AWS CDK CLI utilise cdk import pour importer vos ressources dans la nouvelle CDK application. Le AWS CDK CLI génère également des constructions L1 pour chaque ressource pour vous. Nous vous recommandons de l'utiliser cdk migrate lors de l'importation depuis une source de migration prise en charge vers une nouvelle AWS CDK application.

CDKMigrate crée uniquement des constructions L1

L'CDKapplication nouvellement créée inclura uniquement les constructions L1. Vous pouvez ajouter des constructions de niveau supérieur à votre application après la migration.

CDKMigrate crée des CDK applications contenant une seule pile

L'CDKapplication nouvellement créée contiendra une seule pile.

Lors de la migration des ressources déployées, toutes les ressources migrées seront contenues dans une pile unique dans la nouvelle CDK application.

Lors de la migration de AWS CloudFormation piles, vous ne pouvez migrer qu'une seule AWS CloudFormation pile vers une seule pile dans la nouvelle CDK application.

Migration des actifs

Les actifs du projet, tels que AWS Lambda le code, ne seront pas directement migrés vers la nouvelle CDK application. Après la migration, vous pouvez spécifier les valeurs des actifs pour les inclure dans l'CDKapplication.

Migration de ressources dynamiques

Lorsque vous migrez des ressources dynamiques, telles que des bases de données et des compartiments Amazon Simple Storage Service (Amazon S3), vous souhaiterez le plus souvent migrer la ressource existante plutôt que d'en créer une nouvelle.

Pour migrer et préserver les ressources dynamiques, procédez comme suit :

  • Vérifiez que votre ressource dynamique prend en charge l'importation. Pour plus d'informations, consultez la section Support des types de ressources dans le Guide de AWS CloudFormation l'utilisateur.

  • Après la migration, vérifiez que l'ID logique de la ressource migrée dans la nouvelle CDK application correspond à l'ID logique de la ressource déployée.

  • Si vous migrez depuis une AWS CloudFormation pile, vérifiez que le nom de la pile dans la nouvelle CDK application correspond à la AWS CloudFormation pile.

  • Déployez l'CDKapplication à l'aide du même AWS compte et Région AWS de la même ressource migrée.

Considérations relatives à la migration à partir d'un modèle AWS CloudFormation

CDKMigrate prend en charge la migration d'un modèle unique

Lors de la migration AWS CloudFormation de modèles, vous pouvez sélectionner un seul modèle à migrer. Les modèles imbriqués ne sont pas pris en charge.

Migration de modèles dotés de fonctions intrinsèques

Lors de la migration à partir d'un AWS CloudFormation modèle qui utilise des fonctions intrinsèques, AWS CDK CLI tentera de faire migrer votre logique dans l'CDKapplication avec la Fn classe. Pour en savoir plus, consultez la classe Fn dans la AWS Cloud Development Kit (AWS CDK) APIréférence.

Considérations relatives à la migration à partir de ressources déployées

Limites de numérisation

Lorsque vous analysez votre environnement à la recherche de ressources, le générateur iAc est soumis à des limites spécifiques quant aux données qu'il peut récupérer et à des limites de quotas lors de l'analyse. Pour en savoir plus, consultez la section Considérations du guide de AWS CloudFormation l'utilisateur.

Prérequis

Avant d'utiliser la cdk migrate commande, effectuez toutes les étapes de configuration dansCommencer à utiliser le AWS CDK.

Commencez avec CDK Migrate

Pour commencer, lancez AWS CDK CLI cdk migratecommande depuis le répertoire de votre choix. Fournissez les options obligatoires et facultatives, en fonction du type de migration que vous effectuez.

Pour une liste complète et une description des options que vous pouvez utilisercdk migrate, consultezcdk migrate.

Voici quelques options importantes que vous souhaiterez peut-être proposer.

Nom de la pile

La seule option requise est--stack-name. Utilisez cette option pour spécifier le nom de la pile qui sera créée dans l' AWS CDK application après la migration. Le nom de la pile sera également utilisé comme nom de votre AWS CloudFormation pile lors du déploiement.

Langue

Permet --language de spécifier le langage de programmation de la nouvelle CDK application.

AWS compte et Région AWS

Le AWS CDK CLI récupère le AWS compte et les Région AWS informations à partir des sources par défaut. Pour de plus amples informations, veuillez consulter Environnements pour AWS CDK. Vous pouvez utiliser --account des --region options cdk migrate pour fournir d'autres valeurs.

Répertoire de sortie de votre nouveau CDK projet

Par défaut, le AWS CDK CLI créera un nouveau CDK projet dans votre répertoire de travail et utilisera la valeur que vous avez fournie --stack-name pour nommer le dossier du projet. Si un dossier portant le même nom existe actuellement, AWS CDK CLI remplacera ce dossier.

Vous pouvez spécifier un chemin de sortie différent pour le nouveau dossier de CDK projet à l'aide de l'--output-pathoption.

Source de migration

Fournissez une option pour spécifier la source à partir de laquelle vous effectuez la migration.

  • --from-path— Migrez à partir d'un AWS CloudFormation modèle local.

  • --from-scan— Migrez à partir des ressources déployées dans un AWS compte et Région AWS.

  • --from-stack— Migrez depuis une AWS CloudFormation pile.

En fonction de votre source de migration, vous pouvez proposer des options supplémentaires pour personnaliser la cdk migrate commande.

Migrer à partir d'une AWS CloudFormation pile

Pour effectuer une migration à partir d'une AWS CloudFormation pile déployée, offrez l'--from-stackoption. Indiquez le nom de votre AWS CloudFormation stack déployé avec--stack-name. Voici un exemple :

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

Le AWS CDK CLI effectuera les opérations suivantes :

  1. Récupérez le AWS CloudFormation modèle de votre stack déployé.

  2. Exécutez cdk init pour initialiser une nouvelle CDK application.

  3. Créez une pile dans l'CDKapplication qui contient votre AWS CloudFormation pile migrée.

Lorsque vous migrez à partir d'une AWS CloudFormation pile déployée, AWS CDK CLI tente de faire correspondre la logique des ressources déployées IDs et le nom de la AWS CloudFormation pile déployée aux ressources migrées et à la pile dans la nouvelle CDK application.

Après la migration, vous pouvez gérer et modifier votre CDK application normalement. Lorsque vous déployez, AWS CloudFormation identifiera le déploiement comme une mise à jour de AWS CloudFormation pile en raison du nom de AWS CloudFormation pile correspondant. Les ressources associées à la logique correspondante IDs seront mises à jour. Pour plus d'informations sur le déploiement, consultezGérez et déployez votre CDK application.

Migrer à partir d'un AWS CloudFormation modèle

CDKMigrate prend en charge la migration à partir de AWS CloudFormation modèles formatés en JSON ou. YAML

Pour effectuer une migration à partir d'un AWS CloudFormation modèle local, utilisez l'--from-pathoption et indiquez un chemin d'accès au modèle local. Vous devez également fournir l'--stack-nameoption requise. Voici un exemple :

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

Le AWS CDK CLI effectuera les opérations suivantes :

  1. Récupérez votre AWS CloudFormation modèle local.

  2. Exécutez cdk init pour initialiser une nouvelle CDK application.

  3. Créez une pile dans l'CDKapplication qui contient votre AWS CloudFormation modèle migré.

Après la migration, vous pouvez gérer et modifier votre CDK application normalement. Lors du déploiement, vous disposez des options suivantes :

  • Mettre à jour une AWS CloudFormation pile : si le AWS CloudFormation modèle local a déjà été déployé, vous pouvez mettre à jour la AWS CloudFormation pile déployée.

  • Déployer une nouvelle AWS CloudFormation pile : si le AWS CloudFormation modèle local n'a jamais été déployé, ou si vous souhaitez créer une nouvelle pile à partir d'un modèle précédemment déployé, vous pouvez déployer une nouvelle AWS CloudFormation pile.

Migrer à partir d'un AWS SAM modèle

Pour migrer depuis un modèle AWS Serverless Application Model (AWS SAM), vous devez d'abord le convertir en AWS CloudFormation modèle ou le déployer pour créer une AWS CloudFormation pile.

Pour convertir un AWS SAM modèle en AWS CloudFormation, vous pouvez utiliser AWS SAM CLI sam validate --debugcommande. Vous devrez peut-être le lint définir false dans votre samconfig.toml fichier avant d'exécuter cette commande.

Pour le convertir en AWS CloudFormation pile, déployez le AWS SAM modèle à l'aide du AWS SAM CLI. Migrez ensuite depuis la pile déployée.

Migrer à partir des ressources déployées

Pour effectuer une migration à partir de AWS ressources déployées, offrez l'--from-scanoption. Vous devez également fournir l'--stack-nameoption requise. Voici un exemple :

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

Le AWS CDK CLI effectuera les opérations suivantes :

  1. Scannez votre compte pour obtenir des informations détaillées sur les ressources et les propriétés — Le AWS CDK CLI utilise le générateur iAC pour scanner votre compte et recueillir des informations.

  2. Génération d'un AWS CloudFormation modèle — Après la numérisation, AWS CDK CLI utilise le générateur IaC pour créer un AWS CloudFormation modèle.

  3. Initialisez une nouvelle CDK application et migrez votre modèle — Le AWS CDK CLI s'exécute cdk init pour initialiser une nouvelle AWS CDK application et migre votre AWS CloudFormation modèle dans l'CDKapplication sous la forme d'une pile unique.

Utiliser des filtres

Par défaut, le AWS CDK CLI analysera l'ensemble de AWS l'environnement et migrera les ressources jusqu'à la limite de quota maximale du générateur IaC. Vous pouvez fournir des filtres avec AWS CDK CLI pour spécifier les critères selon lesquels les ressources seront migrées de votre compte vers la nouvelle CDK application. Pour en savoir plus, consultez --filter.

Recherche de ressources avec le générateur IaC

Selon le nombre de ressources de votre compte, la numérisation peut prendre quelques minutes. Une barre de progression s'affiche pendant le processus de numérisation.

Types de ressources pris en charge

Le AWS CDK CLI fera migrer les ressources prises en charge par le générateur iAc. Pour une liste complète, consultez la section Support des types de ressources dans le guide de AWS CloudFormation l'utilisateur.

Résoudre les propriétés en écriture seule

Certaines ressources prises en charge contiennent des propriétés en écriture seule. Ces propriétés peuvent être écrites pour configurer la propriété, mais ne peuvent pas être lues par le générateur IaC ou AWS CloudFormation pour obtenir la valeur. Par exemple, une propriété utilisée pour spécifier un mot de passe de base de données peut être en écriture seule pour des raisons de sécurité.

Lors de l'analyse des ressources pendant la migration, le générateur iAC détecte les ressources susceptibles de contenir des propriétés en écriture seule et les classe dans l'un des types suivants :

  • MUTUALLY_EXCLUSIVE_PROPERTIES— Il s'agit de propriétés en écriture seule pour une ressource spécifique qui sont interchangeables et ont un objectif similaire. L'une des propriétés mutuellement exclusives est requise pour configurer votre ressource. Par exemple, les propriétés S3BucketImageUri, et d'une AWS::Lambda::Function ressource sont des ZipFile propriétés en écriture seule qui s'excluent mutuellement. N'importe lequel d'entre eux peut être utilisé pour spécifier les actifs de votre fonction, mais vous devez en utiliser un.

  • MUTUALLY_EXCLUSIVE_TYPES— Il s'agit de propriétés en écriture seule obligatoires qui acceptent plusieurs types de configuration. Par exemple, la Body propriété d'une AWS::ApiGateway::RestApi ressource accepte un type d'objet ou de chaîne.

  • UNSUPPORTED_PROPERTIES— Il s'agit de propriétés en écriture seule qui n'entrent pas dans les deux autres catégories. Il s'agit soit de propriétés facultatives, soit de propriétés obligatoires qui acceptent un ensemble d'objets.

Pour plus d'informations sur les propriétés en écriture seule et sur la façon dont le générateur iAC les gère lors de la recherche de ressources déployées et de la création de AWS CloudFormation modèles, consultez les sections Générateur iAc et propriétés en écriture seule dans le Guide de l'utilisateur.AWS CloudFormation

Après la migration, vous devez spécifier des valeurs de propriétés en écriture seule dans la nouvelle CDK application. Le AWS CDK CLI ajoutera une section Avertissements au ReadMe fichier du CDK projet pour documenter toutes les propriétés en écriture seule identifiées par le générateur IaC. Voici un exemple :

# 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
  • Les avertissements sont organisés sous des en-têtes qui identifient l'ID logique de la ressource à laquelle ils sont associés.

  • Les avertissements sont classés par type. Ces types proviennent directement du générateur IaC.

Pour résoudre les propriétés en écriture seule
  1. Identifiez les propriétés en écriture seule à résoudre dans la section Avertissements du fichier de votre CDK projet. ReadMe Ici, vous pouvez prendre note des ressources de votre CDK application susceptibles de contenir des propriétés en écriture seule et identifier les types de propriétés en écriture seule découverts.

    1. PourMUTUALLY_EXCLUSIVE_PROPERTIES, déterminez la propriété mutuellement exclusive à configurer dans votre AWS CDK application.

    2. PourMUTUALLY_EXCLUSIVE_TYPES, déterminez le type accepté que vous utiliserez pour configurer la propriété.

    3. PourUNSUPPORTED_PROPERTIES, déterminez si la propriété est facultative ou obligatoire. Ensuite, configurez le cas échéant.

  2. Utilisez les instructions du générateur IaC et les propriétés en écriture seule pour faire référence à la signification des types d'avertissement.

  3. Dans votre CDK application, les valeurs des propriétés en écriture seule à résoudre seront également spécifiées dans la Props section de votre application. Indiquez les valeurs correctes ici. Pour obtenir des descriptions et des conseils sur les propriétés, vous pouvez vous référer à la AWS CDK APIréférence.

    Voici un exemple de Props section d'une CDK application migrée avec deux propriétés en écriture seule à résoudre :

    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; }

Une fois que vous avez résolu toutes les valeurs de propriété en écriture seule, vous êtes prêt à préparer le déploiement.

Le fichier migrate.json

Le AWS CDK CLI crée un migrate.json fichier dans votre AWS CDK projet lors de la migration. Ce fichier contient des informations de référence sur vos ressources déployées. Lorsque vous déployez votre CDK application pour la première fois, AWS CDK CLI utilise ce fichier pour référencer vos ressources déployées, associe vos ressources à la nouvelle AWS CloudFormation pile et supprime le fichier.

Gérez et déployez votre CDK application

Lors de la migration vers AWS CDK, il est possible que la nouvelle CDK application ne soit pas immédiatement prête à être déployée. Cette rubrique décrit les actions à prendre en compte lors de la gestion et du déploiement de votre nouvelle CDK application.

Préparation au déploiement

Avant le déploiement, vous devez préparer votre CDK application.

Synthétisez votre application

Utilisez la cdk synth commande pour synthétiser la pile de votre CDK application dans un AWS CloudFormation modèle.

Si vous avez migré à partir d'une AWS CloudFormation pile ou d'un modèle déployé, vous pouvez comparer le modèle synthétisé au modèle migré pour vérifier les valeurs des ressources et des propriétés.

Pour en savoir plus sur cdk synth, consultez Synthétiser des piles.

Effectuez une différence

Si vous avez migré depuis une AWS CloudFormation pile déployée, vous pouvez utiliser la commande cdk diff pour comparer avec la pile de votre nouvelle application. CDK

Pour en savoir plus sur cdk diff, consultez. Comparez les piles

Bootstrap votre environnement

Si vous déployez depuis un AWS environnement pour la première fois, utilisez-le cdk bootstrap pour préparer votre environnement. Pour en savoir plus, consultez AWS CDK bootstrap.

Déployez votre CDK application

Lorsque vous déployez une CDK application, AWS CDK CLI utilise le AWS CloudFormation service pour mettre à disposition vos ressources. Les ressources sont regroupées dans une pile unique dans l'CDKapplication et sont déployées en tant que AWS CloudFormation pile unique.

Selon l'endroit d'où vous avez migré, vous pouvez effectuer un déploiement pour créer une nouvelle AWS CloudFormation pile ou mettre à jour une AWS CloudFormation pile existante.

Déployer pour créer une nouvelle AWS CloudFormation pile

Si vous avez migré à partir de ressources déployées, AWS CDK CLI créera automatiquement une nouvelle AWS CloudFormation pile lors du déploiement. Vos ressources déployées seront incluses dans la nouvelle AWS CloudFormation pile.

Si vous avez migré depuis un AWS CloudFormation modèle local qui n'a jamais été déployé, AWS CDK CLI créera automatiquement une nouvelle AWS CloudFormation pile lors du déploiement.

Si vous avez migré à partir d'une AWS CloudFormation pile déployée ou d'un AWS CloudFormation modèle local précédemment déployé, vous pouvez effectuer un déploiement pour créer une nouvelle AWS CloudFormation pile. Pour créer une nouvelle pile, procédez comme suit :

  • Déployez dans un nouvel AWS environnement. Cela consiste à utiliser un autre AWS compte ou à effectuer un déploiement sur un autre Région AWS.

  • Si vous souhaitez déployer une nouvelle pile dans le même AWS environnement que la pile ou le modèle migré, vous devez modifier le nom de la pile dans votre CDK application pour lui attribuer une nouvelle valeur. Vous devez également modifier toute IDs la logique des ressources de votre CDK application. Vous pouvez ensuite le déployer dans le même environnement pour créer une nouvelle pile et de nouvelles ressources.

Déployer pour mettre à jour une AWS CloudFormation pile existante

Si vous avez migré à partir d'une AWS CloudFormation pile déployée ou d'un AWS CloudFormation modèle local précédemment déployé, vous pouvez effectuer un déploiement pour mettre à jour la AWS CloudFormation pile existante.

Vérifiez que le nom de la pile dans votre CDK application correspond au nom de la AWS CloudFormation pile déployée et déployez-la dans le même AWS environnement.