P: O que é o Amazon SQS?

O Amazon Simple Queue Service (Amazon SQS) é um web service que disponibiliza a você acesso a filas de mensagens que armazenam mensagens esperando processamento. Com o Amazon SQS, você pode criar rapidamente aplicações de enfileiramento de mensagens executáveis em qualquer computador.

O Amazon SQS oferece uma fila hospedada confiável e altamente escalável para armazenar mensagens em trânsito entre computadores. Com o Amazon SQS, você pode movimentar dados entre componentes de aplicação diferentes e distribuídos, sem perder mensagens nem precisar que cada componente esteja sempre disponível.

O Amazon SQS pode ajudar você a criar uma aplicação distribuída com componentes separados, trabalhando em conjunto com o Amazon Elastic Compute Cloud (Amazon EC2) e os outros web services da infraestrutura da AWS.

P: O que posso fazer com o Amazon SQS?

Como o Amazon SQS é altamente escalável e você paga apenas pelo que utilizar, é possível começar aos poucos e ir expandindo sua aplicação de acordo com as necessidades da sua empresa, sem comprometer o desempenho ou a confiabilidade. O Amazon SQS elimina as preocupações a respeito de como as suas mensagens são armazenadas e gerenciadas, além de ajudá-lo a focar-se na criação de aplicações baseadas em mensagens potentes e avançadas.

Aqui estão algumas ideias:

  • Integrar o Amazon SQS a outros serviços da AWS para tornar as aplicações mais confiáveis e flexíveis.
  • Usar o Amazon SQS para criar solicitações de trabalho tendo cada mensagem como uma tarefa a ser concluída por um processo. Permitir que um ou vários computadores leiam tarefas da fila de mensagens e as processem.
  • Criar uma arquitetura de microsserviços e usar filas de mensagens para conectar seus microsserviços.
  • Manter notificações de eventos empresariais importantes em uma fila de mensagens do Amazon SQS. Cada evento pode ter uma mensagem correspondente em uma fila de mensagens. Além disso, as aplicações que precisam estar cientes do evento podem ler e processar as mensagens.

P: Como posso começar a usar o Amazon SQS?

Você pode começar a usar o Amazon SQS após realizar algumas etapas:

  1. Cadastre-se para obter uma conta da AWS.
  2. Após o cadastro, acesse o Console de Gerenciamento da AWS, selecione SQS e, na página seguinte, selecione Create New Queue.
  3. Na caixa de diálogo Create New Queue, digite um nome de fila (por exemplo, MyQueue) e clique em Create Queue.
  4. Selecione uma fila e na lista suspensa Queue Actions selecione a opção Send a Message.
  5. Na caixa de diálogo Send a Message to MyQueue, na guia Message Body, digite o texto da sua mensagem e clique em Send Message.

A mensagem será enviada e uma confirmação com os atributos da mensagem enviada será exibida. Clique em Close para finalizar.

Para obter mais informações, consulte o Amazon SQS Getting Started Guide, o Amazon SQS Developer Guide e o código de exemplo no Centro de recursos.

P: Quais são os benefícios do Amazon SQS em comparação com os sistemas de enfileiramento de mensagens domésticas ou em pacotes?

Em comparação com a criação do seu próprio software, o uso do Amazon SQS disponibiliza várias vantagens para o gerenciamento de filas de mensagens ou o uso de sistemas de enfileiramento de mensagens comerciais ou de código aberto que exigem um tempo inicial significativo para desenvolver e configurar.

Essas alternativas exigem manutenção de hardware contínua e recursos de administração de sistemas. A complexidade de configurar e gerenciar esses sistemas é agravada pela necessidade de um armazenamento redundante de mensagens que garanta que elas não serão perdidas no caso de falha do hardware.

Por outro lado, o Amazon SQS não exige sobrecarga de tarefas administrativas e necessita de pouca configuração. Além disso, o Amazon SQS funciona em grande escala, processando bilhões de mensagens por dia. É possível aumentar ou reduzir a escala vertical da quantidade de tráfego que você envia sem precisar de nenhuma configuração. O Amazon SQS também proporciona uma durabilidade de mensagens substancialmente alta, oferecendo a você e aos seus stakeholders ainda mais segurança.

