C'est le AWS Guide du développeur 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.
déploiement cdk
Déployez un ou plusieurs AWS Le CDK s'intègre à votre AWS environnement.
Pendant le déploiement, la CLI CDK produira des indicateurs de progression, similaires à ceux qui peuvent être observés à partir du AWS CloudFormation console.
Si le AWS L'environnement n'est pas amorcé, seules les piles sans actifs et avec des modèles synthétisés de moins de 51 200 octets seront déployées avec succès.
Usage
$ cdk deploy <arguments> <options>
Arguments
- ID de pile CDK
-
L'ID de construction de la pile CDK de votre application à déployer.
Type : chaîne
Obligatoire : non
Options
Pour obtenir la liste des options globales qui fonctionnent avec toutes les commandes de l'interface de ligne de commande CDK, voir Options globales.
-
--all <BOOLEAN> -
Déployez toutes les piles dans votre application CDK.
Valeur par défaut :
false
-
--asset-parallelism <BOOLEAN> -
Spécifiez s'il faut créer et publier des ressources en parallèle.
-
--asset-prebuild <BOOLEAN> -
Spécifiez s'il faut créer tous les actifs avant de déployer la première pile. Cette option est utile en cas d'échec des builds de Docker.
Valeur par défaut :
true
-
--build-exclude, -E <ARRAY> -
Ne reconstruisez pas l'actif avec l'ID indiqué.
Cette option peut être spécifiée plusieurs fois dans une seule commande.
Valeur par défaut :
[]
-
--change-set-name <STRING> -
Le nom du AWS CloudFormation ensemble de modifications à créer.
Cette option n'est pas compatible avec
--method='direct'.
-
--concurrency <NUMBER> -
Déployez plusieurs piles en parallèle tout en tenant compte des dépendances entre les piles. Utilisez cette option pour accélérer les déploiements. Vous devez tout de même prendre en compte AWS CloudFormation et autres AWS limitation du débit du compte.
Fournissez un chiffre pour spécifier le nombre maximum de déploiements simultanés (si la dépendance le permet) à effectuer.
Valeur par défaut :
1
-
--exclusively, -e <BOOLEAN> -
Déployez uniquement les piles demandées et n'incluez pas les dépendances.
-
--express <BOOLEAN> -
Déployez en utilisant CloudFormation mode express. Le mode Express permet des déploiements plus rapides grâce à CloudFormation en signalant les opérations de pile comme étant terminées dès que CloudFormation applique la configuration des ressources. Cependant, CloudFormation fait état de succès sans attendre que les ressources se stabilisent. De plus, le mode express n'effectue pas de restauration automatiquement et laissera les piles en état d'échec en cas de problème. Pour activer la restauration automatique avec le mode express, incluez le
--rollbackdrapeau dans votre déploiement en mode express.Pour plus d'informations, voir mode express dans le AWS CloudFormation Guide de l'utilisateur.
Note
Le mode Express n'attend pas la stabilisation pour signaler le succès et n'effectue pas de restauration automatique en cas d'échec. Nous ne recommandons pas le mode express pour les déploiements en production. Le mode Express est destiné aux déploiements itératifs que vous effectueriez lors du développement de votre application.
Valeur par défaut :
false
-
--force, -f <BOOLEAN> -
Lorsque vous déployez pour mettre à jour une pile existante, la CLI CDK compare le modèle et les balises de la pile déployée à la pile sur le point d'être déployée. Si aucune modification n'est détectée, la CLI CDK ignore le déploiement.
Pour modifier ce comportement et toujours déployer des piles, même si aucune modification n'est détectée, utilisez cette option.
Valeur par défaut :
false
-
--help, -h <BOOLEAN> -
Afficher les informations de référence des commandes pour
cdk deploycommande.
-
--hotswap <BOOLEAN> -
Déploiements Hotswap pour un développement plus rapide. Cette option tente d'effectuer un déploiement plus rapide avec hotswap si possible. Par exemple, si vous modifiez le code d'une fonction Lambda dans votre application CDK, la CLI CDK mettra à jour la ressource directement via les API de service au lieu d'effectuer une CloudFormation déploiement.
Si la CLI CDK détecte des modifications qui ne prennent pas en charge l'échange à chaud, ces modifications seront ignorées et un message s'affichera. Si vous préférez effectuer un CloudFormation déploiement comme solution de repli, utilisez
--hotswap-fallbackau lieu de cela.La CLI CDK utilise votre version actuelle AWS informations d'identification pour effectuer les appels d'API. Il n'assume pas les rôles de votre pile de bootstrap, même si
@aws-cdk/core:newStyleStackSynthesisl'indicateur de fonctionnalité est défini surtrue. Ces rôles ne disposent pas des autorisations nécessaires pour être mis à jour AWS ressources directement, sans utiliser CloudFormation. Pour cette raison, assurez-vous que vos informations d'identification sont identiques AWS compte des piles sur lesquelles vous effectuez des déploiements hotswap et sur lesquelles elles disposent des autorisations IAM nécessaires pour mettre à jour les ressources.Le hotswapping est actuellement pris en charge pour les modifications suivantes :
-
Ressources de code (y compris les images Docker et le code en ligne), modifications de balises et modifications de configuration (seules les variables de description et d'environnement sont prises en charge) des fonctions Lambda.
-
Versions Lambda et modifications d'alias.
-
Changements de définition de AWS Step Functions indique les machines.
-
Modifications des actifs de conteneurs des services Amazon ECS.
-
Modifications apportées aux actifs du site Web lors des déploiements de compartiments Amazon S3.
-
Changements à la source et à l'environnement de AWS CodeBuild projets.
-
Modifications du modèle de mappage VTL pour AWS AppSync résolveurs et fonctions.
-
Changements de schéma pour AWS AppSync API GraphQL.
-
API REST, déploiement et modifications de méthode pour Amazon API Gateway.
-
Modifications de l'API et de l'intégration pour Amazon API Gateway V2.
-
Changements de configuration des agents Amazon Bedrock.
-
Changements de configuration d'Amazon Bedrock AgentCore Temps d'exécution
-
Changements de règles pour Amazon EventBridge.
-
Modifications de configuration des tables Amazon DynamoDB et des tables globales.
-
Changements de configuration des files d'attente Amazon SQS.
-
Alarme, alarme composite et modifications du tableau de bord pour Amazon CloudWatch.
Utilisation de certains CloudFormation les fonctions intrinsèques sont prises en charge dans le cadre d'un déploiement à chaud. Il s’agit des licences suivantes :
-
Ref -
Fn::GetAtt— Prise en charge partielle seulement, utilise une combinaison d'API Cloud Control et d'implémentations personnalisées. Consultez la liste des ressources prises en charge par API de contrôle du cloud et cette implémentationpour obtenir la liste complète des ressources prises en charge. -
Fn::ImportValue -
Fn::Join -
Fn::Select -
Fn::Split -
Fn::Sub
Cette option est également compatible avec les piles imbriquées.
Note
-
Cette option introduit délibérément une dérive dans CloudFormation piles afin d'accélérer les déploiements. Pour cette raison, utilisez-le uniquement à des fins de développement. N'utilisez pas cette option pour vos déploiements de production.
-
Les valeurs par défaut de certains paramètres peuvent être différentes du paramètre hotswap. Par exemple, le pourcentage de santé minimum d'un service Amazon ECS sera actuellement fixé à
0. Si cela se produit, examinez la source en conséquence. -
Lors de l'exécution d'un CloudFormation déploiement après les déploiements hotswap, utilisez
cdk deploy --revert-driftà déployer avec un ensemble de modifications tenant compte de la dérive et à réconcilier toute dérive introduite par le hotswapping.
Valeur par défaut :
false -
-
--hotswap-fallback <BOOLEAN> -
Cette option est similaire à
--hotswap. La différence, c'est que--hotswap-fallbackse rabattra pour exécuter un CloudFormation déploiement si une modification est détectée qui l'exige.Pour plus d’informations sur cette option, consultez
--hotswap.Valeur par défaut :
false
-
--ignore-no-stacks <BOOLEAN> -
Effectuez un déploiement même si votre application CDK ne contient aucune pile.
Cette option est utile dans le scénario suivant : Il se peut que votre application comporte plusieurs environnements, tels que
devetprod. Lorsque vous démarrez le développement, il se peut que votre application de production ne dispose d'aucune ressource, ou que les ressources soient commentées. Cela entraînera une erreur de déploiement accompagnée d'un message indiquant que l'application n'a pas de piles. Utiliser--ignore-no-stackspour contourner cette erreur.Valeur par défaut :
false
-
--import-existing-resources <BOOLEAN> -
Importer des fichiers existants, non gérés AWS CloudFormation ressources provenant de votre AWS compte.
Lorsque vous utilisez cette option, les ressources de votre AWS CloudFormation Un modèle portant le même nom personnalisé que les ressources non gérées existantes du même compte sera importé dans votre pile.
Vous pouvez utiliser cette option pour importer des ressources existantes dans des piles nouvelles ou existantes.
Vous pouvez importer des ressources existantes et déployer de nouvelles ressources dans le même
cdk deploycommande.Pour en savoir plus sur les noms personnalisés, voir Type de nom dans le AWS CloudFormation Guide de l'utilisateur.
Pour en savoir plus sur le
ImportExistingResourcesCloudFormation paramètre, voir AWS CloudFormation simplifie l'importation de ressources grâce à un nouveau paramètre pour ChangeSets. Pour plus d'informations sur l'utilisation de cette option, voir Importer des ressources existantes
dans le aws-cdk-cli GitHub référentiel.
-
--logs <BOOLEAN> -
Afficher Amazon CloudWatch connectez-vous à la sortie standard (
stdout) pour tous les événements provenant de toutes les ressources des piles sélectionnées.Cette option n'est compatible qu'avec
--watch.Valeur par défaut :
true
-
--method, -m <STRING> -
Configurez la méthode pour effectuer un déploiement.
-
change-set— Méthode par défaut. La CLI CDK crée un CloudFormation change set avec les modifications qui seront déployées, puis effectue le déploiement. -
direct— Ne créez pas d'ensemble de modifications. Appliquez plutôt la modification immédiatement. Cela est généralement plus rapide que la création d'un ensemble de modifications, mais vous perdez les détails de la progression du déploiement dans la sortie de l'interface de ligne de commande. -
prepare-change-set— Créez un ensemble de modifications mais n'effectuez pas de déploiement. Cela est utile si vous disposez d'outils externes qui inspectent l'ensemble de modifications ou si vous disposez d'un processus d'approbation pour les ensembles de modifications. Utiliserexecute-change-setpour exécuter l'ensemble de modifications préparé. -
execute-change-set— Exécute un ensemble de modifications créé précédemment avecprepare-change-set. Le nom de l'ensemble de modifications est défini par défaut surcdk-deploy-change-set, ou vous pouvez spécifier un nom personnalisé avec--change-set-name.
Valeurs valides :
change-set,direct,execute-change-set,prepare-change-setValeur par défaut :
change-set -
-
--monitoring-time-minutes <NUMBER> -
Le nombre de minutes pendant lesquelles CloudFormation continue de surveiller les alarmes de déclenchement de restauration une fois le déploiement terminé, avant de nettoyer les anciennes ressources. La valeur doit être un nombre entier compris entre 0 et 180.
Vous devez utiliser cette option conjointement avec
--rollback-trigger-alarm-arns.Valeur par défaut:
0(CloudFormation surveille les alarmes uniquement pendant le déploiement)
-
--notification-arns <ARRAY> -
Les ARN d'Amazon SNS, sujets qui CloudFormation enverra une notification pour les événements liés à la pile.
-
--outputs-file, -O <STRING> -
Le chemin vers lequel les sorties de la pile des déploiements sont écrites.
Après le déploiement, les sorties de la pile seront écrites dans le fichier de sortie spécifié au format JSON.
Vous pouvez configurer cette option dans le
cdk.jsonfichier ou à~/.cdk.jsonsur votre machine de développement locale :{ "app": "npx ts-node bin/myproject.ts", // ... "outputsFile": "outputs.json" }Si plusieurs piles sont déployées, les sorties sont écrites dans le même fichier de sortie, organisées par des clés représentant le nom de la pile.
-
--parameters <ARRAY> -
Transmettez des paramètres supplémentaires à CloudFormation pendant le déploiement.
Cette option accepte un tableau au format suivant :
STACK:KEY=VALUE.-
STACK— Nom de la pile à laquelle associer le paramètre. -
KEY— Le nom du paramètre de votre pile. -
VALUE— La valeur à transmettre lors du déploiement.
Si aucun nom de pile n'est fourni, ou si
*est fourni comme nom de pile, les paramètres seront appliqués à toutes les piles déployées. Si une pile n'utilise pas ce paramètre, le déploiement échouera.Les paramètres ne se propagent pas aux piles imbriquées. Pour transmettre des paramètres à des piles imbriquées, utilisez
NestedStackconstruire.Valeur par défaut :
{} -
-
--previous-parameters <BOOLEAN> -
Utilisez les valeurs précédentes pour les paramètres existants.
Lorsque cette option est définie sur
false, vous devez spécifier tous les paramètres pour chaque déploiement.Valeur par défaut :
true
-
--progress <STRING> -
Configurez la façon dont la CLI CDK affiche la progression du déploiement.
-
bar— Afficher les événements de déploiement de la pile sous forme de barre de progression, avec les événements relatifs à la ressource en cours de déploiement. -
events— Fournir un historique complet, y compris tous CloudFormation événements.
Vous pouvez également configurer cette option dans le
cdk.jsonfichier ou à~/.cdk.jsonsur votre machine de développement locale :{ "progress": "events" }Valeurs valides :
bar,eventsValeur par défaut :
bar -
-
--require-approval <STRING> -
Spécifiez les modifications qui nécessitent une approbation manuelle.
-
any-change— Une approbation manuelle est requise pour toute modification de la pile. -
broadening— Une approbation manuelle est requise si les modifications impliquent un élargissement des autorisations ou des règles des groupes de sécurité. -
never— L'approbation n'est pas requise.
Valeurs valides :
any-change,broadening,neverValeur par défaut :
broadening -
-
--revert-drift -
Utilisez un ensemble de modifications tenant compte de la dérive pour le déploiement. Cela crée un ensemble de modifications avec CloudFormations
REVERT_DRIFTle mode de déploiement, qui détecte les ressources qui se sont éloignées de leurs définitions de modèle en raison de modifications hors bande et les ramène à l'état souhaité défini dans votre modèle.Voir Documentation Cloudformation sur les ensembles de modifications sensibles à la dérive pour plus d'informations sur leur fonctionnement.
Valeur par défaut :
false
-
--rollback|--no-rollback,-R -
Pendant le déploiement, si une ressource ne parvient pas à être créée ou mise à jour, le déploiement reviendra au dernier état stable avant le retour de la CLI CDK. Toutes les modifications apportées jusqu'à cette date seront annulées. Les ressources créées seront supprimées et les mises à jour effectuées seront annulées.
Spécifiez
--no-rollbackpour désactiver ce comportement. Si une ressource ne parvient pas à être créée ou mise à jour, la CLI CDK conservera les modifications apportées jusqu'à ce point et les retournera. Cela laissera votre déploiement dans un état d'échec et suspendu. À partir de là, vous pouvez mettre à jour votre code et recommencer le déploiement. Cela peut être utile dans les environnements de développement où vous effectuez des itérations rapides.Si un déploiement a été effectué avec
--no-rollbackéchoue et vous décidez que vous souhaitez annuler le déploiement, vous pouvez utiliser lecdk rollbackcommande. Pour plus d'informations, voir restauration cdk.Note
Avec
--no-rollback, les déploiements qui entraînent des remplacements de ressources échoueront toujours. Vous ne pouvez utiliser cette valeur d'option que pour les déploiements qui mettent à jour ou créent de nouvelles ressources.Valeur par défaut :
--rollback
-
--rollback-trigger-alarm-arns <ARRAY> -
Les ARN du CloudWatch des alarmes qui CloudFormation les moniteurs pendant le déploiement. Si l'une de ces alarmes est transmise au
ALARMétat, CloudFormation annule le déploiement. Vous pouvez spécifier un maximum de 5 alarmes. Les alarmes sont traitées comme des alarmes métriques (AWS::CloudWatch::Alarm).Cette option peut être spécifiée plusieurs fois dans une seule commande.
Pour effacer tous les déclencheurs d'annulation précédemment configurés sur la pile, transmettez la valeur unique
none.Pour contrôler la durée CloudFormation continue de surveiller ces alarmes une fois le déploiement terminé, utilisez
--monitoring-time-minutes.
-
--toolkit-stack-name <STRING> -
Le nom de la pile CDK Toolkit existante.
Par défaut,
cdk bootstrapdéploie une pile nomméeCDKToolkitdans le champ spécifié AWS environnement. Utilisez cette option pour donner un nom différent à votre pile Bootstrap.La CLI CDK utilise cette valeur pour vérifier la version de votre pile d'amorçage.
-
--watch <BOOLEAN> -
Observez en permanence les fichiers de projet CDK et déployez automatiquement les piles spécifiées lorsque des modifications sont détectées.
Cette option implique
--hotswappar défaut.Cette option possède une commande CDK CLI équivalente. Pour plus d'informations, voir montre CDK.
Exemples
Déployez la pile nommée MyStackName
$ cdk deploy MyStackName --app='node bin/main.js'
Déployez plusieurs piles dans une application
Utiliser cdk list pour répertorier vos piles :
$ cdk list CdkHelloWorldStack CdkStack2 CdkStack3
Pour déployer toutes les piles, utilisez --all option :
$ cdk deploy --all
Pour choisir les piles à déployer, indiquez les noms des piles en tant qu'arguments :
$ cdk deploy CdkHelloWorldStack CdkStack3
Déploiement de piles de pipelines
Utiliser cdk list pour afficher les noms des piles sous forme de chemins, en indiquant leur position dans la hiérarchie des pipelines :
$ cdk list PipelineStack PiplelineStack/Prod PipelineStack/Prod/MyService
Utilisez le --all option ou joker * pour déployer toutes les piles. Si vous avez une hiérarchie de piles telle que décrite ci-dessus, --all et * ne correspondra qu'aux piles du niveau supérieur. Pour faire correspondre toutes les piles de la hiérarchie, utilisez **.
Vous pouvez combiner ces modèles. Ce qui suit permet de déployer toutes les piles du Prod étape :
$ cdk deploy PipelineStack/Prod/**
Paramètres de transmission lors du déploiement
Définissez les paramètres de votre pile CDK. L'exemple suivant permet de créer un paramètre nommé TopicNameParam pour une rubrique Amazon SNS :
new sns.Topic(this, 'TopicParameter', { topicName: new cdk.CfnParameter(this, 'TopicNameParam').value.toString() });
Pour fournir une valeur de paramètre de parameterized, exécutez la commande suivante :
$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterized"
Vous pouvez remplacer les valeurs des paramètres à l'aide du --force option. Voici un exemple de remplacement du nom de rubrique d'un déploiement précédent :
$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterName" --force
Écrire les sorties de la pile dans un fichier après le déploiement
Définissez les sorties dans votre fichier de pile CDK. Voici un exemple qui crée une sortie pour une fonction ARN :
const fn = new lambda.Function(this, "fn", { handler: "index.handler", code: lambda.Code.fromInline(`exports.handler = \${handler.toString()}`), runtime: lambda.Runtime.NODEJS_LATEST }); new cdk.CfnOutput(this, 'FunctionArn', { value: fn.functionArn, });
Déployez la pile et écrivez les sorties sur outputs.json:
$ cdk deploy --outputs-file outputs.json
Ce qui suit est un exemple de outputs.json après le déploiement :
{ "MyStack": { "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK" } }
À partir de cet exemple, la clé FunctionArn correspond à l'identifiant logique du CfnOutput instance.
Ce qui suit est un exemple de outputs.json après le déploiement lorsque plusieurs piles sont déployées :
{ "MyStack": { "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK" }, "AnotherStack": { "VPCId": "vpc-z0mg270fee16693f" } }
Modifier la méthode de déploiement
Pour accélérer le déploiement, sans recourir à des ensembles de modifications, utilisez --method='direct':
$ cdk deploy --method='direct'
Pour créer un ensemble de modifications mais ne pas le déployer, utilisez --method='prepare-change-set'. Par défaut, un ensemble de modifications nommé cdk-deploy-change-set sera créé. Si un précédent ensemble de modifications portant ce nom existe, il sera remplacé. Si aucune modification n'est détectée, un ensemble de modifications vide est tout de même créé.
Vous pouvez également donner un nom à votre ensemble de modifications. Voici un exemple :
$ cdk deploy --method='prepare-change-set' --change-set-name='MyChangeSetName'