P: O que é o Amazon SQS?

O Amazon Simple Queue Service (Amazon SQS) oferece uma fila hospedada confiável e altamente escalável para armazenar mensagens enquanto viajam entre computadores. Ao utilizarem o Amazon SQS, os desenvolvedores podem simplesmente mover dados entre componentes de aplicativos distribuídos, executando tarefas diferentes, sem a perda de mensagens ou a exigência de que cada componente esteja sempre disponível. O Amazon SQS facilita a criação de uma aplicação distribuída e dissociada, trabalhando em estreita colaboração com o Amazon Elastic Compute Cloud (Amazon EC2) e os outros serviços da web de infraestrutura da AWS.

Comece a usar a AWS gratuitamente

Crie uma conta gratuita
Ou faça login no console

O nível gratuito da AWS inclui 750 horas de Nó de cache micro com o Amazon ElastiCache.

Consulte os detalhes do nível gratuito da AWS »

P: O que posso fazer com o Amazon SQS?

O Amazon SQS é um serviço web que fornece acesso a uma fila de mensagem que pode ser usada para armazenar mensagens enquanto aguarda um computador para processá-las. Isso permite que você crie rapidamente aplicativos de enfileiramento de mensagens que podem ser executados em qualquer computador na internet. Visto que o Amazon SQS é altamente escalável e você só paga pelo que você utiliza, você pode começar com um sistema reduzido e ir expandindo seu aplicativo como quiser, sem comprometer o desempenho ou a confiabilidade. Isso fará com que você possa se concentrar em criar sofisticados aplicativos baseados em mensagem, sem ter de se preocupar com a forma como as mensagens serão armazenadas e gerenciadas. Você pode usar o Amazon SQS com aplicativos de software de várias maneiras. Por exemplo, é possível:

  • Integrar o Amazon SQS com outros serviços web de infraestrutura AWS para tornar os aplicativos mais confiáveis e flexíveis.
  • Use o Amazon SQS para criar uma fila de trabalho em que cada mensagem é uma tarefa que deve ser concluída por um processo. Um ou vários computadores podem ler as tarefas da fila e realizá-las.
  • Crie uma arquitetura de microsserviços usando filas para conectar os seus microsserviços.
  • Manter as notificações de eventos significativos em um processo empresarial em uma fila do Amazon SQS. Cada evento pode ter uma mensagem correspondente em uma fila e os aplicativos que precisam estar cientes do evento podem ler e processar as mensagens.

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

Você deve ter uma conta da Amazon Web Services para acessar este serviço.  Após a inscrição, consulte o Console de Gerenciamento da AWS ou a documentação do Amazon SQS e o código de exemplo na Central de recursos para começar a utilizar o Amazon SQS.

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?

O uso do Amazon SQS fornece diversas vantagens com relação a construção de seu próprio software para gerenciar filas de mensagens ou para a utilização de um sistema de filas de mensagens comerciais ou de código aberto. Essas alternativas requerem um tempo significativo de desenvolvimento e de configuração iniciais, em relação à integração com um serviço web existente. Além disso, essas alternativas requerem recursos de hardware e de sistemas administrativos constantes para estarem em funcionamento. A complexidade da configuração e do gerenciamento desses sistemas é maior se eles precisam ser configurados para fornecer armazenamento redundante de mensagens para que as mensagens não sejam perdidas caso haja uma falha de hardware. Por outro lado, o Amazon SQS não requer sobrecarga de tarefas administrativa e necessita de pouca configuração.  Além disso, o Amazon SQS disponibiliza uma escala excepcional, processando bilhões de mensagens por dia.  Você pode expandir ou reduzir a quantidade de tráfego enviado para o SQS, sem fazer configuração ou gerenciamento.  Finalmente, o Amazon SQS 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 (SWF) em vez de o Amazon SQS?