P: Quando devo usar o Amazon Simple Workflow Service (Amazon SWF) em vez do Amazon SQS?

Você pode usar o Amazon SWF ou o Amazon SQS para desenvolver aplicações separadas distribuídas:

  • O Amazon SWF é um serviço criado para orquestrar aplicações altamente escaláveis. Ele também disponibiliza auditabilidade.
  • O Amazon SQS disponibiliza uma fila hospedada confiável e altamente escalável para enviar e receber mensagens.

Embora você possa usar o Amazon SQS para criar fluxos de trabalho básicos para coordenar sua aplicação distribuída, é possível obter essa facilidade prontamente com o Amazon SWF, juntamente com outros recursos no nível da aplicação.

Nós recomendamos testar o Amazon SQS e o Amazon SWF para determinar qual solução se encaixa melhor às suas necessidades.

P: A Amazon utiliza o Amazon SQS para seus próprios aplicativos?

Sim. Os desenvolvedores da Amazon usam o Amazon SQS para várias aplicações que processam grandes números de mensagens todos os dias. Processos empresariais essenciais da Amazon.com e da Amazon Web Services usam o Amazon SQS.


P: O que posso fazer com o nível gratuito do Amazon SQS?

O nível gratuito do Amazon SQS disponibiliza 1 milhão de solicitações por mês sem custo.

Muitas aplicações de pequena escala podem operar inteiramente dentro dos limites do nível gratuito. No entanto, cobranças de transferência de dados ainda podem ser aplicáveis. Para obter mais informações, consulte Amazon SQS Pricing.

O nível gratuito é uma oferta mensal. O uso gratuito não é acumulativo ao longo dos meses.

P: Qual é o custo do Amazon SQS?

Você paga apenas pelo que utilizar e não há taxa mínima.

Na maioria das regiões, o custo do Amazon SQS é de 0,50 USD para cada 1 milhão de solicitações, além das cobranças por transferência de dados para dados transferidos para fora do Amazon SQS (a menos que os dados sejam transferidos para instâncias do Amazon EC2 ou funções do AWS Lambda dentro da mesma região). Para obter mais informações, consulte Amazon SQS Pricing.

P: Serei cobrado por todas as solicitações do Amazon SQS?

Sim. Todas as solicitações do Amazon SQS são passíveis de cobrança, além de serem faturadas usando a mesma taxa.

P: As operações em lote do Amazon SQS custam mais do que outras solicitações?

Não. Operações em lote (que incluem: SendMessageBatch, DeleteMessageBatch e ChangeMessageVisibilityBatch) custam o mesmo que outras solicitações do Amazon SQS. Ao agrupar mensagens em lotes, você pode reduzir os custos do Amazon SQS.

P: Como serei cobrado pelo uso que eu fizer do Amazon SQS?

Não há taxas iniciais para começar a usar o Amazon SQS. No final do mês, seu cartão de crédito será automaticamente cobrado pelo uso do mês.

Você pode ver suas cobranças para o período de faturamento atual a qualquer momento no site da AWS:

  1. Faça login na sua conta da AWS.
  2. Na opção Your Web Services Account, selecione Account Activity.

P: Os preços incluem impostos?

A menos que seja indicado de outra forma, nossos preços não incluem quaisquer taxas ou impostos aplicáveis, como IVA ou imposto sobre vendas aplicável.

Para clientes com endereço de pagamento no Japão, o uso da AWS em qualquer região está sujeito ao imposto sobre utilização japonês. Para obter mais informações, consulte Amazon Web Services Consumption Tax FAQ.


P: Posso usar o Amazon SQS com outros serviços da AWS?

Sim. Você pode tornar suas aplicações mais flexíveis e escaláveis usando o Amazon SQS com serviços computacionais, como o Amazon EC2, o Amazon EC2 Container Service (Amazon ECS) e o AWS Lambda, como também com serviços de armazenamento e banco de dados, como o Amazon Simple Storage Service (Amazon S3) e o Amazon DynamoDB.

Um caso de uso comum é uma aplicação distribuída e separada, cujos vários módulos e componentes precisam se comunicar uns com os outros, mas não podem realizar a mesma quantidade de trabalho simultaneamente. Nesse caso, as filas de mensagens do Amazon SQS transportam mensagens a serem processadas pela aplicação que está em execução nas instâncias do Amazon EC2.

