等待程式 - 適用於 Kotlin 的 AWS SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

等待程式

等待程式是一種用戶端抽象,用於輪詢資源,直到達到所需的狀態,或直到確定資源不會進入所需的狀態為止。這是在使用最終一致服務時常見的任務,例如 Amazon Simple Storage Service (Amazon S3),或是非同步建立資源的服務,例如 Amazon EC2。

編寫邏輯以持續輪詢資源的狀態可能會很麻煩且容易出錯。等待程式的目標是將此責任移出客戶程式碼,並移至 適用於 Kotlin 的 AWS SDK,該 深入了解 AWS 操作的計時層面。

注意

下列範例使用 Amazon S3。不過,對於已定義一或多個等待程式的任何 AWS 服務 而言,這些概念都相同。所有延伸項目都會在aws.sdk.kotlin.<service>.waiters套件中定義 (例如 aws.sdk.kotlin.dynamodb.waiters)。他們也遵循標準命名慣例 (waitUntil<Condition>)。

下列程式碼範例顯示使用等待程式函數,可讓您避免寫入輪詢邏輯。

匯入

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

Code

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執行個體,可用來在對應至所需條件的最終回應取得 。結果也包含其他詳細資訊,例如嘗試達到所需狀態的次數。