

La versione AWS SDK per Java 1.x ha raggiunto la fine del supporto il 31 dicembre 2025. Ti consigliamo di eseguire la migrazione alla versione 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, è necessario innanzitutto creare un oggetto client di servizio. Il metodo consigliato è utilizzare il service client builder.

Ognuno Servizio AWS ha un'interfaccia di servizio con metodi per ogni azione nell'API del servizio. Ad esempio, l'interfaccia di servizio per DynamoDB è denominata. [ AmazonDynamoDBClient ](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/AmazonDynamoDBClient.html) Ogni interfaccia di servizio ha un generatore di client corrispondente che puoi utilizzare per creare un'implementazione dell'interfaccia di servizio. La classe del client builder per DynamoDB è denominata [ AmazonDynamoDBClientBuilder](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 mostrato 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 generatore. Ad esempio, puoi impostare una regione personalizzata e un provider di credenziali personalizzato, 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 al metodo per comodità e per ottenere un 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 fabbrica per le istanze 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 [ RequestMetricCollector ](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/metrics/RequestMetricCollector.html) elenco personalizzato di 2. [ RequestHandler ](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/handlers/RequestHandler2.html)

Quello che segue è 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 (ad eccezione di) e di un corrispondente generatore di client asincrono per Amazon S3 ogni servizio.

### Per creare un client DynamoDB asincrono con l'impostazione predefinita 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 sincrono (o di sincronizzazione), il client asincrono consente di impostare una modifica personalizzata [ ExecutorFactory ](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/client/builder/ExecutorFactory.html) utilizzata 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 esecutore personalizzato
<a name="w3aab9c13b9b9"></a>

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

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

Entrambi i generatori di client sync e async 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 [ la regione, vedere ](java-dg-region-selection.md) Utilizzo delle credenziali e della ](credentials.md)Regione AWS selezione.

### 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, è necessario 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 esplicitamente un client, chiama 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
```