As instâncias do Amazon EC2 podem ler a fila de mensagens, processar o trabalho e, em seguida, publicar os resultados como mensagens para outra fila de mensagens do Amazon SQS (por exemplo, para processamento posterior por outra aplicação). Como o Amazon EC2 permite que as aplicações aumentem e diminuam a escala vertical de modo dinâmico, os desenvolvedores de aplicações podem variar o número de instâncias computacionais com base na quantidade de mensagens nas filas do Amazon SQS usando o Auto Scaling para garantir que os trabalhos sejam executados em tempo hábil.

P: Você pode me dar um caso de uso de exemplo do Amazon SQS?

Aqui mostramos como um site de transcodificação de vídeo usa o Amazon EC2, o Amazon SQS, o Amazon S3 e o Amazon DynamoDB de forma conjunta:

  1. Os usuários finais enviam ao site vídeos para serem transcodificados.
  2. Os vídeos são armazenados no Amazon S3 e uma mensagem de solicitação é inserida em uma fila de entrada do Amazon SQS com um indicador para o vídeo e para o formato de vídeo de destino dentro da mensagem.
  3. O mecanismo de transcodificação executado em um conjunto de instâncias do Amazon EC2 lê a mensagem de solicitação da fila de entrada, recupera o vídeo do Amazon S3 usando o indicador e transcodifica o vídeo para o formato de destino.
  4. O vídeo convertido é inserido de volta no Amazon S3 e outra mensagem de resposta é colocada em outra fila de saída do Amazon SQS com um indicador para o vídeo convertido.
  5. Ao mesmo tempo, metadados sobre o vídeo (formato, data de criação, tamanho, etc.) são indexados no Amazon DynamoDB para consulta.

Durante esse fluxo de trabalho, uma instância dedicada do Auto Scaling poderá monitorar constantemente a fila de entrada. Com base no número de mensagens na fila de entrada, a instância do Auto Scaling ajusta de modo dinâmico o número de instâncias do Amazon EC2 de transcodificação para atender aos requisitos de tempo de resposta dos clientes do site.

P: Como faço para interagir com o Amazon SQS?

Você pode acessar o Amazon SQS usando o Console de Gerenciamento da AWS, que tem uma interface visual da web para configurar e gerenciar o Amazon SQS.

O Amazon SQS também disponibiliza uma API de web services, além de ser integrado aos AWS SDKs, permitindo que você trabalhe usando a linguagem de programação de sua escolha.

P: Quais são as operações disponíveis para filas de mensagens?

Para obter informações sobre operações de fila de mensagens, consulte Amazon SQS Product Details.

P: Quem pode realizar operações em uma fila de mensagens?

Apenas um proprietário de conta da AWS (ou uma conta da AWS para a qual o proprietário da conta delegou direitos) pode executar operações em uma fila de mensagens do Amazon SQS.

P: Posso usar o Java Message Service (JMS) com o Amazon SQS?

Sim. Você pode se beneficiar com a escala, o baixo custo e a alta disponibilidade do Amazon SQS sem a preocupação e a alta sobrecarga de ter de executar seu próprio cluster JMS.

A Amazon disponibiliza uma Amazon SQS Java Messaging Library que implementa a especificação JMS 1.1 e usa o Amazon SQS como o provedor do JMS. Para obter mais informações, consulte Using JMS with Amazon SQS.

P: Como as mensagens são identificadas no sistema?

Todas as mensagens têm um ID exclusivo global que o Amazon SQS retorna quando a mensagem é entregue à fila de mensagens. O ID não é exigido para executar nenhuma ação subsequente relacionada à mensagem, mas é útil para rastrear o recebimento de uma mensagem específica na fila de mensagens.

Ao receber uma mensagem da fila de mensagens, a resposta incluirá um receipt handle que você deve disponibilizar ao excluir a mensagem.

P: Como as mensagens que não foram processadas com sucesso são administradas?

No Amazon SQS, é possível usar a API ou o console para configurar dead letter queues, que são filas que você configura para receber mensagens de outras filas de origem.

