cdk deploy - 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.

cdk deploy

Déployez une ou plusieurs AWS CDK piles dans votre AWS environnement.

Au cours du déploiement, le CDK CLI produira des indicateurs de progression, similaires à ceux qui peuvent être observés depuis la AWS CloudFormation console.

Si l' AWS 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.

Utilisation

$ cdk deploy <arguments> <options>

Arguments

CDKID de pile

L'ID de construction de la CDK pile provenant de votre application à déployer.

Type : chaîne

Obligatoire : non

Options

Pour une liste des options globales qui fonctionnent avec tous CDK CLI commandes, voirOptions globales.

--all BOOLEAN

Déployez toutes les piles dans votre CDK application.

Valeur par défaut : false

--asset-parallelism BOOLEAN

Spécifiez s'il faut créer et publier des actifs 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 Docker construit.

Valeur par défaut : true

--build-exclude, -E ARRAY

Ne reconstruisez pas l'actif avec l'ID donné.

Cette option peut être spécifiée plusieurs fois en une seule commande.

Valeur par défaut : []

--change-set-name STRING

Nom du jeu de AWS CloudFormation 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 piles. Utilisez cette option pour accélérer les déploiements. Vous devez tout de même tenir compte AWS CloudFormation de toute autre limite Compte AWS de taux.

Entrez un nombre 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.

--force, -f BOOLEAN

Lorsque vous déployez pour mettre à jour une pile existante, CDK CLI comparera 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, CDK CLI ignorera le déploiement.

Pour contourner 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 relatives à la cdk deploy commande.

--hotswap BOOLEAN

Déploiements Hotswap pour un développement plus rapide. Cette option tente d'effectuer un déploiement à chaud plus rapide si possible. Par exemple, si vous modifiez le code d'une fonction Lambda dans votre CDK application, CDK CLI mettra à jour la ressource directement via le service APIs au lieu d'effectuer un CloudFormation déploiement.

Si le CDK CLI détecte les modifications qui ne prennent pas en charge le hotswapping, ces modifications seront ignorées et un message s'affichera. Si vous préférez effectuer un CloudFormation déploiement complet comme solution de rechange, utilisez --hotswap-fallback plutôt.

Le CDK CLI utilise vos AWS informations d'identification actuelles pour effectuer les API appels. Il n'assume pas les rôles de votre stack bootstrap, même si l'indicateur de @aws-cdk/core:newStyleStackSynthesis fonctionnalité est défini sur. true Ces rôles ne disposent pas des autorisations nécessaires pour mettre à jour les AWS ressources directement, sans les utiliser CloudFormation. Pour cette raison, assurez-vous que vos informations d'identification correspondent aux piles sur lesquelles vous effectuez Compte AWS des déploiements hotswap et qu'elles disposent des IAM autorisations nécessaires pour mettre à jour les ressources.

Le hotswapping est actuellement pris en charge pour les modifications suivantes :

  • Ressources du code (y compris Docker images et code intégré), 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 des machines à AWS Step Functions états.

  • Modifications des actifs des conteneurs des ECS services Amazon.

  • Modifications apportées aux actifs du site Web lors des déploiements de compartiments Amazon S3.

  • Changements liés à la source et à l'environnement AWS CodeBuild des projets.

  • VTLmodifications du modèle de mappage pour les AWS AppSync résolveurs et les fonctions.

  • Changements de schéma pour AWS AppSync GraphQL APIs.

L'utilisation de certaines fonctions CloudFormation intrinsèques est prise en charge dans le cadre d'un déploiement par échange à chaud. Il s'agit des licences suivantes :

  • Ref

  • Fn::GetAtt— Pris en charge uniquement partiellement. Reportez-vous à cette implémentation pour connaître les ressources et les attributs pris 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 les CloudFormation piles afin d'accélérer les déploiements. Pour cette raison, ne l'utilisez qu'à des fins de développement. N'utilisez pas cette option pour vos déploiements de production.

  • Cette option est considérée comme expérimentale et pourrait présenter des modifications majeures à l'avenir.

  • Les valeurs par défaut de certains paramètres peuvent être différentes selon le paramètre hotswap. Par exemple, le pourcentage de santé minimum d'un ECS service Amazon sera actuellement fixé à0. Vérifiez la source en conséquence si cela se produit.

Valeur par défaut : false

--hotswap-fallback BOOLEAN

Cette option est similaire à--hotswap. La différence étant que --hotswap-fallback cela revient à effectuer un CloudFormation déploiement complet si une modification le nécessitant est détectée.

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 CDK application ne contient aucune pile.

Cette option est utile dans le scénario suivant : vous pouvez avoir une application avec plusieurs environnements, tels que dev etprod. 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 provoquera une erreur de déploiement avec un message indiquant que l'application n'a pas de piles. --ignore-no-stacksÀ utiliser pour contourner cette erreur.

Valeur par défaut : false

--logs BOOLEAN

Afficher le CloudWatch journal Amazon dans la sortie standard (stdout) pour tous les événements provenant de toutes les ressources des piles sélectionnées.

Cette option est uniquement compatible 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. Le CDK CLI crée un ensemble de CloudFormation modifications 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 informations de progression.

  • 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.

Valeurs valides : change-set, direct, prepare-change-set

Valeur par défaut : change-set

--notification-arns ARRAY

Les ARNs SNS sujets Amazon qui CloudFormation signaleront les événements liés au stack.

--outputs-file, -O STRING

Le chemin vers lequel sont écrites les sorties de la pile des déploiements.

Après le déploiement, les sorties de la pile seront écrites dans le fichier de sortie spécifié au JSON format.

Vous pouvez configurer cette option dans le cdk.json fichier du projet ou ~/.cdk.json sur 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é par des clés représentant le nom de la pile.

