

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ウェーター
<a name="waiters"></a>

ウェイターは、クライアント側の抽象化で、リソースが目的の状態に達するまで、またはそのリソースが目的の状態に入らないと判断されるまで、リソースをポーリングします。これは、Amazon Simple Storage Service (Amazon S3) などの結果整合性のあるサービスや、Amazon EC2 などのリソースを非同期的に作成するサービスを使用する場合の一般的なタスクです。

リソースのステータスを定期的にポーリングするロジックを自分で記述するのは、手間がかかりエラーの原因にもなります。ウェーターの目標は、この責任を顧客コードから に移行することです。この には AWS SDK for Kotlin、 AWS オペレーションのタイミングの側面に関する深い知識があります。

**注記**  
次の例ではAmazon S3を使用しています。ただし、1 つ以上のウェイターが定義されている AWS のサービス については、概念は同じです。すべての拡張機能は`aws.sdk.kotlin.services.<service>.waiters`パッケージで定義されます ( など`aws.sdk.kotlin.services.dynamodb.waiters`)。また、標準の命名規則 () に従います`waitUntil<Condition>`。

次のコード例は、ポーリングロジックの記述を回避できるウェーター関数の使用を示しています。

**インポート**

```
import aws.sdk.kotlin.services.s3.S3Client
import aws.sdk.kotlin.services.s3.waiters.waitUntilBucketExists
```

**コード**

```
val s3 = S3Client.fromEnvironment()

// This initiates creating an S3 bucket and potentially returns before the bucket exists.
s3.createBucket { bucket = "amzn-s3-demo-bucket" }

// When this function returns, the bucket either exists or an exception
// is thrown.
s3.waitUntilBucketExists { bucket = "amzn-s3-demo-bucket" }

// The bucket now exists.
```

**注記**  
各待機メソッドは、目的の条件に達することに対応する最終レスポンスで取得するために使用できる`Outcome`インスタンスを返します。結果には、目的の状態に到達しようとした回数などの追加の詳細も含まれます。