O Amazon SWF e o Amazon SQS podem ser usados para desenvolver aplicações distribuídas e dissociadas.  O Amazon SWF oferece uma infraestrutura que é projetada para coordenar tarefas ao criar aplicações verificáveis e de alta escalabilidade. O Amazon SQS, por outro lado, oferece uma fila hospedada, altamente escalável e confiável para armazenar mensagens. Enquanto você usa o Amazon SQS para criar o apoio a mensagens necessário para implementar seu aplicativo distribuído, você obtém essa capacidade inovadora com o Amazon SWF em conjunto com outros recursos no nível do aplicativo. Nós recomendamos a análise do Amazon SQS e do 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 internos da Amazon usam o Amazon SQS para uma ampla variedade de projetos e representam um grande número de mensagens Amazon SQS por dia. Os aplicativos que usam o Amazon SQS incluem processos de negócio chave para o site de varejo da Amazon.com e da Amazon Web Services.



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

O nível gratuito do Amazon SQS oferece 1 milhão de solicitações por mês sem custo algum. Muitas aplicações de pequena escala podem funcionar integralmente dentro desse limite de nível gratuito. Pode ser que ainda existam cobranças de transferência de dados (consulte a definição de preço). O nível gratuito é uma oferta mensal. O uso gratuito não se acumula de um mês a outro.

P: Qual é o custo do Amazon SQS?

Você paga apenas o que você utiliza e não há taxa mínima. Você paga 0,50 USD para cada 1 milhão de solicitações, além de encargos pelos dados transferidos do Amazon SQS. Consulte a página Definição de preço do Amazon SQS para obter mais detalhes.

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

Operações em lote que incluem: SendMessageBatch, DeleteMessageBatch e ChangeMessageVisbilityBatch custam o mesmo que outras solicitações do Amazon SQS.  Ao agrupar mensagens em lotes, os desenvolvedores podem reduzir seus custos.

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

Não há encargos de configuração para começar a usar o serviço. No final do mês, seu cartão de crédito receberá a cobrança automática referente ao uso daquele mês. Você pode visualizar suas despesas para o período de cobrança a qualquer momento por meio do site da Amazon Web Services. Para isso faça o login em sua conta da Amazon Web Services e, em seguida, clique em ''Account Activity'' em ''Your Web Services Account''.

P: Os preços incluem impostos?

Exceto onde informado de outra forma, nossos preços não incluem impostos e taxas (como ICMS e imposto sobre vendas) aplicáveis. Para clientes com endereço de cobrança no Japão, o uso da AWS (em qualquer região) está sujeito ao imposto sobre consumo japonês. Saiba mais.


P: O Amazon SQS pode ser utilizado com outros serviços AWS?

O Amazon SQS pode ser usado com serviços de computação, que incluem o Amazon EC2, o Amazon EC2 Container Service e o AWS Lambda, e também como serviços de armazenamento e banco de dados, como o Amazon S3 e o Amazon DynamoDB, para tornar as aplicações mais flexíveis e escaláveis. Um caso de uso comum é criar uma aplicação distribuída e dissociada, em que vários módulos ou componentes precisam se comunicar uns com os outros, porém não podem processar a mesma quantidade de trabalho simultaneamente. Neste caso, as filas do Amazon SQS transportam mensagens a serem processadas de forma ordenada pelo aplicativo do usuário que está em execução em instâncias do Amazon EC2. As instâncias do Amazon EC2 podem ler a fila, processar o trabalho e, em seguida, publicar os resultados como mensagens para outra fila do Amazon SQS (possivelmente para processamento posterior por outro aplicativo). Visto que o Amazon EC2 permite que aplicativos sejam ampliados ou reduzidos dinamicamente, os desenvolvedores de aplicativos podem facilmente variar o número de instâncias computacionais com base na quantidade de trabalho nas filas SQS, para garantir que os trabalhos sejam executados em tempo hábil.

