Configuración de la instancia del kit de herramientas de CDK - AWS Cloud Development Kit (AWS CDK) v2

Esta es la segunda versión de la Guía para desarrolladores de AWS CDK. La primera versión del CDK pasó a la etapa de mantenimiento el 1.° de junio de 2022 y no cuenta con soporte desde el 1.° de junio de 2023.

Configuración de la instancia del kit de herramientas de CDK

Aprenda a personalizar su instancia de la biblioteca del kit de herramientas de AWS CDK con opciones de gestión de mensajes, selección de perfiles de AWS y estrategias de selección de pilas. Esta guía explica las opciones de configuración disponibles y cómo implementarlas de manera eficaz para cumplir con sus requisitos específicos de implementación.

Configuración de su perfil de AWS

Cuando utiliza la biblioteca del kit de herramientas de CDK, esta realiza llamadas a la API para AWS mediante el SDK. Si bien la autenticación se carga de forma automática desde su entorno, puede especificar de forma explícita qué perfil usar:

import { Toolkit } from '@aws-cdk/toolkit-lib'; // Create a toolkit instance with a specific AWS profile const toolkit = new Toolkit({ sdkConfig: { profile: "my-profile" }, });

Configurar la selección de pila

La mayoría de las acciones del kit de herramientas de CDK requieren que especifique en qué pilas operar. La configuración StackSelector controla esta selección.

Seleccionar todas las pilas

Úselo cuando desee operar en todas las pilas de su aplicación de CDK:

import { StackSelectionStrategy } from '@aws-cdk/toolkit-lib'; // Select all stacks in the cloud assembly await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.ALL_STACKS } });

Seleccione solo las pilas de ensamblaje principales

Utilice esta opción para seleccionar solo las pilas de nivel superior del conjunto principal:

// Select only top-level stacks await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.MAIN_ASSEMBLY } });

Seleccione una pila individual

Úselo cuando su ensamblaje contenga exactamente una pila y desee hacer valer esta condición. Si el ensamblaje incluye una sola pila, este devuelve esa pila. De lo contrario, inicia una excepción:

// Ensure there's exactly one stack and select it await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.ONLY_SINGLE } });

Seleccione las pilas por patrón

Use esto para seleccionar pilas específicas por patrón de nombre:

// Select stacks matching specific patterns await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.PATTERN_MUST_MATCH, patterns: ["Dev-*", "Test-Backend"], // Supports wildcards } });
sugerencia

Utilice PATTERN_MUST_MATCH_SINGLE para asegurarse de que exactamente una pila coincida con sus patrones, o PATTERN_MATCH si es aceptable, para que ninguna pila coincida. La coincidencia de patrones admite caracteres comodín como “*” para hacer coincidir varias pilas con nombres similares.

Configurar la gestión de errores

El kit de herramientas de CDK utiliza errores estructurados para ayudarlo a identificar y gestionar los problemas. Cada error incluye:

  • Una fuente que indique dónde se originó el error (kit de herramientas o usuario).

  • Un tipo de error específico (autenticación, validación, etc.).

  • Un mensaje descriptivo.

Gestión de errores

Utilice los métodos auxiliares que proporciona el kit de herramientas de CDK para detectar y gestionar tipos de errores específicos:

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); } }
importante

No confíe en las comprobaciones instanceof de los tipos de error, ya que pueden comportarse de forma inesperada cuando se trabaja con varias copias del mismo paquete. Utilice siempre los métodos de ayuda proporcionados, como por ejemplo ToolkitError.isAuthenticationError().

Configuración de las acciones del kit de herramientas

Cada acción del kit de herramientas de CDK (implementar, sintetizar, enumerar, etc.) tiene sus propias opciones de configuración específicas. Estas acciones le permiten administrar el ciclo de vida completo de su infraestructura de CDK. Para obtener información detallada sobre la configuración de acciones individuales, consulte Configurar las acciones programáticas del kit de herramientas de CDK.

sugerencia

Al crear flujos de trabajo de automatización, considere la posibilidad de combinar varias acciones en secuencia. Por ejemplo, es posible que desee usar su aplicación synth, las pilas list para verificar lo que se va a implementar y, después, la infraestructura deploy.