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.