Trabalhar com filas de mensagens do Amazon Simple Queue Service - AWS SDK for Java 2.x

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Trabalhar com filas de mensagens do Amazon Simple Queue Service

Uma fila de mensagens é o contêiner lógico usado para enviar mensagens de maneira confiável no Amazon Simple Queue Service. Existem dois tipos de filas: padrão e First-In, First-Out (FIFO – Primeiro a entrar, primeiro a sair). Para saber mais sobre as filas e as diferenças entre esses tipos, consulte o Guia do desenvolvedor do Amazon Simple Queue Service.

Este tópico descreve como criar, listar, excluir e obter o URL de uma fila do Amazon Simple Queue Service usando o AWS SDK for Java.

A variável sqsClient usada nos exemplos a seguir pode ser criada a partir do trecho de código a seguir.

SqsClient sqsClient = SqsClient.create();

Quando você cria um SqsClient usando o create() método estático, o SDK configura a região usando a cadeia de provedores da região padrão e as credenciais usando a cadeia de provedores de credenciais padrão.

Criar uma fila

Use o SqsClient’s createQueue método e forneça um CreateQueueRequest objeto que descreva os parâmetros da fila, conforme mostrado no trecho de código a seguir.

Importações

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Código

CreateQueueRequest createQueueRequest = CreateQueueRequest.builder() .queueName(queueName) .build(); sqsClient.createQueue(createQueueRequest);

Veja a amostra completa em GitHub.

Listar filas

Para listar as Amazon Simple Queue Service filas da sua conta, chame o SqsClient’s listQueues método com um ListQueuesRequest objeto.

Quando você usa a forma do listQueuesmétodo que não usa parâmetros, o serviço retorna todas as filas — até 1.000 filas.

Você pode fornecer um prefixo de nome de fila ao ListQueuesRequest objeto para limitar os resultados às filas que correspondam a esse prefixo, conforme mostrado no código a seguir.

Importações

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Código

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); }

Veja a amostra completa em GitHub.

Obter o URL de uma fila

O código a seguir mostra como obter o URL de uma fila chamando o SqsClient’s getQueueUrl método com um GetQueueUrlRequest objeto.

Importações

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Código

GetQueueUrlResponse getQueueUrlResponse = sqsClient.getQueueUrl(GetQueueUrlRequest.builder().queueName(queueName).build()); String queueUrl = getQueueUrlResponse.queueUrl(); return queueUrl;

Veja a amostra completa em GitHub.

Excluir uma fila

Forneça o URL da fila para o DeleteQueueRequest objeto. Em seguida, chame o SqsClient’s deleteQueue método para excluir uma fila, conforme mostrado no código a seguir.

Importações

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Código

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); } }

Veja a amostra completa em GitHub.

Mais informações

  • CreateQueuena Referência da Amazon Simple Queue Service API

  • GetQueueUrlna Referência da Amazon Simple Queue Service API

  • ListQueuesna Referência da Amazon Simple Queue Service API

  • DeleteQueuena Referência da Amazon Simple Queue Service API