Qualquer fila pode se tornar uma dead letter queue que receberá mensagens depois que um número máximo de tentativas de processamento não puder ser concluído. Você pode usar dead letter queues para isolar mensagens que não podem ser processadas para análise posterior.

Para obter mais informações, consulte Using Amazon SQS Dead Letter Queues.

P: O Amazon SQS disponibiliza acesso PEPS (FIFO, primeiro a entrar, primeiro a sair) às mensagens?

O Amazon SQS disponibiliza um recurso de PEPS flexível que tenta preservar a ordem das mensagens. No entanto, nós projetamos o Amazon SQS para oferecer grande escalabilidade usando uma arquitetura distribuída. Porém, não podemos garantir que você sempre receberá mensagens na ordem exata que as enviou (PEPS).

Se o seu sistema exigir que a ordem das mensagens seja preservada, insira informações de sequenciamento em cada mensagem de modo que elas possam ser ordenadas quando forem recebidas.

P: O Amazon SQS disponibiliza a entrega de mensagens do tipo pelo menos uma vez (at-least-once)?

Sim. O Amazon SQS garante que cada mensagem será entregue pelo menos uma vez. O Amazon SQS armazena cópias de suas mensagens em vários servidores para obter redundância e alta disponibilidade. Em raras ocasiões, um dos servidores que armazena a cópia de uma mensagem poderá ficar indisponível quando você receber ou excluir a mensagem.

Se isso acontecer, a cópia da mensagem não será excluída no servidor indisponível e você poderá obter uma cópia da mensagem em questão novamente quando receber mensagens (entrega do tipo pelo menos uma vez).

Você deve projetar suas aplicações para serem idempotentes (ou seja, elas não devem ser afetadas de modo adverso durante o processamento da mesma mensagem mais de uma vez).

P: O que é um visibility timeout?

O visibility timeout é um período em que o Amazon SQS impede que outros componentes de utilização recebam e processem uma mensagem. Para obter mais informações, consulte Visibility Timeout.

P: Como o Amazon SQS permite que vários leitores acessem a mesma fila de mensagens sem que as mensagens sejam perdidas ou sem processá-las várias vezes?

Cada fila do Amazon SQS tem um visibility timeout configurável. Durante um período estabelecido, a mensagem não ficará visível para nenhum outro leitor quando ela for lida por meio de uma fila de mensagens. Contanto que a quantidade de tempo necessária para processar a mensagem seja menor do que o visibility timeout, todas as mensagens serão processadas e excluídas.

Se o componente de processamento da mensagem falhar ou ficar indisponível, a mensagem se tornará visível novamente para qualquer componente que leia a fila de mensagens assim que terminar o visibility timeout. Isso permite que vários componentes leiam mensagens por meio da mesma fila de mensagens, cada um trabalhando para processar mensagens diferentes.

P: Qual é o limite máximo de visibilidade de mensagens?

O visibility timeout máximo para uma mensagem do Amazon SQS é de 12 horas.

P: O Amazon SQS é compatível com metadados de mensagem?

Sim. Uma mensagem do Amazon SQS pode conter até 10 atributos de metadados. Você pode usar atributos de mensagem para separar o corpo de uma mensagem dos metadados que a descrevem. Isso ajuda a processar e armazenar informações com maior velocidade e inteligência, pois suas aplicações não precisam inspecionar uma mensagem inteira antes de entender como processá-la.

Os atributos de mensagem do Amazon SQS assumem a forma de trios nome-tipo-valor. Os tipos compatíveis incluem string, binário e número (inclusive inteiro, ponto de flutuação e duplo). Para obter mais informações, consulte Using Amazon SQS Message Attributes.

P: Como posso determinar o valor time-in-queue?

Para determinar o valor time-in-queue, você pode solicitar o atributo SentTimestamp quando receber uma mensagem. A subtração desse valor dos resultados de tempo atuais resultam no valor time-in-queue.

P: Qual é a latência típica do Amazon SQS?

Latências típicas para solicitações de API SendMessage, ReceiveMessage e DeleteMessage situam-se na casa das dezenas ou centenas de milissegundos.

P: Para obter acesso anônimo, qual é o valor do atributo SenderId de uma mensagem?

Quando o ID da conta da AWS não estiver disponível (por exemplo, quando um usuário anômino enviar uma mensagem), o Amazon SQS disponibilizará o endereço IP.

