使用Amazon Simple Queue Service訊息佇列 - AWS SDK for Java 2.x

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

使用Amazon Simple Queue Service訊息佇列

訊息佇列是邏輯容器,用於在 Amazon Simple Queue Service 中可靠地傳送訊息。有兩種佇列類型:標準先進先出 (FIFO)。若要深入瞭解佇列以及這些類型之間的差異,請參閱Amazon Simple Queue Service開發人員指南

本主題說明如何使用AWS SDK for Java建立、列出、刪除和取得 Amazon Simple Queue Service 佇列的 URL。

下列範例中使用的sqsClient變數可以從下列程式碼片段建立。

SqsClient sqsClient = SqsClient.create();

當您使用靜態create()方法建立SqsClient時,SDK 會使用預設的區域提供者鏈結和使用預設認證提供者鏈結來設定 [區域]。

建立佇列

使用該SqsClient’screateQueue方法,並提供描述隊列參數的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’slistQueues方法。

當您使用不帶參數的listQueues方法形式時,服務會傳回所有佇列 — 最多 1,000 個佇列。

您可以為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’sgetQueueUrl方法來取得佇列的 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。

刪除佇列

將佇列的 URL 提供給DeleteQueueRequest物件。然後調用該SqsClient’sdeleteQueue方法刪除隊列,如下面的代碼。

匯入

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。

其他資訊

  • CreateQueue在 Amazon Simple Queue Service API 參考中

  • GetQueueUrl在 Amazon Simple Queue Service API 參考中

  • ListQueues在 Amazon Simple Queue Service API 參考中

  • DeleteQueue在 Amazon Simple Queue Service API 參考中