Por exemplo, 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. Os usuários finais enviam vídeos para serem transcodificados para o site. Os vídeos são armazenados no Amazon S3, e uma mensagem ("a mensagem de solicitação") é colocada em uma fila do Amazon SQS ("a fila de entrada") com um ponteiro para o vídeo e para o formato de vídeo de destino da mensagem. O mecanismo de transcodificação, sendo 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 ponteiro e transcodifica o vídeo para o formato de destino. O vídeo convertido é colocado de volta no Amazon S3 e outra mensagem ("a mensagem de resposta") é colocada em outra fila do Amazon SQS ("a fila de saída") com um ponteiro para o vídeo convertido. Ao mesmo tempo, metadados de vídeo (por exemplo, formato, data de criação e duração) podem ser indexados no Amazon DynamoDB para facilitar a consulta. Durante todo este fluxo de trabalho, uma instância dedicada do Amazon EC2 pode monitorar constantemente a fila de entrada e, com base no número de mensagens na fila de entrada, é capaz de ajustar dinamicamente o número de instâncias de transcodificação no Amazon EC2 para atender aos requisitos de tempo de resposta dos clientes.

P: Como faço a interface com o Amazon SQS?

O Amazon SQS fornece APIs simples que são projetadas para funcionar com qualquer toolkit de desenvolvimento da Internet. As operações são intencionalmente simples para trabalhar com mensagens e filas.

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

As operações disponíveis estão listadas na página Detalhes de produto.

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

As operações podem ser executadas somente pelo proprietário da conta da AWS, ou uma conta da AWS que o dono da conta tenha delegado.

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

Sim.  A Amazon disponibiliza uma biblioteca de clientes que implementa a especificação JMS 1.1 e usa o Amazon SQS como o provedor do JMS. Você pode contar com a escala, o baixo custo e a alta disponibilidade do SQS sem a preocupação e a sobrecarga de ter de executar seu próprio cluster JMS.

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

Todas as mensagens têm um ID exclusivo globalmente que o Amazon SQS retorna quando a mensagem é entregue à fila. A ID não é necessária para executar nenhuma outra ação na mensagem, mas é útil para controlar se uma determinada mensagem na fila foi recebida. Quando você recebe uma mensagem da fila, a resposta inclui um identificador de recepção, que você deve fornecer ao excluir a mensagem.

P: Como as mensagens processadas sem êxito são administradas?

O Amazon SQS disponibiliza a capacidade de configurar Dead Letter Queues (DLQs). Uma DLQ é uma fila que você configura para receber mensagens de outras filas, chamadas de "filas de origem". Normalmente, você configura uma DLQ para receber mensagens após um número máximo de tentativas de processamento ser atingido. As DLQs oferecem a capacidade de isolar mensagens que não puderam ser processadas para que elas sejam analisadas posteriormente.

Uma DLQ é igual a qualquer outra fila. As mensagens podem ser enviadas para ela e recebidas dela, como em qualquer outra fila. É possível criar uma DLQ por meio da API do SQS e do console do SQS.

Saiba como criar e usar as DLQs no Guia do desenvolvedor do SQS.

 

P: O Amazon SQS disponibiliza acesso first-in-first-out (FIFO, primeiro a entrar, primeiro a sair) às mensagens?

O Amazon SQS se esforça ao máximo para preservar a ordem das mensagens, mas, devido à natureza distribuída da fila, não é possível garantir que as mensagens serão recebidas na ordem exata que você enviou (FIFO). Se o seu sistema exigir que a ordem seja preservada, nós recomendamos que você insira informações de sequenciamento em cada mensagem, de modo que seja possível reordenar as mensagens mediante o recebimento delas.

 

P: O Amazon SQS oferece o tipo de entrega de mensagens "pelo menos uma vez"?

Sim. 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 estiver armazenando 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 a cópia da mensagem novamente quando receber mensagens. Essa opção é conhecida como entrega "pelo menos uma vez".  Por causa disso, você deve projetar sua aplicação para que ela seja idempotente (ou seja, ela não deve ser afetada de modo negativo, caso processe a mesma mensagem mais de uma vez).

 

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

