View a markdown version of this page

Creazione di client del servizio - AWS SDK per Java 1.x

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

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

Ottenere un generatore client

Per ottenere un'istanza del client builder, utilizzate il metodo static factorystandard, 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'builderoggetto 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 e e un RequestMetricCollector elenco personalizzato di 2. RequestHandler

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

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

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

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

Usando DefaultClient

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 Utilizzo delle credenziali e della Regione AWS selezione.

Per creare un client di servizio predefinito

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();

Ciclo di vita del client

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 chiamatashutdown, tutte le risorse del client vengono rilasciate e il client è inutilizzabile.

Per chiudere un client

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