Amazon SQS メッセージキューの使用 - AWS SDK for Java 1.x

AWS SDK for Java (v1) の近日発表 end-of-support しました。AWS SDK for Java v2 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

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

Amazon SQS メッセージキューの使用

メッセージキューは、Amazon SQS でメッセージを確実に送信するために使用する論理コンテナです。キューには、標準先入れ先出し (FIFO) の 2 種類があります。キューおよびキュータイプ間の相違点の詳細については、「Amazon SQS デベロッパーガイド」を参照してください。

このトピックでは、AWS SDK for Java を使用して Amazon SQS キューの URL の作成、一覧表示、削除、および取得を行う方法について説明します。

キューの作成

AmazonSQS クライアントの createQueue メソッドを使用し、キューのパラメータを記述する CreateQueueRequest オブジェクトを渡します。

インポート

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.CreateQueueRequest;

Code

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); CreateQueueRequest create_request = new CreateQueueRequest(QUEUE_NAME) .addAttributesEntry("DelaySeconds", "60") .addAttributesEntry("MessageRetentionPeriod", "86400"); try { sqs.createQueue(create_request); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } }

キュー名だけを必要とする簡略化された形式の createQueue を使用して、標準キューを作成できます。

sqs.createQueue("MyQueue" + new Date().getTime());

GitHub で完全な例をご覧ください。

キューの一覧表示

アカウントの Amazon SQS キューを一覧表示するには、AmazonSQS クライアントの listQueues メソッドを呼び出します。

インポート

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.ListQueuesResult;

Code

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); ListQueuesResult lq_result = sqs.listQueues(); System.out.println("Your SQS Queue URLs:"); for (String url : lq_result.getQueueUrls()) { System.out.println(url); }

パラメータなしで listQueues オーバーロードを使用すると、すべてのキューが返されます。返された結果は、ListQueuesRequest オブジェクトに渡すことでフィルタできます。

インポート

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.ListQueuesRequest;

Code

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); String name_prefix = "Queue"; lq_result = sqs.listQueues(new ListQueuesRequest(name_prefix)); System.out.println("Queue URLs with prefix: " + name_prefix); for (String url : lq_result.getQueueUrls()) { System.out.println(url); }

GitHub で完全な例をご覧ください。

キューの URL の取得

AmazonSQS クライアントの getQueueUrl メソッドを呼び出します。

インポート

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;

Code

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); String queue_url = sqs.getQueueUrl(QUEUE_NAME).getQueueUrl();

GitHub で完全な例をご覧ください。

キューの削除

キューの URL を AmazonSQS クライアントの deleteQueue メソッドに渡します。

インポート

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;

Code

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); sqs.deleteQueue(queue_url);

GitHub で完全な例をご覧ください。

詳細