O Amazon SQS oferece suporte para um máximo de 12 horas de visibility timeout.

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

Sim. O Amazon SQS permite o envio de até 10 atributos em cada mensagem. Com atributos de mensagem, você pode separar o corpo de uma mensagem dos metadados que a descrevem. Isso permite processar e armazenar informações com maior velocidade e inteligência, pois suas aplicações não precisam mais inspecionar a mensagem inteira para entender quais etapas de processamento são necessárias.

Os atributos de mensagem do SQS assumem a forma de trios nome-tipo-valor. Os tipos compatíveis são: sequência de caracteres, binário e número (incluindo inteiros, ponto flutuante e duplos).

Consulte a documentação do SQS para obter mais informações.

P: Como um desenvolvedor pode determinar o “tempo na fila”?

Os desenvolvedores podem solicitar o atributo "SentTimestamp", ao receber uma mensagem. Subtraindo esse valor dos resultados de tempo atuais resultam no valor de "tempo na fila".

P: Qual é a latência típica do 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: Qual é o valor do atributo “SenderId” de uma mensagem em caso de acesso anônimo?

O Amazon SQS fornece o endereço IP quando o ID de conta da AWS não estiver disponível, como quando um usuário anônimo envia uma mensagem.

P: O que é a sondagem longa SQS?

A sondagem longa SQS é uma forma de recuperar mensagens de suas filas SQS. Embora a sondagem breve SQS tradicional tenha retorno imediato, mesmo se a fila sendo sondada estiver vazia, a sondagem longa SQS não retorna uma resposta até que uma mensagem chegue na fila ou a sondagem longa atinja seu limite de tempo. A sondagem longa SQS facilita e barateia a recuperação de mensagens de sua fila SQS assim que elas estiverem disponíveis.  O uso da sondagem longa pode reduzir o custo de utilização do SQS, visto que é possível reduzir o número de recebimentos vazios.

P: Há qualquer cobrança adicional por usar a sondagem longa SQS?

Não, as chamadas de API ReceiveMessage de sondagem longa são cobradas exatamente da mesma forma que as chamadas de API ReceiveMessage de sondagem breve.

P: Quando devo usar a sondagem longa SQS e quando devo usar a sondagem breve SQS?

Praticamente na maioria dos casos, a sondagem longa SQS é preferível à sondagem breve SQS. As solicitações de sondagem longa permitem que seus clientes de fila recebam mensagens assim que chegarem na fila, reduzindo o número de ReceiveMessageResponses vazias que você encontra. Combinadas juntas, a sondagem longa SQS resulta em desempenho superior, a custo reduzido, para a maioria dos casos de uso. No entanto, se seu aplicativo foi escrito para esperar uma resposta imediata da chamada ReceiveMessage, você pode não aproveitar a sondagem longa sem algumas modificações de aplicativo. Por exemplo, se seu aplicativo tiver uma sondagem de um único thread com várias filas, a alternância de sondagem breve para sondagem longa provavelmente não funcionará, pois o thread único aguardará o limite de tempo da sondagem longa em qualquer fila vazia, adiando o processamento de quaisquer filas que possam conter mensagens. Nesse aplicativo, recomenda-se que um único thread seja usado para processar somente uma fila, permitindo que o aplicativo aproveite os benefícios que a sondagem longa SQS fornece.

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

Em geral, deve ser usado o limite de tempo máximo da sondagem longa de 20 segundos. Valores superiores de limite de tempo de sondagem longa reduzirão o número de ReceiveMessageResponses vazias retornadas; portanto, tente definir o limite de tempo de sua sondagem longa o mais alto possível. Se o máximo de 20 segundos não funcionar para sua aplicação (veja o exemplo na pergunta anterior), você poderá escolher um limite de tempo inferior para a sondagem longa, podendo chegar até 1 segundo. Todos os AWS SDKs trabalham com o padrão de 20 segundos para sondagens longas. Se você não estiver usando um AWS SDK para acessar o SQS ou se tiver configurado especialmente seu AWS SDK para ter um limite de tempo menor, talvez seja necessário modificar seu cliente SQS para permitir solicitações mais longas ou usar um limite de tempo menor para a sondagem longa.

