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.
Configuration de votre instance du CDK Toolkit
Découvrez comment personnaliser votre instance de bibliothèque AWS CDK Toolkit avec des options de gestion des messages, de sélection de AWS profils et de stratégies de sélection de piles. Ce guide explique les options de configuration disponibles et explique comment les mettre en œuvre efficacement pour répondre à vos exigences de déploiement spécifiques.
Configuration de votre AWS profil
Lorsque vous utilisez la bibliothèque du kit d'outils CDK, elle effectue des appels d'API pour AWS utiliser le SDK. Alors que l'authentification est chargée automatiquement depuis votre environnement, vous pouvez spécifier explicitement le profil à utiliser :
import { Toolkit } from '@aws-cdk/toolkit-lib'; // Create a toolkit instance with a specific AWS profile const toolkit = new Toolkit({ sdkConfig: { profile: "my-profile" }, });
Configuration de la sélection des piles
La plupart des actions du CDK Toolkit nécessitent que vous spécifiiez les piles sur lesquelles vous souhaitez opérer. La
StackSelector
configuration contrôle cette sélection.
Sélectionnez toutes les piles
Utilisez-le lorsque vous souhaitez opérer sur chaque pile de votre application CDK :
import { StackSelectionStrategy } from '@aws-cdk/toolkit-lib'; // Select all stacks in the cloud assembly await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.ALL_STACKS } });
Sélectionnez uniquement les piles d'assemblage principales
Utilisez cette option pour sélectionner uniquement les piles de niveau supérieur de l'assemblage principal :
// Select only top-level stacks await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.MAIN_ASSEMBLY } });
Sélectionnez une seule pile
Utilisez-le lorsque votre assemblage contient exactement une pile et que vous souhaitez affirmer cette condition. Si l'assemblage inclut une seule pile, il renvoie cette pile. Dans le cas contraire, il lance une exception :
// Ensure there's exactly one stack and select it await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.ONLY_SINGLE } });
Sélectionnez les piles par motif
Utilisez-le pour sélectionner des piles spécifiques par modèle de nom :
// Select stacks matching specific patterns await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.PATTERN_MUST_MATCH, patterns: ["Dev-*", "Test-Backend"], // Supports wildcards } });
Astuce
PATTERN_MUST_MATCH_SINGLE
À utiliser pour vous assurer qu'une pile correspond exactement à vos modèles, ou PATTERN_MATCH
s'il est acceptable qu'aucune pile ne corresponde. La correspondance de modèles prend en charge les caractères génériques tels que « * » pour faire correspondre plusieurs piles portant des noms similaires.
Configuration de la gestion des erreurs
Le kit d'outils CDK utilise des erreurs structurées pour vous aider à identifier et à gérer les problèmes. Chaque erreur inclut :
-
Une source indiquant l'origine de l'erreur (boîte à outils ou utilisateur).
-
Un type d'erreur spécifique (authentification, validation, etc.)
-
Un message descriptif.
Gestion des erreurs
Utilisez les méthodes d'assistance fournies par le kit d'outils CDK pour détecter et gérer des types d'erreurs spécifiques :
import { ToolkitError } from '@aws-cdk/toolkit-lib'; try { // Attempt a CDK Toolkit operation await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.ALL_STACKS } }); } catch (error) { // Handle specific error types if (ToolkitError.isAuthenticationError(error)) { // Example: AWS credentials are missing or invalid console.error('Authentication failed. Check your AWS credentials.'); } else if (ToolkitError.isAssemblyError(error)) { // Example: Your CDK app has errors in stack definitions console.error('CDK app error:', error.message); } else if (ToolkitError.isDeploymentError(error)) { // Example: CloudFormation deployment failed console.error('Deployment failed:', error.message); } else if (ToolkitError.isToolkitError(error)) { // Handle all other Toolkit errors console.error('CDK Toolkit error:', error.message); } else { // Handle unexpected errors console.error('Unexpected error:', error); } }
Important
Ne vous fiez pas aux instanceof
vérifications pour détecter les types d'erreurs, car elles peuvent se comporter de manière inattendue lorsque vous travaillez avec plusieurs copies du même package. Utilisez toujours les méthodes d'assistance fournies, telles queToolkitError.isAuthenticationError()
.
Configuration des actions du kit d'outils
Chaque action du CDK Toolkit (déploiement, synthé, liste, etc.) possède ses propres options de configuration spécifiques. Ces actions vous permettent de gérer le cycle de vie complet de votre infrastructure CDK. Pour des informations détaillées sur la configuration des actions individuelles, voir Configurer les actions programmatiques du CDK Toolkit.
Astuce
Lorsque vous créez des flux de travail d'automatisation, pensez à combiner plusieurs actions en séquence. Par exemple, vous pouvez avoir besoin de synth
votre application, list
des piles pour vérifier ce qui sera déployé, puis de deploy
l'infrastructure.