View a markdown version of this page

Menggunakan pelayan di AWS SDK for Java 2.x - AWS SDK for Java 2.x

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan pelayan di AWS SDK for Java 2.x

Utilitas waiters dari AWS SDK untuk Java 2.x memungkinkan Anda untuk memvalidasi bahwa AWS sumber daya berada dalam keadaan tertentu sebelum melakukan operasi pada sumber daya tersebut.

Pel ayan adalah abstraksi yang digunakan untuk mensurvei AWS sumber daya, seperti DynamoDB tabel atau Amazon S3 bucket, sampai keadaan yang diinginkan tercapai (atau sampai penentuan dibuat bahwa sumber daya tidak akan pernah mencapai keadaan yang diinginkan). Alih-alih menulis logika untuk terus men AWS survei sumber daya Anda, yang bisa rumit dan rawan kesalahan, Anda dapat menggunakan pelayan untuk mensurvei sumber daya dan membuat kode Anda terus berjalan setelah sumber daya siap.

Prasyarat

Sebelum Anda dapat menggunakan pelayan dalam proyek dengan AWS SDK untuk Java, Anda harus menyelesaikan langkah-langkah di Men yiapkan AWS SDK untuk Java 2. x.

Anda juga harus mengonfigurasi dependensi proyek Anda (misalnya, di build.gradle file pom.xml atau Anda) untuk menggunakan versi 2.15.0 atau yang lebih baru dari AWS SDK untuk Java.

Contoh:

<project> <dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.27.21</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>

Menggunakan pelayan

Untuk membuat instance objek pelayan, pertama buat klien layanan. Tetapkan waiter() metode klien layanan sebagai nilai objek pelayan. Setelah instance pelayan ada, atur opsi responsnya untuk mengeksekusi kode yang sesuai.

Pemrograman sinkron

Cuplikan kode berikut menunjukkan cara menunggu DynamoDB tabel ada dan berada dalam keadaan AKTIF.

DynamoDbClient dynamo = DynamoDbClient.create(); DynamoDbWaiter waiter = dynamo.waiter(); WaiterResponse<DescribeTableResponse> waiterResponse = waiter.waitUntilTableExists(r -> r.tableName("myTable")); // print out the matched response with a tableStatus of ACTIVE waiterResponse.matched().response().ifPresent(System.out::println);

Pemrograman asinkron

Cuplikan kode berikut menunjukkan cara menunggu DynamoDB tabel tidak ada lagi.

DynamoDbAsyncClient asyncDynamo = DynamoDbAsyncClient.create(); DynamoDbAsyncWaiter asyncWaiter = asyncDynamo.waiter(); CompletableFuture<WaiterResponse<DescribeTableResponse>> waiterResponse = asyncWaiter.waitUntilTableNotExists(r -> r.tableName("myTable")); waiterResponse.whenComplete((r, t) -> { if (t == null) { // print out the matched ResourceNotFoundException r.matched().exception().ifPresent(System.out::println); } }).join();

Konfigurasikan pelayan

Anda dapat menyesuaikan konfigurasi untuk pelayan dengan menggunakan overrideConfiguration() pada pembangunnya. Untuk beberapa operasi, Anda dapat menerapkan konfigurasi khusus saat Anda membuat permintaan.

Konfigurasikan pelayan

Cuplikan kode berikut menunjukkan cara mengganti konfigurasi pada pelayan.

// sync DynamoDbWaiter waiter = DynamoDbWaiter.builder() .overrideConfiguration(b -> b.maxAttempts(10)) .client(dynamoDbClient) .build(); // async DynamoDbAsyncWaiter asyncWaiter = DynamoDbAsyncWaiter.builder() .client(dynamoDbAsyncClient) .overrideConfiguration(o -> o.backoffStrategy( FixedDelayBackoffStrategy.create(Duration.ofSeconds(2)))) .scheduledExecutorService(Executors.newScheduledThreadPool(3)) .build();

Mengganti konfigurasi untuk permintaan tertentu

Cuplikan kode berikut menunjukkan cara mengganti konfigurasi untuk pelayan berdasarkan per-permintaan. Perhatikan bahwa hanya beberapa operasi yang memiliki konfigurasi yang dapat disesuaikan.

waiter.waitUntilTableNotExists(b -> b.tableName("myTable"), o -> o.maxAttempts(10)); asyncWaiter.waitUntilTableExists(b -> b.tableName("myTable"), o -> o.waitTimeout(Duration.ofMinutes(1)));

Contoh kode

Untuk contoh lengkap menggunakan pelayan dengan DynamoDB, lihat CreateTable.java di Repositori Contoh AWS Kode.

Untuk contoh lengkap menggunakan pelayan dengan Amazon S3, lihat S3BucketOps.java di Repositori Contoh AWS Kode.