P: O que é o cliente AmazonSQSBufferedAsync?

O cliente AmazonSQSBufferedAsync fornece uma implementação da interface do cliente AmazonSQSAsync, que agrega vários recursos importantes. Primeiro, o cliente AmazonSQSBufferedAsync é compatível com lotes automáticos de várias solicitações SendMessage, DeleteMessage ou ChangeMessageVisibility em lotes de cada tipo, sem quaisquer alterações necessárias pelo aplicativo. Segundo, o cliente AmazonSQSBufferedAsync é compatível com a pré-análise de mensagens em um buffer local, o que permite que seu aplicativo processe imediatamente mensagens do SQS sem aguardar que elas sejam recuperadas do SQS. Combinadas juntas, o lote automático e a pré-análise aumentam a taxa de transferência e reduzem a latência de seu aplicativo, economizando ao mesmo tempo seu dinheiro ao fazer menos solicitações SQS.

P: Como fazer o download do cliente AmazonSQSBufferedAsync?

Você pode fazer o download do cliente AmazonSQSBufferedAsync como parte do AWS SDK para Java, disponível em http://aws.amazon.com/sdkforjava/.

P: Quais idiomas são compatíveis com o cliente AmazonSQSBufferedAsync?

No momento, o cliente AmazonSQSBufferedAsync é compatível somente com Java.

P: Preciso reescrever meu aplicativo para usar o cliente AmazonSQSBufferedAsync?

Não, o cliente AmazonSQSBufferedAsync é implementado como um complemento em substituição ao cliente AmazonSQSAsync existente. Você pode atualizar seu aplicativo para usar o AWS SDK mais recente, alterar sua construção de cliente para usar o cliente AmazonSQSBufferedAsync em vez do cliente AmazonSQSAsync e seu aplicativo receberá os benefícios agregados de lote automático e pré-análise.

P: Como posso assinar filas de SQS para receber notificações de tópicos de SNS?

Selecione a fila de SQS no console de SQS e, de ‘Queue Actions’, na barra de menus, selecione ‘Subscribe Queue to SNS Topic’ na lista suspensa. Na caixa de diálogo Assinatura, selecione o tópico da lista suspensa "Escolha um tópico" e clique no botão "Assinar". Para obter instruções detalhadas completas, consulte a documentação do Amazon SQS.

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

Primeiro crie um tópico de SNS usando SNS. Em seguida, crie e assine várias filas de SQS no tópico de SNS. Agora, sempre que uma mensagem for enviada para o tópico de SNS, será realizado 'fan-out' da mensagem para as filas de SQS, ou seja, o SNS entregará a mensagem para todas as filas de SQS assinadas no tópico.

P: Posso excluir todas as mensagens de uma fila sem excluir a própria fila?

Sim, você pode excluir todas as mensagens de uma fila do SQS usando a ação PurgeQueue. Quando você limpar uma fila, todas as mensagens anteriormente enviadas para a fila serão excluídas. Como a fila e seus atributos permanecerão, não há necessidade de reconfigurar a fila para continuar a usá-la. Se você precisa apenas excluir mensagens específicas, pode usar as ações DeleteMessage ou DeleteMessageBatch.


P: Que nível de confiabilidade possuem os dados armazenados no Amazon SQS?

O Amazon SQS armazena todas as informações de filas e de mensagens na rede de Datacenters altamente confiáveis e de alta disponibilidade da Amazon. Todas as mensagens são armazenadas de modo redundante em vários servidores e em vários Datacenters, o que significa que nenhuma falha de rede ou de computador torna as mensagens SQS inacessíveis.

P: Como posso proteger as mensagens em minhas filas?