P: O que é a sondagem longa do Amazon SQS?

A sondagem longa do Amazon SQS é uma forma de recuperar mensagens de suas filas do Amazon SQS. Embora a sondagem curta tradicional tenha retorno imediato, mesmo se a fila de mensagens sendo sondada estiver vazia, a sondagem longa não retorna uma resposta até que uma mensagem chegue na fila de mensagens ou a sondagem longa atinja seu limite de tempo.

A sondagem longa diminui o custo da recuperação de mensagens da sua fila do Amazon SQS assim que as mensagens estiverem disponíveis. O uso da sondagem longa pode reduzir o custo de utilização do SQS, pois é possível reduzir o número de recebimentos vazios. Para obter mais informações, consulte Amazon SQS Long Polling.

P: Existe uma cobrança adicional por usar a sondagem longa do Amazon SQS?

Não. As chamadas ReceiveMessage de sondagem longa são faturadas da mesma forma que as chamadas ReceiveMessage de sondagem curta.

P: Quando devo usar a sondagem longa do Amazon SQS e quando devo usar a sondagem curta do Amazon SQS?

Na maioria dos casos, a sondagem longa do Amazon SQS é preferível à sondagem curta. As solicitações de sondagem longa permitem que os consumidores da sua fila recebam mensagens assim que elas chegarem na fila. Ao mesmo tempo, elas reduzem o número de instâncias ReceiveMessageResponse vazias retornadas.

A sondagem longa do Amazon SQS resulta em desempenho superior, a um custo reduzido, para a maioria dos casos de uso. No entanto, se a sua aplicação esperar uma resposta imediata de uma chamada ReceiveMessage, é possível que você não consiga utilizar a sondagem longa sem fazer algumas modificações na aplicação.

Por exemplo, se a sua aplicação usar um thread único para sondar várias filas, a alternância de sondagem curta para sondagem longa provavelmente não funcionará, pois o thread único esperará pelo limite de tempo da sondagem longa em qualquer fila vazia, adiando o processamento de todas as filas que possam conter mensagens.

Em uma aplicação como essa, é uma boa prática usar um thread único para processar apenas uma fila, permitindo que a aplicação aproveite os benefícios que a sondagem longa do Amazon SQS proporciona.

P: Qual valor devo usar para meu limite de tempo de sondagem longa?

Em geral, você deve usar uma máximo de 20 segundos para um limite de tempo de sondagem longa. Como valores de limite de tempo de sondagem longa reduzem o número de instâncias ReceiveMessageResponse vazias retornadas, tente definir seu limite de tempo de sondagem longa com o valor mais alto possível.

Se o máximo de 20 segundos não funcionar para a sua aplicação (veja o exemplo na pergunta anterior), defina um limite de tempo de sondagem mais curto, que pode chegar a até 1 segundo.

Todos os AWS SDKs trabalham com o padrão de 20 segundos para sondagens longas. Se você não usa um AWS SDK para acessar o Amazon SQS, ou se você configurou seu AWS SDK para que ele tenha um tempo limite especificamente mais curto, será necessário modificar o cliente do Amazon SQS para permitir solicitações mais longas ou usar um limite de tempo de sondagem longa mais curto.

P: O que é AmazonSQSBufferedAsyncClient para Java?

O AmazonSQSBufferedAsyncClient para Java disponibiliza uma implementação da interface AmazonSQSAsyncClient e adiciona vários recursos importantes:

  • O envio em lote automático de várias solicitações SendMessage, DeleteMessage ou ChangeMessageVisibility sem a necessidade de fazer nenhuma alteração na aplicação
  • A pré-análise de mensagens em um buffer local que permite que a sua aplicação processe imediatamente mensagens por meio do Amazon SQS sem esperar que as mensagens sejam recuperadas

Trabalhando em conjunto, o envio em lote e a pré-análise aumentam o throughput e reduzem a latência da sua aplicação enquanto diminuem seus custos ao fazer menos solicitações ao Amazon SQS. Para obter mais informações, consulte Client-Side Buffering and Request Batching.

P: Onde posso fazer o download do AmazonSQSBufferedAsyncClient para Java?

