

Esta es la guía para desarrolladores de AWS CDK v2. 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.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de la instancia del kit de herramientas de CDK
<a name="toolkit-library-configure"></a>

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
<a name="toolkit-library-configure-profile"></a>

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
<a name="toolkit-library-configure-stacks"></a>

La mayoría de las acciones del kit de herramientas de CDK requieren que especifique en qué pilas operar. La configuración ` [StackSelector](https://docs.aws.amazon.com/cdk/api/toolkit-lib/Package/toolkit-lib/Interface/StackSelector/) ` controla esta selección.

### Seleccionar todas las pilas
<a name="toolkit-library-configure-stacks-all"></a>

Ú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
<a name="toolkit-library-configure-stacks-main"></a>

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
<a name="toolkit-library-configure-stacks-single"></a>

Ú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
<a name="toolkit-library-configure-stacks-pattern"></a>

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
<a name="toolkit-library-configure-errors"></a>

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
<a name="toolkit-library-configure-errors-how"></a>

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
<a name="toolkit-library-configure-actions"></a>

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](toolkit-library-actions.md).

**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`.