Mecanismos de autenticação são disponibilizados para garantir que as mensagens armazenadas no Amazon SQS estejam protegidas contra acesso não autorizado. Você pode controlar quem envia mensagens para uma fila e quem as recebe de uma fila.

O Amazon SQS tem seu próprio sistema de permissões baseado em recursos que usa políticas redigidas na mesma linguagem usada para as políticas do AWS Identity and Access Management (IAM). Isso significa que, usando as políticas do Amazon SQS, você pode conquistar os mesmos resultados obtidos com as políticas do IAM, como o uso de variáveis nas políticas do IAM. Para obter detalhes sobre o uso deste recurso, consulte o guia do desenvolvedor do Amazon SQS.

Para obter maior segurança, você pode criar sua aplicação para criptografar mensagens antes de serem inseridas em uma fila.

P: Como o Amazon SQS permite que vários leitores acessem a mesma fila de mensagem, sem que a mensagem seja perdida ou sem processá-la muitas vezes?

Cada fila do Amazon SQS tem um tempo de espera de visibilidade configurável. Por um período de tempo designado após uma mensagem ser lida de uma fila, ela não será visível para qualquer outro leitor. Contanto que a quantidade de tempo que leva para processar a mensagem seja menor do que o tempo de espera de visibilidade, todas as mensagens serão processadas e excluídas. Se o componente de processamento da mensagem falhar ou ficar indisponível, a mensagem se torna visível novamente para qualquer componente que leia a fila assim que terminar o tempo de espera de visibilidade. Isso permite que você conte com vários componentes e que todos leiam mensagens da mesma fila, com cada um deles trabalhando para processar mensagens diferentes.

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

Quando o Amazon SQS retorna uma mensagem para você, essa mensagem permanece na fila, 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 já está processando a mensagem. Se você não excluir a mensagem, o Amazon SQS vai entregá-la novamente em outra solicitação de recebimento.  Consulte "Tempo de espera de visibilidade" no Guia do desenvolvedor do Amazon SQS para obter mais informações.

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

Sim, em raras circunstâncias você poderá receber uma mensagem excluída anteriormente novamente. Isso pode ocorrer na rara situação em que uma operação de DeleteMessage não exclui todas as cópias de uma mensagem porque um dos servidores do sistema Amazon SQS distribuído não está disponível no momento da exclusão. Essa cópia da mensagem pode, então, ser entregue novamente. Você deve projetar seu aplicativo para que não gere erros ou incoerências caso você receba uma mensagem excluída novamente.

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

O SQS retorna uma mensagem de “sucesso”.


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

O Amazon SQS tem certificação PCI DSS de nível 1. Consulte http://aws.amazon.com/compliance/pci-dss-level-1-faqs para obter mais detalhes.

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

O Amazon SQS não tem certificação para conformidade com HIPAA. No entanto, você pode usar a Extended Client Library para enviar cargas de mensagens SQS através do S3.  O S3 está em conformidade com HIPAA.  Você pode obter conformidade com HIPAA desta maneira, pois nenhum PII é transferido através do SQS.


P: Por quanto tempo posso manter minhas mensagens em filas no Amazon SQS?

O período de retenção de mensagens do SQS é configurável e pode ser definido entre 1 minuto e 2 semanas. O padrão é de 4 dias e uma vez alcançado o limite de retenção da mensagem, elas serão excluídas automaticamente. A opção por maior retenção de mensagens fornece maior flexibilidade para permitir intervalos mais longos entre utilização e produção de mensagem.

P: Como configuro o 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 de Gerenciamento ou o método SetQueueAttributes. Esse atributo é usado para especificar o número de segundos que uma mensagem será retida pelo SQS. Atualmente o valor padrão para o período de retenção de mensagens é de 4 dias. Usando o atributo MessageRetentionPeriod, o período de retenção de mensagens pode ser definido entre 60 segundos (1 minuto) e 1.209.600 segundos (14 dias). Consulte o Guia de referência de API do Amazon SQS para obter mais detalhes sobre como trabalhar com esse atributo de mensagem.

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