--parameters ARRAY

Transmettez des paramètres supplémentaires au CloudFormation cours du déploiement.

Cette option accepte un tableau au format suivant :STACK:KEY=VALUE.

  • STACK— Le 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 s'il * est fourni comme nom de pile, les paramètres seront appliqués à toutes les piles déployées. Si une pile n'utilise pas le paramètre, le déploiement échouera.

Les paramètres ne se propagent pas aux piles imbriquées. Pour transmettre des paramètres aux piles imbriquées, utilisez la NestedStack construction.

Valeur par défaut : {}

--previous-parameters BOOLEAN

Utilisez les valeurs précédentes pour les paramètres existants.

Lorsque cette option est définie surfalse, vous devez spécifier tous les paramètres pour chaque déploiement.

Valeur par défaut : true

--progress STRING

Configurez la façon dont CDK CLI affiche la progression du déploiement.

  • bar— Affichez 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— Fournissez un historique complet, y compris tous les CloudFormation événements.

Vous pouvez également configurer cette option dans le cdk.json fichier du projet ou ~/.cdk.json sur votre machine de développement locale :

{ "progress": "events" }

Valeurs valides : bar, events

Valeur par défaut : bar

--require-approval STRING

Spécifiez les modifications sensibles à la sécurité qui nécessitent une approbation manuelle.

  • any-change — Approbation manuelle 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 du groupe de sécurité.

  • never— Aucune approbation n'est requise.

Valeurs valides : any-change, broadening, never

Valeur par défaut : broadening

--rollback | --no-rollback, -R

Au cours du déploiement, si une ressource ne parvient pas à être créée ou mise à jour, le déploiement reviendra à l'état stable le plus récent avant CDK CLI retours. Toutes les modifications effectuées jusqu'à ce point seront annulées. Les ressources créées seront supprimées et les mises à jour effectuées seront annulées.

Spécifiez --no-rollback pour désactiver ce comportement. Si une ressource ne parvient pas à être créée ou mise à jour, CDK CLI laissera les modifications apportées jusqu'à ce point en place et y retournera. Cela laissera votre déploiement dans un état d'échec et de pause. À partir de là, vous pouvez mettre à jour votre code et réessayer le déploiement. Cela peut être utile dans les environnements de développement dans lesquels vous effectuez des itérations rapides.

Si un déploiement effectué avec --no-rollback échoue et que vous décidez d'annuler le déploiement, vous pouvez utiliser la cdk rollback commande. Pour de plus amples informations, veuillez consulter cdk rollback.

Note

Avec--no-rollback, les déploiements qui entraînent le remplacement des 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

--toolkit-stack-name STRING

Nom de la pile CDK Toolkit existante.

Par défaut, cdk bootstrap déploie une pile nommée CDKToolkit dans l' AWS environnement spécifié. Utilisez cette option pour attribuer un nom différent à votre stack bootstrap.

Le CDK CLI utilise cette valeur pour vérifier la version de votre stack bootstrap.

--watch BOOLEAN

Observez en permanence les fichiers de CDK projet et déployez automatiquement les piles spécifiées lorsque des modifications sont détectées.

Cette option implique --hotswap par défaut.

Cette option a un équivalent CDK CLI commande. Pour de plus amples informations, veuillez consulter cdk watch.

Exemples

Déployez la pile nommée MyStackName

$ cdk deploy MyStackName --app='node bin/main.js'

Déployer plusieurs piles dans une application

cdk listÀ utiliser pour répertorier vos piles :

$ cdk list CdkHelloWorldStack CdkStack2 CdkStack3

Pour déployer toutes les piles, utilisez l'--alloption suivante :

$ cdk deploy --all

Pour choisir les piles à déployer, fournissez les noms des piles en tant qu'arguments :

$ cdk deploy CdkHelloWorldStack CdkStack3

Déployez des piles de pipelines

cdk listÀ utiliser pour afficher les noms des piles sous forme de chemins, en indiquant leur position dans la hiérarchie du pipeline :

$ cdk list PipelineStack PiplelineStack/Prod PipelineStack/Prod/MyService

Utilisez l'--alloption ou le joker * pour déployer toutes les piles. Si vous avez une hiérarchie de piles telle que décrite ci-dessus, --all elle 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 déploie toutes les piles de la Prod phase :

$ cdk deploy PipelineStack/Prod/**

Transmettre les paramètres lors du déploiement

Définissez les paramètres de votre CDK pile. Voici un exemple qui crée un paramètre nommé TopicNameParam pour une SNS rubrique Amazon :

new sns.Topic(this, 'TopicParameter', { topicName: new cdk.CfnParameter(this, 'TopicNameParam').value.toString() });

Pour fournir une valeur de paramètre deparameterized, exécutez ce qui suit :

$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterized"

Vous pouvez remplacer les valeurs des paramètres à l'aide de l'--forceoption. 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 CDK pile. Voici un exemple de création d'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 pour outputs.json :

$ cdk deploy --outputs-file outputs.json

Voici un exemple d'outputs.jsonaprès-déploiement :

{ "MyStack": { "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK" } }

Dans cet exemple, la clé FunctionArn correspond à l'ID logique de l'CfnOutputinstance.

Voici un exemple de déploiement outputs.json après le déploiement de plusieurs piles :

{ "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 un déploiement plus rapide, sans utiliser d'ensembles de modifications, utilisez --method='direct' :

$ cdk deploy --method='direct'

Pour créer un ensemble de modifications sans le déployer, utilisez--method='prepare-change-set'. Par défaut, un ensemble de modifications nommé cdk-deploy-change-set sera créé. Si un ensemble de modifications précédent 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'