Amazon Simple Queue Service メッセージキューを使用する
メッセージキューは、Amazon Simple Queue Service でメッセージを確実に送信するために使用する論理コンテナです。キューには、標準と先入れ先出し (FIFO) の 2 種類があります。キューおよびキュータイプ間の相違点の詳細については、「Amazon Simple Queue Service デベロッパーガイド」を参照してください。
このトピックでは、Amazon Simple Queue Service を使用して AWS SDK for Java キューの URL の作成、一覧表示、削除、および取得を行う方法について説明します。
次の例で使用されている sqsClient 変数は、次のスニペットから作成できます。
SqsClient sqsClient = SqsClient.create();
静的 create() メソッドを使用して SqsClient を作成すると、SDK はデフォルトのリージョンプロバイダーチェーンによってリージョンを設定し、デフォルトの認証情報プロバイダーチェーンによって認証情報を設定します。
キューを作成する
次のコードスニペットに示すように、SqsClient’s createQueue メソッドを使用し、キューパラメータを記述する CreateQueueRequest オブジェクトを指定します。
インポート
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
Code
CreateQueueRequest createQueueRequest = CreateQueueRequest.builder() .queueName(queueName) .build(); sqsClient.createQueue(createQueueRequest);
GitHub の「完全なサンプル
キューの一覧表示
アカウントの Amazon Simple Queue Service キューを一覧表示するには、ListQueuesRequest オブジェクトを指定して、SqsClient’s listQueues メソッドを呼び出します。
パラメータを使用しない listQueues
以下のコードに示すように、ListQueuesRequest オブジェクトにキュー名のプレフィックスを指定して、そのプレフィックスに一致するキューの結果を絞り込むことができます。
インポート
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
Code
String prefix = "que"; try { ListQueuesRequest listQueuesRequest = ListQueuesRequest.builder().queueNamePrefix(prefix).build(); ListQueuesResponse listQueuesResponse = sqsClient.listQueues(listQueuesRequest); for (String url : listQueuesResponse.queueUrls()) { System.out.println(url); } } catch (SqsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); }
GitHub の「完全なサンプル
キューの URL の取得
次のコードは、 GetQueueUrlRequest オブジェクトを指定して SqsClient’s getQueueUrl メソッドを呼び出してキューの URL を取得する方法を示しています。
インポート
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
Code
GetQueueUrlResponse getQueueUrlResponse = sqsClient.getQueueUrl(GetQueueUrlRequest.builder().queueName(queueName).build()); String queueUrl = getQueueUrlResponse.queueUrl(); return queueUrl;
GitHub の「完全なサンプル
キューの削除
DeleteQueueRequest オブジェクトへのキューの URL を指定します。次に、次のコードに示すように、 SqsClient’s deleteQueue メソッドを呼び出してキューを削除します。
インポート
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
Code
public static void deleteSQSQueue(SqsClient sqsClient, String queueName) { try { GetQueueUrlRequest getQueueRequest = GetQueueUrlRequest.builder() .queueName(queueName) .build(); String queueUrl = sqsClient.getQueueUrl(getQueueRequest).queueUrl(); DeleteQueueRequest deleteQueueRequest = DeleteQueueRequest.builder() .queueUrl(queueUrl) .build(); sqsClient.deleteQueue(deleteQueueRequest); } catch (SqsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
GitHub の「完全なサンプル
詳細情報
-
Amazon Simple Queue Service API リファレンスの CreateQueue
-
Amazon Simple Queue Service API リファレンスの GetQueueUrl
-
Amazon Simple Queue Service API リファレンスの ListQueues
-
Amazon Simple Queue Service API リファレンスの DeleteQueue