Para configurar o tamanho máximo de mensagens, defina o atributo MaximumMessageSize usando o Console de Gerenciamento ou o método SetQueueAttributes. Esse atributo especifica o limite de número de bytes que uma mensagem do SQS pode conter. Ele pode ser definido em qualquer valor entre 1.024 bytes (1 KB) e 262.144 bytes (256 KB). Consulte o Guia de referência de API do Amazon SQS para obter mais detalhes sobre como trabalhar com esse atributo de mensagem.

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

P: Que tipo de dados podem estar inseridos em uma mensagem?

As mensagens do Amazon SQS podem conter até 256 KB de dados de texto, incluindo 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]

(de acordo com http://www.w3.org/TR/REC-xml/#charsets).

P: A que tamanho podem chegar as filas no Amazon SQS?

Uma única fila pode conter um número ilimitado de mensagens e você pode criar qualquer número de filas.

P: Há restrições para os nomes das filas do Amazon SQS? Há um limite de tamanho para o nome de uma fila do Amazon SQS? O nome de uma fila pode ser reutilizado?

Os nomes de fila são limitados a 80 caracteres. Caracteres alfanuméricos mais hífens (-) e sublinhados (_) são permitidos. Os nomes de fila devem ser exclusivos em uma conta e região da AWS. Após excluir uma fila, você poderá reutilizar o nome da fila excluída.

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

Se nenhuma das solicitações a seguir forem emitidas para a fila por mais de 30 dias consecutivos, nos reservamos o direito de excluir essa fila: SendMessage, ReceiveMessage, DeleteMessage, GetQueueAttributes e SetQueueAttributes. Lembre-se disso ao projetar sua aplicação. Observe que as filas Dead Letter Queues não serão excluídas enquanto qualquer das suas filas de origem existir.


P: Como compartilho uma fila?

Um desenvolvedor associa uma política de declaração de acesso (especificando as permissões concedidas) com a fila a ser compartilhada. O Amazon SQS fornece APIs para criar e gerenciar as política de declaração de acesso: AddPermission, RemovePermission, SetQueueAttributes e GetQueueAttributes. Consulte a especificação mais recente da API para obter mais detalhes.

P: Quem paga pelo acesso compartilhado a filas?

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

P: Como identifico outro usuário AWS?

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

P: O que necessito fornecer a outros usuários para possamos compartilhar uma fila?

Você precisará fornecer a URL completa da fila a ser compartilhada. As operações CreateQueue e ListQueues retornam esta URL em sua resposta.

P: O Amazon SQS aceita acesso anônimo?

Sim – Um desenvolvedor pode definir uma política de acesso que permita o acesso de usuários anônimos a uma fila.

P: Quando devo usar as Permissões API?

A API de permissões fornece uma interface simples para os desenvolvedores compartilharem o acesso a uma fila, mas ela não pode permitir acesso condicional e mais avançados casos de uso.

P: Quando devo usar SetQueueAttributes com objetos JSON?

A operação SetQueueAttributes admite o idioma da política de acesso total. Mediante o uso do idioma da política, o acesso a uma fila pode ser restringido por endereço IP e pela hora do dia por exemplo. Consulte a documentação da política de acesso no Guia do desenvolvedor mais recente para obter mais detalhes.


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

Consulte a AWS Global Infrastructure Region Table.

P: As mensagens podem ser compartilhadas entre filas em diferentes regiões?

Não – o Amazon SQS é totalmente independente com relação ao armazenamento de mensagens e aos nomes de fila em 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). Consulte a definição de preço para obter mais detalhes.

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

Os dados transferidos entre o Amazon SQS e o Amazon EC2 em uma única região não tem custo algum. Para os dados transferidos entre o Amazon SQS e o Amazon EC2 em diferentes regiões serão aplicadas as taxas de transferência de dados normais.