Você pode fazer o download do AmazonSQSBufferedAsyncClient como parte do AWS SDK para Java.

P: Preciso reescrever minha aplicação para usar o AmazonSQSBufferedAsyncClient para Java?

Não. O AmazonSQSBufferedAsyncClient para Java foi implementado como uma substituição imediata do AmazonSQSAsyncClient atual.

Se você atualizar a aplicação para usar o AWS SDK mais recente e alterar o cliente para usar o AmazonSQSBufferedAsyncClient para Java em vez do AmazonSQSAsyncClient, a aplicação receberá os benefícios agregados de envio em lote automático e pré-análise.

P: Como posso inscrever filas de mensagens do Amazon SQS para receber notificações dos tópicos do Amazon Simple Notification Service (Amazon SNS)?

  1. No console do Amazon SQS, selecione uma fila de mensagens do Amazon SQS.
  2. Na opção Queue Actions, selecione Subscribe Queue to SNS Topic na lista suspensa.
  3. Na caixa de diálogo, selecione o tópico na lista suspensa Choose a Topic e clique em Subscribe.

Para obter mais informações, consulte Subscribing a Queue to an Amazon SNS Topic.

P: Como posso realizar a distribuição de mensagens idênticas em várias filas do Amazon SQS?

  1. Use o Amazon SNS para criar um tópico.
  2. Crie e inscreva várias filas de mensagens do Amazon SQS ao tópico do Amazon SNS.
  3. Sempre que uma mensagem for enviada para o tópico do Amazon SNS, ela será distribuída para as filas de mensagens do Amazon SQS.

O Amazon SNS entrega a mensagem para todas as filas de mensagens do Amazon SQS inscritas no tópico.

P: Posso excluir todas as mensagens de uma fila de mensagens sem excluir a fila de mensagens em si?

Sim. Sim, você pode excluir todas as mensagens de uma fila de mensagens do Amazon SQS usando a ação PurgeQueue.

Quando você limpar uma fila de mensagens, todas as mensagens enviadas anteriormente para ela serão excluídas. Como a sua fila de mensagens e seus atributos permanecem, não é necessário reconfigurar a fila de mensagens. Você poderá continuar a utilizá-la.

Para excluir apenas mensagens específicas, use as ações DeleteMessage ou DeleteMessageBatch.


P: Qual o nível de confiabilidade do armazenamento dos meus dados no Amazon SQS?

O Amazon SQS armazena todas as filas de mensagens e as mensagens em uma única região altamente disponível da AWS com várias zonas de disponibilidade (AZs) redundantes para que nenhuma falha única de computador, rede ou AZ possa tornar as mensagens inacessíveis. Para obter mais informações, consulte Regions and Availability Zones.

P: Como posso proteger as mensagens nas minhas filas de mensagens?

Mecanismos de autenticação garantem que as mensagens armazenadas nas filas de mensagens do Amazon SQS estejam protegidas contra acesso não autorizado. Você pode controlar quem envia mensagens para uma fila de mensagens e quem as recebe de uma fila de mensagens. Para obter maior segurança, você pode criar sua aplicação para criptografar mensagens antes que elas sejam inseridas em uma fila de mensagens.

O Amazon SQS tem seu próprio sistema de permissões baseado em recursos que usa políticas escritas na mesma linguagem das políticas do AWS Identity and Access Management (IAM): por exemplo, você pode usar variáveis, como políticas do IAM. Para obter mais informações, consulte Amazon SQS Policy Examples.

O Amazon SQS é compatível com os protocolos HTTP over SSL (HTTPS) e Transport Layer Security (TLS). A maioria dos clientes pode negociar automaticamente o uso de versões mais recentes do TLS sem nenhuma mudança de código ou configuração. O Amazon SQS é compatível com as versões 1.0, 1.1 e 1.2 do protocolo Transport Layer Security (TLS) em todas as regiões.

P: Por que existem operações ReceiveMessage e DeleteMessage separadas?

Quando o Amazon SQS retorna uma mensagem para você, essa mensagem permanece na fila de mensagens, mesmo que você não tenha realmente recebido a mensagem. Você é responsável por excluir a mensagem. A solicitação de exclusão confirma que você já acabou de processá-la.

