

La AWS SDK per Java 1.x è stata raggiunta end-of-support il 31 dicembre 2025. Ti consigliamo di eseguire la migrazione a per continuare [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html)a ricevere nuove funzionalità, miglioramenti della disponibilità e aggiornamenti di sicurezza.

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à.

# Creazione di client del servizio
<a name="creating-clients"></a>

Per effettuare richieste a Amazon Web Services, devi prima creare un oggetto client di servizio. Il metodo consigliato è utilizzare il service client builder.

Ciascuno Servizio AWS ha un'interfaccia di servizio con metodi per ogni azione nell'API del servizio. Ad esempio, viene denominata l'interfaccia di servizio per DynamoDB. [AmazonDynamoDBClient](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/AmazonDynamoDBClient.html) Ogni interfaccia di servizio dispone di un client builder corrispondente che è possibile utilizzare per creare un'implementazione dell'interfaccia di servizio. [La classe client builder for DynamoDB è denominata Builder. AmazonDynamo DBClient](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/dynamodbv2/AmazonDynamoDBClientBuilder.html)

## Ottenere un generatore client
<a name="obtaining-a-client-builder"></a>

Per ottenere un'istanza del client builder, utilizzate il metodo static factory`standard`, come illustrato nell'esempio seguente.

```
AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard();
```

Una volta che hai un builder, puoi personalizzare le proprietà del client utilizzando molti setter fluenti nell'API del builder. Ad esempio, puoi impostare un'area personalizzata e un provider di credenziali personalizzate, come segue.

```
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard()
                        .withRegion(Regions.US_WEST_2)
                        .withCredentials(new ProfileCredentialsProvider("myProfile"))
                        .build();
```

**Nota**  
I `withXXX` metodi fluent restituiscono l'`builder`oggetto in modo da poter concatenare le chiamate ai metodi per comodità e per rendere il codice più leggibile. Dopo aver configurato le proprietà desiderate, puoi chiamare il metodo `build` per creare il client. Una volta creato, un client è immutabile e qualsiasi chiamata a `setRegion` o avrà esito negativo. `setEndpoint`

Un builder può creare più client con la stessa configurazione. Quando scrivi la tua applicazione, tieni presente che il builder è mutabile e non thread-safe.

Il codice seguente utilizza il builder come factory per le istanze dei client.

```
public class DynamoDBClientFactory {
    private final AmazonDynamoDBClientBuilder builder =
        AmazonDynamoDBClientBuilder.standard()
            .withRegion(Regions.US_WEST_2)
            .withCredentials(new ProfileCredentialsProvider("myProfile"));

    public AmazonDynamoDB createClient() {
        return builder.build();
    }
}
```

[Il builder espone anche i setter fluenti per [ClientConfiguration](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ClientConfiguration.html)e e un elenco personalizzato di [RequestMetricCollector](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/metrics/RequestMetricCollector.html)2. RequestHandler](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/handlers/RequestHandler2.html)

Di seguito è riportato un esempio completo che sovrascrive tutte le proprietà configurabili.

```
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard()
        .withRegion(Regions.US_WEST_2)
        .withCredentials(new ProfileCredentialsProvider("myProfile"))
        .withClientConfiguration(new ClientConfiguration().withRequestTimeout(5000))
        .withMetricsCollector(new MyCustomMetricsCollector())
        .withRequestHandlers(new MyCustomRequestHandler(), new MyOtherCustomRequestHandler)
        .build();
```

## Creazione di client asincroni
<a name="creating-async-clients"></a>

 AWS SDK per Java Dispone di client asincroni (o asincroni) per ogni servizio (tranne Amazon S3) e un generatore di client asincroni corrispondente per ogni servizio.

### Per creare un client DynamoDB asincrono con il valore predefinito ExecutorService
<a name="w3aab9c13b9b5"></a>

```
AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard()
        .withRegion(Regions.US_WEST_2)
        .withCredentials(new ProfileCredentialsProvider("myProfile"))
        .build();
```

Oltre alle opzioni di configurazione supportate dal generatore di client sincroni (o sincronizzati), il client asincrono consente di impostare una configurazione personalizzata [ExecutorFactory](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/client/builder/ExecutorFactory.html)per modificare le impostazioni utilizzate dal client asincrono. `ExecutorService` `ExecutorFactory`è un'interfaccia funzionale, quindi interagisce con le espressioni lambda e i riferimenti ai metodi di Java 8.

### Per creare un client asincrono con un executor personalizzato
<a name="w3aab9c13b9b9"></a>

```
AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard()
            .withExecutorFactory(() -> Executors.newFixedThreadPool(10))
            .build();
```

## Usando DefaultClient
<a name="using-defaultclient"></a>

Sia i costruttori di client di sincronizzazione che quelli asincroni hanno un altro metodo di fabbrica denominato. `defaultClient` Questo metodo crea un client di servizio con la configurazione predefinita, utilizzando la catena di provider predefinita per caricare le credenziali e il. Regione AWS Se non è possibile determinare le credenziali o la regione dall'ambiente di esecuzione dell'applicazione, la chiamata a `defaultClient` non riesce. Per ulteriori informazioni su come vengono [AWS determinate le credenziali e l'area geografica, vedere Working with](credentials.md) Credentials and [Regione AWS Selection](java-dg-region-selection.md).

### Per creare un client di servizio predefinito
<a name="w3aab9c13c11b5"></a>

```
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();
```

## Ciclo di vita del client
<a name="client-lifecycle"></a>

I client di servizio nell'SDK sono thread-safe e, per ottenere prestazioni ottimali, dovresti trattarli come oggetti di lunga durata. Ogni client dispone di una propria risorsa di pool di connessioni. Chiudi esplicitamente i client quando non sono più necessari per evitare perdite di risorse.

Per chiudere in modo esplicito un client, chiamate il metodo. `shutdown` Dopo la chiamata`shutdown`, tutte le risorse del client vengono rilasciate e il client è inutilizzabile.

### Per chiudere un client
<a name="w3aab9c13c13b7"></a>

```
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();
ddb.shutdown();
// Client is now unusable
```