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émentationpour 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 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 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 lacdk 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éeCDKToolkit
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'--all
option 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'--all
option 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'--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 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.json
aprè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'CfnOutput
instance.
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'