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
Untuk contoh lengkap menggunakan pelayan dengan Amazon S3, lihat S3BucketOps.java