

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' AWS SDK per i client del servizio Rust nel codice
<a name="config-code"></a>

Quando la configurazione viene gestita direttamente nel codice, l'ambito della configurazione è limitato all'applicazione che utilizza quel codice. All'interno di tale applicazione, sono disponibili opzioni per la configurazione globale di tutti i client di servizio, la configurazione per tutti i client di un determinato Servizio AWS tipo o la configurazione per un'istanza specifica del client di servizio.

Per fare una richiesta a un Servizio AWS, devi prima creare un'istanza di un client per quel servizio. È possibile configurare impostazioni comuni per i client di servizio, ad esempio i timeout, il client HTTP e riprovare la configurazione. 

Ogni client di servizio richiede un fornitore di credenziali Regione AWS e un provider di credenziali. L'SDK utilizza questi valori per inviare le richieste alla regione corretta per le tue risorse e per firmare le richieste con le credenziali corrette. Puoi specificare questi valori a livello di codice a livello di codice o caricarli automaticamente dall'ambiente.

**Nota**  
I client di servizio possono essere costosi da costruire e in genere sono pensati per essere condivisi. Per facilitare ciò, tutte le `Client` strutture vengono implementate. `Clone`

## Configura un client dall'ambiente
<a name="configure-a-client-from-the-environment"></a>

Per creare un client con una configurazione originata dall'ambiente, usa i metodi statici della cassa: `aws-config`

```
let config = aws_config::defaults(BehaviorVersion::latest())
    .load()
    .await;

let s3 = aws_sdk_s3::Client::new(&config);
```

La creazione di un client in questo modo è utile quando viene eseguito su Amazon Elastic Compute Cloud o in qualsiasi altro contesto in cui la configurazione di un client di servizio è disponibile direttamente dall'ambiente. AWS Lambda Questo separa il codice dall'ambiente in cui è in esecuzione e semplifica la distribuzione dell'applicazione su più utenti Regioni AWS senza modificare il codice.

È possibile sovrascrivere in modo esplicito proprietà specifiche. La configurazione esplicita ha la precedenza sulla configurazione risolta dall'ambiente di esecuzione. L'esempio seguente carica la configurazione dall'ambiente, ma sostituisce esplicitamente: Regione AWS

```
let config = aws_config::defaults(BehaviorVersion::latest())
    .region("us-east-1")
    .load()
    .await;
    
let s3 = aws_sdk_s3::Client::new(&config);
```

**Nota**  
Non tutti i valori di configurazione provengono dal client al momento della creazione. Le impostazioni relative alle credenziali, come le chiavi di accesso temporanee e la configurazione di IAM Identity Center, sono accessibili dal livello del provider di credenziali quando il client viene utilizzato per effettuare una richiesta.

Il codice `BehaviorVersion::latest()` mostrato negli esempi precedenti indica la versione dell'SDK da utilizzare per le impostazioni predefinite. `BehaviorVersion::latest()`è appropriato per la maggior parte dei casi. Per informazioni dettagliate, vedi [Utilizzo delle versioni comportamentali in AWS SDK per Rust](behavior-versions.md).

## Utilizza il modello builder per le impostazioni specifiche del servizio
<a name="configure-a-client-builder"></a>

Esistono alcune opzioni che possono essere configurate solo su un tipo di client di servizio specifico. Tuttavia, molto spesso, vorrai comunque caricare la maggior parte della configurazione dall'ambiente e quindi aggiungere specificamente le opzioni aggiuntive. Il modello builder è uno schema comune all'interno delle AWS SDK per Rust casse. Per prima cosa si carica la configurazione generale utilizzando`aws_config::defaults`, quindi si utilizza il `from` metodo per caricare quella configurazione nel builder per il servizio con cui si sta lavorando. È quindi possibile impostare qualsiasi valore di configurazione univoco per quel servizio e quella chiamata`build`. Infine, il client viene creato da questa configurazione modificata. 

```
// Call a static method on aws-config that sources default config values.
let config = aws_config::defaults(BehaviorVersion::latest())
    .load()
    .await;

// Use the Builder for S3 to create service-specific config from the default config.
let s3_config = aws_sdk_s3::config::Builder::from(&config)
    .accelerate(true) // Set an S3-only configuration option
    .build();

// Create the client.
let s3 = aws_sdk_s3::Client::from_conf(s3_config);
```

Un modo per scoprire metodi aggiuntivi disponibili per un tipo specifico di client di servizio consiste nell'utilizzare la documentazione dell'API, ad esempio for. [https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/config/struct.Builder.html](https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/config/struct.Builder.html)

## Configurazione avanzata esplicita del client
<a name="configure-a-client-explicitly"></a>

Per configurare un client di servizio con valori specifici anziché caricare una configurazione dall'ambiente, è possibile specificarli nel client `Config` builder come illustrato di seguito:

```
let conf = aws_sdk_s3::Config::builder()
    .region("us-east-1")
    .endpoint_resolver(my_endpoint_resolver)
    .build();

let s3 = aws_sdk_s3::Client::from_conf(conf);
```

Quando si crea una configurazione di servizio con`aws_sdk_s3::Config::builder()`, *non viene caricata alcuna configurazione predefinita*. I valori predefiniti vengono caricati solo quando si crea una configurazione basata su. `aws_config::defaults` 

Esistono alcune opzioni che possono essere configurate solo su un tipo di client di servizio specifico. L'esempio precedente mostra un esempio di ciò utilizzando la `endpoint_resolver` funzione su un client Amazon S3.