Se você não excluir a mensagem, o Amazon SQS vai entregá-la novamente quando receber outra solicitação de recebimento. Para obter mais informações, consulte Visibility Timeout.

P: Uma mensagem excluída pode ser recebida novamente?

Sim. Em raras ocasiões, você poderá receber pela segunda vez uma mensagem excluída previamente. Isso pode ocorrer na rara situação em que uma operação DeleteMessage não exclua todas as cópias de uma mensagem porque um dos servidores do sistema distribuído do Amazon SQS não está disponível no momento da exclusão. Essa cópia da mensagem pode ser entregue novamente.

Para evitar esse comportamento, projete sua aplicação para que ela seja idempotente (ou seja, se você receber uma mensagem pela segunda vez, não ocorrerão erros ou incompatibilidades).

P: O que acontece se eu emitir uma solicitação DeleteMessage em uma mensagem excluída anteriormente?

Ao emitir uma solicitação DeleteMessage em uma mensagem excluída anteriormente, o Amazon SQS retornará uma resposta de êxito.


P: O Amazon SQS tem certificação PCI DSS?

Sim. O Amazon SQS tem certificação PCI DSS de nível 1. Para obter mais informações, consulte PCI Compliance.

P: O Amazon SQS está em conformidade com o HIPAA?

Não. O Amazon SQS não está qualificado para obter a conformidade com o HIPAA.

No entanto, você pode usar a Extended Client Library para enviar cargas por meio do Amazon S3 (o Amazon S3 é um serviço qualificado para o HIPAA). Você pode obter a conformidade com o HIPAA dessa maneira, pois nenhuma informação de identificação pessoal (PII) será transferida por meio do Amazon SQS.

Para obter mais informações, consulte Using the Amazon SQS Extended Client Library for Java.


P: Por quanto tempo posso manter minhas mensagens na filas de mensagens do Amazon SQS?

A retenção de mensagens mais longa disponibiliza maior flexibilidade para permitir intervalos mais longos entre a utilização e a produção de mensagens.

Você pode configurar o período de retenção do Amazon SQS com um valor entre 1 minuto e 14 dias. O padrão são 4 dias. Quando o limite de retenção de mensagens for atingido, suas mensagens serão excluídas automaticamente.

P: Como configuro o Amazon SQS para que seja possível reter mensagens por mais tempo?

Para configurar o período de retenção de mensagens, defina o atributo MessageRetentionPeriod usando o console ou o método Distributiveness. Use esse atributo para especificar o número de segundos em que uma mensagem será retida no Amazon SQS.

Você pode usar o atributo MessageRetentionPeriod para definir o período de retenção de mensagens entre 60 segundos (1 minuto) e 1.209.600 segundos (14 dias). Para obter mais informações sobre como trabalhar com esse atributo de mensagem, consulte Amazon SQS API Reference.

P: Como configurar o tamanho máximo de mensagens para o Amazon SQS?

Para configurar o tamanho máximo de mensagens, use o console ou o método SetQueueAttributes para definir o atributo MaximumMessageSize. Esse atributo especifica o limite de bytes que uma mensagem do Amazon SQS pode conter. Defina esse limite com um valor entre 1.024 bytes (1 KB) e 262.144 bytes (256 KB).

Para obter mais informações, consulte Using Amazon SQS Message Attributes.

Para enviar mensagens maiores que 256 KB, use a Amazon SQS Extended Client Library para Java. Essa biblioteca permite que você envie uma mensagem do Amazon SQS contendo uma referência a uma carga de mensagem no Amazon S3 que pode chegar a até 2 GB.

P: Que tipo de dados posso incluir em uma mensagem?

As mensagens do Amazon SQS podem conter até 256 KB de dados de texto, como XML, JSON e texto não formatado. Os caracteres Unicode seguintes são aceitos:

#x9 | #xA | #xD | [#x20 a #xD7FF] | [#xE000 a #xFFFD] | [#x10000 a #x10FFFF]

Para obter mais informações, consulte XML 1.0 Specification.

P: A que tamanho podem chegar as filas de mensagens do Amazon SQS?

Uma única fila de mensagens do Amazon SQS pode conter um número ilimitado de mensagens. No entanto, o limite de mensagens já recebidas por um usuário (mas que ainda não foram removidas ["in-flight"]) por fila é de 120.000. São chamadas de "in-flight" as mensagens que foram recebidas da fila por um componente de utilização, mas que ainda não foram excluídas da fila.

