Ceci est le guide du développeur du AWS CDK v2. L'ancien CDK v1 est entré 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.
Migrer les ressources et les AWS CloudFormation modèles existants vers le AWS CDK
La fonctionnalité CDK Migrate est en version préliminaire pour AWS CDK et est sujette à modification. |
Utilisez l'interface de ligne de commande (AWS CDK AWS CLI) du AWS Cloud Development Kit (CDK) pour migrer les AWS ressources déployées, les AWS CloudFormation piles déployées et les AWS CloudFormation modèles locaux vers le CDK. AWS
Comment fonctionne la migration
Utilisez la cdk migrate
commande AWS CDK CLI pour effectuer une 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 les ressources déployées depuis un environnement spécifique (AWS compte et AWS région) qui ne sont pas associées à une AWS CloudFormation pile.
La CLI AWS CDK 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 collecté les détails des ressources, la CLI AWS CDK crée une nouvelle application CDK 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 application AWS CDK. La CLI AWS CDK récupérera le AWS CloudFormation modèle de votre pile et créera une nouvelle application CDK. L'application CDK sera composée d'une seule pile contenant votre pile migrée. AWS CloudFormation
- 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. La CLI AWS CDK créera une nouvelle application CDK contenant une pile unique contenant vos ressources.
Après la migration, vous pouvez gérer, modifier et déployer votre application CDK pour approvisionner ou mettre AWS CloudFormation à jour vos ressources.
Avantages de CDK Migrate
La migration des ressources vers le AWS CDK a toujours été un processus manuel qui nécessite du temps et de l'expertise avec AWS CloudFormation le AWS CDK pour commencer. Avec CDK Migrate, la AWS CLI CDK facilite la majeure partie des efforts de migration pour vous en un rien de temps. CDK Migrate 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
- CDK Migrate ou CDK Import
-
La
cdk import
commande peut importer des ressources déployées dans une application CDK 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 import
utiliser cette option pour importer une ou plusieurs ressources à la fois dans une application CDK nouvelle ou existante. Pour en savoir plus, voir Importer des ressources existantes dans une pile.La
cdk migrate
commande migre des ressources déployées, des AWS CloudFormation piles déployées ou des AWS CloudFormation modèles locaux vers une nouvelle application CDK. Pendant la migration, la CLI AWS CDK permetcdk import
d'importer vos ressources dans la nouvelle application CDK. La CLI AWS CDK génère également des constructions L1 pour chaque ressource pour vous. Nous vous recommandons de l'utilisercdk migrate
lors de l'importation depuis une source de migration prise en charge vers une nouvelle application AWS CDK. - CDK Migrate crée uniquement des constructions L1
-
L'application CDK nouvellement créée inclura uniquement les constructions L1. Vous pouvez ajouter des constructions de niveau supérieur à votre application après la migration.
- CDK Migrate crée des applications CDK contenant une seule pile
-
L'application CDK 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 application CDK.
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 application CDK.
- Migration des actifs
-
Les actifs du projet, tels que le code AWS Lambda, ne migreront pas directement vers la nouvelle application CDK. Après la migration, vous pouvez spécifier les valeurs des actifs pour les inclure dans l'application CDK.
- 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 application CDK 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 application CDK correspond à la AWS CloudFormation pile.
-
Déployez l'application CDK en utilisant le même AWS compte et la même AWS région que ceux de la ressource migrée.
-
Considérations relatives à la migration à partir d'un modèle AWS CloudFormation
- CDK Migrate 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, la AWS CLI CDK tente de faire migrer votre logique vers l'application CDK avec la classe.
Fn
Pour en savoir plus, consultez la classe Fn dans le Guide de référence de l'API AWS Cloud Development Kit (AWS CDK).
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 dans Getting started with the AWS CDK.
Commencez avec CDK Migrate
Pour commencer, exécutez la cdk migrate
commande AWS CDK CLI 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
, consultez cdk 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'application AWS CDK après la migration. Le nom de la pile sera également utilisé comme nom de votre AWS CloudFormation pile lors du déploiement. - Langue
-
--language
À utiliser pour spécifier le langage de programmation de la nouvelle application CDK. - AWS compte et AWS région
-
La CLI AWS CDK récupère les informations de AWS compte et de AWS région à partir de sources par défaut. Pour plus d'informations, consultez Environnements pour le AWS CDK. Vous pouvez utiliser
--account
des--region
optionscdk migrate
pour fournir d'autres valeurs. - Répertoire de sortie de votre nouveau projet CDK
-
Par défaut, la CLI AWS CDK crée un nouveau projet CDK dans votre répertoire de travail et utilise la valeur que vous fournissez
--stack-name
pour nommer le dossier du projet. Si un dossier portant le même nom existe actuellement, la CLI AWS CDK remplacera ce dossier.Vous pouvez spécifier un chemin de sortie différent pour le nouveau dossier de projet CDK à l'aide de l'
--output-path
option. - 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 une AWS région. -
--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-stack
option. Indiquez le nom de votre AWS CloudFormation stack déployé avec--stack-name
. Voici un exemple :
$ cdk migrate --from-stack --stack-name "myCloudFormationStack"
La CLI AWS CDK effectuera les opérations suivantes :
-
Récupérez le AWS CloudFormation modèle de votre stack déployé.
-
Exécutez
cdk init
pour initialiser une nouvelle application CDK. -
Créez une pile dans l'application CDK qui contient votre pile migrée. AWS CloudFormation
Lorsque vous migrez depuis une AWS CloudFormation pile déployée, la CLI AWS CDK 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 application CDK.
Après la migration, vous pouvez gérer et modifier votre application CDK 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, consultez Gérer et déployer votre application CDK.
Migrer à partir d'un AWS CloudFormation modèle
CDK Migrate prend en charge la migration à partir de AWS CloudFormation modèles formatés en ou. JSON
YAML
Pour effectuer une migration depuis un AWS CloudFormation modèle local, utilisez l'--from-path
option et indiquez un chemin d'accès au modèle local. Vous devez également fournir l'--stack-name
option requise. Voici un exemple :
$ cdk migrate --from-path "./template.json" --stack-name "myCloudFormationStack"
La CLI AWS CDK effectuera les opérations suivantes :
-
Récupérez votre AWS CloudFormation modèle local.
-
Exécutez
cdk init
pour initialiser une nouvelle application CDK. -
Créez une pile dans l'application CDK qui contient votre modèle migré. AWS CloudFormation
Après la migration, vous pouvez gérer et modifier votre application CDK 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 depuis un modèle AWS SAM
Pour migrer depuis un modèle d'application AWS sans serveur (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 modèle AWS SAM en AWS CloudFormation, vous pouvez utiliser la sam validate --debug
commande AWS SAM CLI. 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 modèle AWS SAM à l'aide de la CLI AWS SAM. 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-scan
option. Vous devez également fournir l'--stack-name
option requise. Voici un exemple :
$ cdk migrate --from-scan --stack-name "myCloudFormationStack"
La CLI AWS CDK effectuera les opérations suivantes :
-
Scannez votre compte pour obtenir des informations sur les ressources et les propriétés — La CLI AWS CDK utilise le générateur IaC pour scanner votre compte et recueillir des informations.
-
Générer un AWS CloudFormation modèle — Après la numérisation, la CLI AWS CDK utilise le générateur IaC pour créer un AWS CloudFormation modèle.
-
Initialisez une nouvelle application CDK et migrez votre modèle — La CLI AWS CDK
cdk init
s'exécute pour initialiser une AWS nouvelle application CDK et migre AWS CloudFormation votre modèle vers l'application CDK sous la forme d'une pile unique.
Utiliser des filtres
Par défaut, la CLI AWS CDK analyse l'ensemble de l' AWS environnement et migre les ressources jusqu'à la limite de quota maximale du générateur IaC. Vous pouvez fournir des filtres avec la CLI AWS CDK pour spécifier les critères selon lesquels les ressources seront migrées de votre compte vers la nouvelle application CDK. Pour en savoir plus, veuillez consulter la section
--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
-
La CLI AWS CDK migrera 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ésolution des 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ésS3Bucket
ImageUri
, et d'uneAWS::Lambda::Function
ressource sont desZipFile
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, laBody
propriété d'uneAWS::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 application CDK. La CLI AWS CDK ajoutera une section Avertissements au ReadMe
fichier du projet CDK 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
-
-
Identifiez les propriétés en écriture seule à résoudre dans la section Avertissements du fichier de votre projet CDK.
ReadMe
Ici, vous pouvez prendre note des ressources de votre application CDK susceptibles de contenir des propriétés en écriture seule et identifier les types de propriétés en écriture seule découverts.-
Pour
MUTUALLY_EXCLUSIVE_PROPERTIES
déterminer la propriété mutuellement exclusive à configurer dans votre application AWS CDK. -
Pour
MUTUALLY_EXCLUSIVE_TYPES
, déterminez le type accepté que vous utiliserez pour configurer la propriété. -
Pour
UNSUPPORTED_PROPERTIES
, déterminez si la propriété est facultative ou obligatoire. Ensuite, configurez le cas échéant.
-
-
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.
-
Dans votre application CDK, 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 référence de l'API AWS CDK.Voici un exemple de
Props
section d'une application CDK 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
La CLI AWS CDK crée un migrate.json
fichier dans votre projet AWS CDK pendant la migration. Ce fichier contient des informations de référence sur vos ressources déployées. Lorsque vous déployez votre application CDK pour la première fois, la AWS CLI CDK 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 application CDK
Lors de la migration vers le AWS CDK, il est possible que la nouvelle application CDK 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 application CDK.
Préparation au déploiement
Avant le déploiement, vous devez préparer votre application CDK.
- Synthétisez votre application
-
Utilisez la
cdk synth
commande pour synthétiser la pile de votre application CDK 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
cdk synth
, consultez Synthesize stacks. - 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 la section Comparer 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 la section AWS Démarrage du CDK.
Déployez votre application CDK
Lorsque vous déployez une application CDK, la AWS CLI CDK utilise le AWS CloudFormation service pour provisionner vos ressources. Les ressources sont regroupées en une seule pile dans l'application CDK et sont déployées en une seule AWS CloudFormation pile.
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, la AWS CLI CDK 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é à partir d'un AWS CloudFormation modèle local qui n'a jamais été déployé, la AWS CLI CDK 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 dans une autre AWS région.
-
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 application CDK pour lui attribuer une nouvelle valeur. Vous devez également modifier toute IDs la logique des ressources de votre application CDK. 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 application CDK correspond au nom de la AWS CloudFormation pile déployée et déployez-la dans le même AWS environnement.