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

Abbiamo annunciato l'imminente versione end-of-support di AWS SDK for Java (v1). Ti consigliamo di migrare alla AWS SDK for Java v2. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio collegato.

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, 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, l'interfaccia di servizio per DynamoDB è denominata dbClient. AmazonDynamo Ogni interfaccia di servizio ha un client builder corrispondente che è possibile utilizzare per costruire un'implementazione dell'interfaccia di servizio. La classe client builder for DynamoDB è denominata DB. AmazonDynamo ClientBuilder

Ottenere un generatore client

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

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

AWS SDK for 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

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

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

Usando DefaultClient

Entrambi i costruttori 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 l'area geografica, vedere Working with Credentials and Regione AWS Selection.

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