P: Quantas filas de mensagens posso criar?

Você pode criar qualquer número de filas de mensagens.

P: Há um limite de tamanho para o nome das filas de mensagens do Amazon SQS?

Os nomes de fila são limitados a 80 caracteres.

P: Há restrições para os nomes das filas de mensagens do Amazon SQS?

Você pode usar caracteres alfanuméricos, hífens (-) e sublinhados (_).

P: Posso reutilizar um nome de fila de mensagens?

Um nome de fila de mensagens deve ser exclusivo dentro de uma conta e uma região da AWS. Você pode reutilizar um nome de fila de mensagens depois de excluí-la.

P: O que acontece se não for registrada nenhuma atividade em uma fila de mensagens durante um período prolongado?

Nós nos reservamos o direito de excluir uma fila de mensagens, caso nenhuma das seguintes solicitações seja emitida na fila de mensagens durante mais de 30 dias consecutivos:

  • SendMessage
  • ReceiveMessage
  • DeleteMessage
  • GetQueueAttributes
  • SetQueueAttributes

As filas que atuam como dead letter queues não serão excluídas, contanto que nenhuma das filas de origem ainda exista.


P: Como posso compartilhar uma fila de mensagens?

Você pode associar uma instrução de política de acesso (e especificar as permissões concedidas) à fila de mensagens a ser compartilhada. O Amazon SQS disponibiliza APIs para a criação e o gerenciamento de instruções de política de acesso:

  • AddPermission
  • RemovePermission
  • SetQueueAttributes
  • GetQueueAttributes

Para obter mais informações, consulte Amazon SQS API Reference.

P: Quem paga pelo acesso compartilhado a filas?

O proprietário da fila de mensagens paga pelo acesso compartilhado da fila de mensagens.

P: Como posso identificar outro usuário da AWS com quem desejo compartilhar uma fila de mensagens?

A API do Amazon SQS utiliza o número de conta da AWS para identificar usuários da AWS.

P: O que preciso disponibilizar para um usuário da AWS com quem desejo compartilhar uma fila de mensagens?

Para compartilhar uma fila de mensagens com um usuário da AWS, disponibilize o URL completo da fila de mensagens que você deseja compartilhar. As operações CreateQueue e ListQueues retornam este URL em suas respostas.

P: O Amazon SQS é compatível com o acesso anônimo?

Sim. Você pode configurar uma política de acesso que permita que usuários anônimos acessem uma fila de mensagens.

P: Quando devo usar a API permissions?

A API permissions disponibiliza uma interface para compartilhar o acesso a uma fila de mensagens para desenvolvedores. No entanto, essa API não pode permitir acesso condicional ou casos de uso mais avançados.

P: Quando devo usar a operação SetQueueAttributes com objetos JSON?

A operação SetQueueAttributes é compatível com a linguagem de políticas de acesso total. Por exemplo, você pode usar a linguagem da política para restringir o acesso a uma fila de mensagens por endereço IP e horário do dia. Para obter mais informações, consulte Amazon SQS Policy Examples.


P: Em que regiões o Amazon SQS está disponível?

Para saber sobre a disponibilidade de uma região, consulte AWS Global Infrastructure Region Table.

P: Posso compartilhar mensagens entre filas em regiões diferentes?

Não. Cada fila de mensagens do Amazon SQS é independente dentro de cada região.

P: Há alguma diferença na definição de preço entre as regiões?

A definição de preço do Amazon SQS é a mesma para todas as regiões, exceto para a região Ásia-Pacífico (Tóquio) e AWS GovCloud (US). Para obter mais informações, consulte Amazon SQS Pricing.

P: Qual é a estrutura de definição de preço entre várias regiões?

Você pode transferir dados entre o Amazon SQS e o Amazon EC2 ou o AWS Lambda gratuitamente dentro de uma única região.

Ao transferir dados entre o Amazon SQS e o Amazon EC2 ou o AWS Lambda em regiões diferentes, será cobrada a taxa de transferência de dados normal. Para obter mais informações, consulte Amazon SQS Pricing.