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.

Pendant le 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

ID logique de la pile CDK

ID logique 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 CLI commandes CDK, consultezOptions 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 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 des builds.

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, le CDK CLI 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, le 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 application CDK, le CDK CLI mettra à jour la ressource directement via les API de service au lieu d'effectuer un déploiement. CloudFormation

Si le CDK CLI détecte des 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 appels d'API. 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 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 Docker les images et le 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 services Amazon ECS.

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

  • Changements de source et d'environnement des AWS CodeBuild projets.

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

  • Changements de schéma pour AWS AppSync GraphQL les API.

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 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 service Amazon ECS 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 application CDK 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 stacks. --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 ARN des rubriques Amazon SNS CloudFormation qui 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 format JSON.

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 le 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 apportée à 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 BOOLEAN

Pendant le déploiement, si une ressource ne parvient pas à être créée ou mise à jour, le déploiement reviendra à son dernier état stable avant le CLI retour du CDK. 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 false pour désactiver ce comportement. Si une ressource ne parvient pas à être créée ou mise à jour, le CDK CLI laissera les modifications apportées jusqu'à ce point en place et reviendra. Cela peut être utile dans les environnements de développement dans lesquels vous effectuez des itérations rapides.

Pour--rollback=false, vous pouvez utiliser --no-rollback ou-R.

Note

À quel momentfalse, 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 : true

--toolkit-stack-name STRING

Nom de la pile CDK Toolkit existante.

Cette option n'est utilisée que pour les applications CDK utilisant une synthèse héritée.

--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 --hotswap par défaut.

Cette option possède une CLI commande CDK équivalente. Pour plus d’informations, consultez 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 pile CDK. Voici un exemple qui crée un paramètre nommé TopicNameParam d'après une rubrique Amazon SNS :

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 pile CDK. 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 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 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'