

Questa è la AWS CDK v2 Developer Guide. Il vecchio CDK v1 è entrato in manutenzione il 1° giugno 2022 e ha terminato il supporto il 1° giugno 2023.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione dell'istanza CDK Toolkit
<a name="toolkit-library-configure"></a>

Scopri come personalizzare l'istanza della libreria AWS CDK Toolkit con opzioni per la gestione dei messaggi, la selezione del AWS profilo e le strategie di selezione dello stack. Questa guida spiega le opzioni di configurazione disponibili e come implementarle in modo efficace per soddisfare i requisiti di implementazione specifici.

## Configurazione del profilo AWS
<a name="toolkit-library-configure-profile"></a>

Quando utilizzi la CDK Toolkit Library, effettua chiamate API per AWS utilizzare l'SDK. Sebbene l'autenticazione venga caricata automaticamente dal tuo ambiente, puoi specificare esplicitamente quale profilo utilizzare:

```
import { Toolkit } from '@aws-cdk/toolkit-lib';

// Create a toolkit instance with a specific AWS profile
const toolkit = new Toolkit({
  sdkConfig: { profile: "my-profile" },
});
```

## Configurazione della selezione dello stack
<a name="toolkit-library-configure-stacks"></a>

La maggior parte delle azioni di CDK Toolkit richiede di specificare su quali stack operare. La ` [StackSelector](https://docs.aws.amazon.com/cdk/api/toolkit-lib/Package/toolkit-lib/Interface/StackSelector/) ` configurazione controlla questa selezione.

### Seleziona tutte le pile
<a name="toolkit-library-configure-stacks-all"></a>

Usalo quando vuoi operare su ogni stack della tua app CDK:

```
import { StackSelectionStrategy } from '@aws-cdk/toolkit-lib';

// Select all stacks in the cloud assembly
await toolkit.deploy(cloudAssemblySource, {
  stacks: {
    strategy: StackSelectionStrategy.ALL_STACKS
  }
});
```

### Seleziona solo le pile di assemblaggio principali
<a name="toolkit-library-configure-stacks-main"></a>

Utilizzate questa opzione per selezionare solo le pile di primo livello dall'assieme principale:

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

### Selezionate una singola pila
<a name="toolkit-library-configure-stacks-single"></a>

Utilizzatelo quando l'assieme contiene esattamente una pila e desiderate affermare questa condizione. Se l'assieme include una singola pila, restituisce quella pila. Altrimenti, genera un'eccezione:

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

### Seleziona le pile per modello
<a name="toolkit-library-configure-stacks-pattern"></a>

Utilizzatelo per selezionare pile specifiche in base al modello di nome:

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

**Suggerimento**  
Utilizzalo `PATTERN_MUST_MATCH_SINGLE` per assicurarti che una pila corrisponda esattamente ai tuoi modelli, o `PATTERN_MATCH` se è accettabile che nessuna pila corrisponda. Il pattern matching supporta caratteri jolly come «\*» per abbinare più pile con nomi simili.

## Configurazione della gestione degli errori
<a name="toolkit-library-configure-errors"></a>

Il CDK Toolkit utilizza errori strutturati per aiutarvi a identificare e gestire i problemi. Ogni errore include:
+ Una **fonte** che indica l'origine dell'errore (toolkit o utente).
+ Un **tipo di errore** specifico (autenticazione, convalida, ecc.).
+ **Un messaggio descrittivo.**

### Gestione degli errori
<a name="toolkit-library-configure-errors-how"></a>

Utilizzate i metodi di supporto forniti da CDK Toolkit per rilevare e gestire tipi di errore specifici:

```
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**  
Non affidatevi ai `instanceof` controlli dei tipi di errore, poiché possono comportarsi in modo imprevisto quando si lavora con più copie dello stesso pacchetto. Usa sempre i metodi di supporto forniti come. `ToolkitError.isAuthenticationError()`

## Configurazione delle azioni del Toolkit
<a name="toolkit-library-configure-actions"></a>

Ogni azione di CDK Toolkit (deploy, synth, list, ecc.) ha le sue opzioni di configurazione specifiche. Queste azioni consentono di gestire l'intero ciclo di vita dell'infrastruttura CDK. Per informazioni dettagliate sulla configurazione delle singole azioni, consulta [Configurare le azioni programmatiche di CDK](toolkit-library-actions.md) Toolkit.

**Suggerimento**  
Nei flussi di lavoro di automazione degli edifici, prendi in considerazione la possibilità di combinare più azioni in sequenza. Ad esempio, potresti voler verificare `synth` la tua app, `list` gli stack per verificare cosa verrà distribuito e quindi `deploy` l'infrastruttura.