Work with Amazon SQS message queues
A message queue is the logical container used for sending messages reliably in Amazon SQS. There are two types of queues: standard and first-in, first-out (FIFO). To learn more about queues and the differences between these types, see the Amazon SQS Developer Guide.
This topic describes how to create, list, delete, and get the URL of an Amazon SQS queue by using the AWS SDK for Java.
Create a queue
Use the SqsClient’s createQueue
method, and provide a
CreateQueueRequest
Imports
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*;
Code
CreateQueueRequest createQueueRequest = CreateQueueRequest.builder() .queueName(queueName) .build(); sqsClient.createQueue(createQueueRequest);
See the complete sample
List queues
To list the Amazon SQS queues for your account, call the SqsClient’s listQueues
method with a ListQueuesRequest
Using the listQueues
overload without any parameters returns all queues, up to
1,000 queues. You can supply a queue name prefix to the ListQueuesRequest
object to limit
the results to queues that match that prefix.
Imports
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*;
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); }
See the complete sample
Get the URL for a queue
Call the SqsClient’s getQueueUrl
method.
with a GetQueueUrlRequest
Imports
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*;
Code
GetQueueUrlResponse getQueueUrlResponse = sqsClient.getQueueUrl(GetQueueUrlRequest.builder().queueName(queueName).build()); String queueUrl = getQueueUrlResponse.queueUrl(); return queueUrl; } catch (SqsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return "";
See the complete sample
Delete a queue
Provide the queue’s URL to the
DeleteMessageRequestdeleteQueue
method.
Imports
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*;
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); }
See the complete sample
More information
-
How Amazon SQS Queues Work in the Amazon SQS Developer Guide
-
CreateQueue in the Amazon SQS API Reference
-
GetQueueUrl in the Amazon SQS API Reference
-
ListQueues in the Amazon SQS API Reference
-
DeleteQueues in the Amazon SQS API Reference