

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Waiters
<a name="waiters"></a>

Waiter는 원하는 상태에 도달할 때까지 또는 리소스가 원하는 상태로 전환되지 않을 것으로 확인될 때까지 리소스를 폴링하는 데 사용되는 클라이언트 측 추상화입니다. 이는 Amazon Simple Storage Service(Amazon S3)와 같이 최종적으로 일관된 서비스 또는 Amazon EC2와 같이 비동기적으로 리소스를 생성하는 서비스로 작업할 때 일반적인 작업입니다.

리소스의 상태를 지속적으로 폴링하는 로직을 작성하는 것은 번거로우며 오류가 발생하기 쉽습니다. 웨이터의 목표는이 책임을 고객 코드에서 작업의 타이밍 측면에 대한 심층적인 지식을 AWS SDK for Kotlin갖춘 로 옮기는 것입니다 AWS .

**참고**  
다음 예제에서는 Amazon S3를 사용합니다. 그러나 개념은 하나 이상의 waiter가 정의된 모든 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` 인스턴스를 반환합니다. 결과에는 원하는 상태에 도달하기 위한 시도 횟수와 같은 추가 세부 정보도 포함됩니다.