P: O que é o Amazon Simple Notification Service (Amazon SNS)?

O Amazon Simple Notification Service (Amazon SNS) é um serviço da Web que facilita a configuração, a operação e o envio de notificações com base na nuvem. Ele fornece aos desenvolvedores uma capacidade altamente escalável, flexível e econômica para publicar mensagens de um aplicativo e imediatamente entregá-las aos assinantes ou outros aplicativos. Ele foi projetado para facilitar a computação de escala na web para os desenvolvedores. O Amazon SNS segue o paradigma de mensagens "publicar-assinar" (pub-sub), com as notificações sendo entregues a clientes usando um mecanismo "push" que elimina a necessidade de verificar periodicamente ou "poll" para novas informações e atualizações. Com APIs simples exigindo um esforço mínimo de desenvolvimento prévio, nenhuma despesa geral de manutenção ou gerenciamento e definição de preço do tipo pague conforme usar, o Amazon SNS fornece aos desenvolvedores um mecanismo fácil para incorporar um sistema de notificação robusto com seus aplicativos.

P: Quais são alguns usos de exemplo das notificações do Amazon SNS?

O serviço do Amazon SNS pode oferecer suporte a uma ampla variedade de necessidades, incluindo aplicativos de monitoramento, sistemas de fluxo de trabalho, atualizações de informações relacionadas ao horário, aplicativos móveis e qualquer outro aplicativo que gere ou consuma notificações. Por exemplo, o Amazon SNS pode ser usado em sistemas de fluxo de trabalho para vincular eventos entre aplicativos de computador distribuídos, mover dados entre armazenamentos de dados ou atualizar registros em sistemas de negócios. Atualizações de eventos e notificações referentes à validação, aprovação, mudanças de inventário e status de expedição são imediatamente entregues a componentes relevantes do sistema, assim como a usuários finais. Outro uso de exemplo do Amazon SNS é para vincular eventos críticos com relação ao horário a aplicativos e dispositivos móveis. Como o Amazon SNS é altamente confiável e escalável, ele fornece vantagens significativas para desenvolvedores que criam aplicativos que se baseiam em eventos em tempo real.

P: Quais são os benefícios do uso do Amazon SNS?

O Amazon SNS oferece vários benefícios, tornando-o uma opção versátil para a criação e a integração de aplicativos distribuídos e livremente vinculados:

  • Entrega instantânea baseada em "push" (sem polling)
  • APIs simples e integração fácil com os aplicativos
  • Entrega flexível de mensagens em vários protocolos de transporte
  • Modelo tipo pague conforme usar econômico sem custos prévios
  • O AWS Management Console baseado na Web oferece a simplicidade de uma interface apontar e clicar

P: Como o Amazon SNS funciona?

É muito fácil começar a usar o Amazon SNS. Primeiro os desenvolvedores devem criar um ''tópico'' que é um ''ponto de acesso'' – identificando um assunto específico ou um tipo de evento – para a publicação de mensagens e a permissão de clientes para se inscrever em notificações. Assim que um tópico for criado, seu proprietário poderá definir políticas para tal, como a limitação de quem pode publicar mensagens ou inscrever-se em notificações, ou a especificação de quais protocolos de notificação serão compatíveis (ou seja, HTTP/HTTPS, e-mail). Os assinantes são clientes interessados em receber notificações de tópicos de interesse; eles podem se inscrever em um tópico ou serem inscritos pelo proprietário do tópico. Os assinantes especificam o protocolo e o ponto final (URL, endereço de e-mail etc.) para que as notificações sejam entregues. Quando os editores tiverem informações ou atualizações para notificar seus assinantes a respeito, poderão publicar uma mensagem para o tópico – que acionará imediatamente o Amazon SNS para entregar a mensagem a todos os assinantes aplicáveis.

P: Como o Amazon SNS difere-se do Amazon SQS?

O Amazon Simple Queue Service (SQS) e o Amazon SNS são serviços de mensagens dentro da AWS, que fornecem benefícios diferentes para os desenvolvedores. O Amazon SNS permite que aplicativos enviem mensagens críticas em termos de tempo para vários assinantes através de um mecanismo de "ação", eliminando a necessidade de verificar periodicamente ou "pesquisar" por atualizações. O Amazon SQS é um serviço de fila de mensagens usado por aplicativos distribuídos para trocar mensagens através de um modelo de pesquisa e pode ser usado para separar o envio e o recebimento de componentes. O Amazon SQS fornece flexibilidade para componentes distribuídos de aplicativos para enviar e receber mensagens sem exigir que cada componente esteja disponível simultaneamente.

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

Para se cadastrar ao Amazon SNS, clique no botão “Sign up for Amazon SNS”, na página de detalhes do Amazon SNS. É necessário ter uma conta do Amazon Web Services para acessar esse serviço; se você ainda não tiver uma, será solicitada a criação da mesma ao iniciar o processo de conexão no Amazon SNS. Após a conexão, consulte a documentação do Amazon SNS e o Guia de Conceitos Básicos para começar a usar o Amazon SNS. Usando o AWS Management Console, é possível criar tópicos, adicionar assinantes, enviar notificações e editar políticas de tópicos de forma fácil – tudo com base no navegador.

P: O Amazon SNS é compatível com o AWS Management Console? O Amazon SNS é respaldado pelo AWS Management Console que fornece uma interface baseada na Web do tipo apontar e clicar para acessar e gerenciar o Amazon SNS. Usando o AWS Management Console, você pode criar tópicos, adicionar assinantes e enviar notificações – tudo com base no navegador. Além disso, o AWS Management Console facilita a publicação de mensagens pelo protocolo de escolha (HTTP, e-mail, protocolo SQS etc.) e a edição de políticas de tópico para controlar o acesso aos editores e aos assinantes. O AWS Management Console é fornecido gratuitamente em: http://aws.amazon.com/pt/console

P: Quais são os endpoints do serviço do Amazon SNS em cada região?

O endpoint do Leste dos EUA (Norte da Virgínia) é: http://sns.us-east-1.amazonaws.com

O endpoint do Oeste dos EUA (Oregon) é: http://sns.us-west-2.amazonaws.com

O endpoint do Oeste dos EUA (Norte da Califórnia) é: http://sns.us-west-1.amazonaws.com

O endpoint da UE (Irlanda) é: http://sns.eu-west-1.amazonaws.com

O endpoint da Ásia-Pacífico (Cingapura) é: http://sns.ap-southeast-1.amazonaws.com

O endpoint da Ásia-Pacífico (Tóquio) é: http://sns.ap-northeast-1.amazonaws.com

O endpoint da Ásia-Pacífico (Sydney) é: http://sns.ap-southeast-2.amazonaws.com

O endpoint da América do Sul (São Paulo) é: http://sns.sa-east-1.amazonaws.com

P: O AWS fornece serviço de telefonia em conjunto com o SNS?

O Amazon SNS é um serviço da Web criado para permitir que os aplicativos enviem notificações com base na nuvem. O AWS não fornece serviço de telefonia ou acesso à Internet de nenhum tipo. O editor de mensagens e o assinante de notificações são responsáveis pela compra de serviços de telefonia ou acesso à Internet com base no provedor terceirizado de sua escolha.

P: Quanto custa o Amazon SNS?

Com o Amazon SNS, não há taxa mínima e você paga somente por aquilo que usar. Os usuários pagam 0,50 USD por 1 milhão de solicitações do Amazon SNS, 0,06 USD por 100.000 entregas de notificação via HTTP, 0,75 USD por 100 entregas de notificação via SMS e 2,00 USD por 100.000 entregas de notificação via e-mail.

O Amazon SNS também inclui um nível gratuito, no qual os usuários podem começar a usar o Amazon SNS gratuitamente. A cada mês, os clientes do Amazon SNS deixam de pagar encargos pelo primeiro 1 milhão de solicitações do Amazon SNS, pelas 100.000 primeiras notificações via HTTP, pelas 100 primeiras notificações via SMS e pelas 1.000 primeiras notificações via e-mail.

Consulte a página de detalhes do Amazon SNS para obter mais detalhes sobre a definição de preço e os custos de transferência de dados.

P: Como será a cobrança e o faturamento do uso que eu fizer do Amazon SNS?

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: Quando o faturamento do uso que eu fizer do Amazon SNS começa e termina?

O ciclo de faturamento do Amazon SNS começa no primeiro dia de cada mês e termina no último dia de cada mês. Seus encargos mensais serão totalizados no final de cada mês.

P: Os preços incluem impostos?

Exceto onde informado de outra forma, nossos preços não incluem impostos e taxas (inclusive ICMS e imposto sobre vendas) aplicáveis. Para clientes com endereço de cobrança no Japão, o uso da região Ásia-Pacífico (Tóquio) está sujeito ao imposto sobre consumo japonês. Saiba mais.

P: Qual é o formato de um tópico do Amazon SNS?

Há um limite de 256 caracteres para os nomes dos tópicos. Caracteres alfanuméricos mais hífens (-) e sublinhados (_) são permitidos. Os nomes de tópicos devem ser exclusivos em uma conta da AWS. Após excluir um tópico, você pode reutilizar o nome do tópico. Quando um tópico for criado, o Amazon SNS atribuirá um ARN (Amazon Resource Name) exclusivo para o tópico, que incluirá o nome do serviço (SNS), a região, o ID da AWS do usuário e o nome do tópico. O ARN será retornado como parte da chamada de API para criar o tópico. Sempre que um editor ou assinante precisar desempenhar qualquer ação no tópico, eles deverão consultar o ARN exclusivo do tópico.

A seguir, há o ARN para um tópico chamado "mytopic" criado por um usuário com o ID da conta da AWS "123456789012" e hospedado na região Leste dos EUA:

arn:aws:sns:us-east-1:1234567890123456:mytopic Nota: os usuários NÃO devem tentar criar o ARN do tópico com base em seus componentes separados – eles sempre devem usar o nome retornado da chamada da API para criar o tópico.

P: Quais são as operações disponíveis do Amazon SNS e quem pode desempenhar essas operações?

O Amazon SNS fornece um conjunto de APIs simples para habilitar notificações de eventos para proprietários de tópicos, assinantes e editores.

Operações do proprietário:

  • CreateTopic – Crie um novo tópico.
  • DeleteTopic – Exclua um tópico criado anteriormente.
  • ListTopics – Lista dos tópicos de propriedade de um determinado usuário (ID da AWS).
  • ListSubscriptionsByTopic – Lista dos tópicos de um determinado tópico
  • SetTopicAttributes – Defina/modifique atributos de tópicos, incluindo a definição e a modificação de permissões do editor/assinante, transportes compatíveis etc.
  • GetTopicAttributes – Obtenha/visualize atributos existentes de um tópico
  • AddPermission – Conceda acesso a usuários selecionados para as ações específicas
  • RemovePermission – Remova permissões referentes a usuários selecionados para as ações específicas

Operações do assinante:

  • Subscribe – Inscreva uma nova assinatura em um determinado tópico, que gerará uma mensagem de confirmação do Amazon SNS
  • ConfirmSubscription – Responda a uma mensagem de confirmação de assinatura, confirmando a solicitação de assinatura para receber notificações do tópico assinado
  • UnSubscribe – Cancele uma assinatura cadastrada anteriormente
  • ListSubscriptions – Liste assinaturas de propriedade de um determinado usuário (ID da AWS)

Operações do editor:

  • Publish: publique uma nova mensagem para o tópico.

P: Por que há duas APIs diferentes para listar assinaturas?

As duas APIs para listar assinaturas desempenham funções diferentes e retornam resultados diferentes:

  • A API ListSubscriptionsByTopic permite que um proprietário do tópico visualize a lista de todos os assinantes cadastrados ativamente em um tópico.
  • A API ListSubscriptions permite que um usuário obtenha uma lista de todas as assinaturas ativas (para um ou mais tópicos).

P: Quais são os diferentes formatos de entrega/transportes para receber notificações?

Para que os clientes tenham ampla flexibilidade de mecanismos de entrega, o Amazon SNS oferece suporte a notificações por meio de vários protocolos de transporte. Os clientes podem selecionar um dos seguintes transportes como parte das solicitações de assinatura:

  • “HTTP”, “HTTPS” – Os assinantes especificam um URL como parte do registro da assinatura; as notificações serão entregues por meio de um HTTP POST para o URL específico.
  • ”Email”, “Email-JSON” – Mensagens são enviadas para endereços cadastrados como e-mail. O Email-JSON envia notificações como um objeto JSON, enquanto o E-mail envia e-mails baseados em texto.
  • “SQS” – Os usuários podem especificar uma fila SQS como o ponto final; o Amazon SNS enfileirará uma mensagem de notificação para a fila especificada (que os assinantes poderão, em seguida, processar usando APIs do SQS como ReceiveMessage, DeleteMessage etc.)
  • "SMS" – As mensagens são enviadas para os números de telefone cadastrados como mensagens de texto SMS.

P: Os proprietários de tópicos podem controlar os transportes que são permitidos nos tópicos que criam/detêm?

Os proprietários de tópicos podem configurar transportes específicos em seus tópicos ao definir as permissões apropriadas por meio de políticas de controle de acesso.

P: Como um proprietário define políticas de Controle de acesso?

Consulte o Guia de Conceitos Básicos do Amazon SNS para obter uma visão geral da definição das políticas de controle de acesso.

P: Um único tópico pode oferecer suporte a assinaturas em vários protocolos/transportes?

Os assinantes de um tópico do Amazon SNS pode receber notificações sobre qualquer transporte compatível pelo tópico. Um tópico pode oferecer suporte a assinaturas e a entregas de notificação por meio de vários transportes.

P: O Amazon SNS pode ser usado com outros serviços da AWS?

O Amazon SNS pode ser usado com outros serviços da AWS, como Amazon SQS, Amazon EC2 e Amazon S3. Eis um exemplo de como um sistema de fluxo de trabalho de processamento de pedidos usa o Amazon SNS com o Amazon EC2, SQS e SimpleDB. Nesse sistema de fluxo de trabalho, as mensagens são enviadas entre componentes do aplicativo sempre que ocorrer uma transação ou um pedido prosseguir por meio do canal de processamento de pedidos. Quando um cliente inicialmente fizer um pedido, a transação será registrada primeiro no Amazon SimpleDB e um aplicativo sendo executado no Amazon EC2 encaminhará a solicitação do pedido para um processador de pagamento que debita o cartão de crédito ou a conta bancária do cliente. Uma vez aprovada, uma mensagem de confirmação do pedido será publicada em um tópico do Amazon SNS. Nesse caso, o tópico tem vários assinantes via Email/HTTP – comerciante, cliente e parceiros da cadeia de suprimentos – e as notificações enviadas pelo Amazon SNS para aquele tópico podem atualizar instantaneamente todos eles informando que o processamento do pagamento foi bem-sucedido. As notificações também podem ser usadas para orquestrar um sistema de processamento de pedidos sendo executado no EC2, onde as notificações enviadas via HTTP podem acionar o processamento em tempo real nos componentes relacionados, como um sistema de inventário ou um serviço de expedição. Ao integrar o Amazon SNS com o Amazon SQS, todas as notificações entregues também persistiram em uma fila do Amazon SQS onde são processadas por um aplicativo de auditoria futuramente.

P: O Amazon SNS estará disponível em todas as regiões onde os serviços da AWS estão disponíveis?

O Amazon SNS está disponível nas regiões Leste dos EUA (Norte da Virgínia), Oeste dos EUA (Oregon), Oeste dos EUA (Norte da Califórnia), UE (Irlanda), Ásia-Pacífico (Cingapura), Ásia-Pacífico (Tóquio), Ásia-Pacífico (Sydney) e América do Sul (São Paulo).

P: Com que rapidez os clientes podem recriar tópicos com nomes de tópicos usados anteriormente?

Normalmente os nomes dos tópicos devem estar disponíveis para reutilização cerca de 30 a 60 segundos depois que o tópico anterior com o mesmo nome tiver sido excluído. O período exato dependerá do número de assinaturas que estavam ativas no tópico – tópicos com menos assinantes estarão disponíveis instantaneamente para reutilização, tópicos com listas de assinantes maiores poderão demorar mais.

P: Como um usuário se inscreveria para que notificações fossem entregues via e-mail?

Para receber notificações de e-mail para um determinado tópico, um assinante deve especificar “E-mail” ou “Email-JSON” como o protocolo e fornecer um endereço de e-mail válido como o ponto final. Isso pode ser feito usando o AWS Management Console ou chamando diretamente a API do Amazon SNS. Em seguida, o Amazon SNS enviará um e-mail com um link de confirmação para o endereço de e-mail especificado e exigirá que o usuário monitorando o endereço de e-mail opte explicitamente por receber notificações de e-mail daquele tópico determinado. Uma vez que o usuário confirmar a assinatura clicando no link fornecido, todas as mensagens publicadas no tópico serão entregues para aquele endereço de e-mail. O AWS Management Console está disponível em: http://aws.amazon.com/pt/console

P: Por que o Amazon SNS fornece dois tipos diferentes de transportes para receber notificações via e-mail?

Os dois transportes de e-mail são fornecidos para dois tipos distintos de clientes/usuários finais. O "Email-JSON" envia notificações como um objeto JSON e é destinado para que os aplicativos processem e-mails de forma programática. O transporte "Email" é destinado para usuários finais/consumidores e as notificações são mensagens regulares baseadas em texto que são facilmente legíveis.

P: Um usuário pode mudar o nome do Assunto e de Exibição para notificações enviadas via Email/Email-JSON?

O Amazon SNS permite que os usuários especifiquem o campo Assunto para e-mails como um parâmetro transmitido para a API Publicar e pode ser diferente para cada mensagem publicada. O nome Exibir para tópicos pode ser ajustado usando a API SetTopicAttributes – esse nome aplica-se a todos os e-mails enviados com base neste tópico.

P: Os assinantes precisam configurar especificamente suas definições de e-mail para receber notificações do Amazon SNS?

Na maioria dos casos, os usuários devem poder receber confirmações de assinaturas e notificações do Amazon SNS sem fazer nada específico. No entanto, poderia haver casos em que as definições padrão do provedor de e-mails ou outras configurações específicas do usuário redirecionam, por engano, os e-mails para a pasta lixo/spam. Para assegurar que os usuários visualizem mensagens de confirmação e notificações enviadas do Amazon SNS, os usuários poderão adicionar “no-reply@sns.amazonaws.com” às suas listas de contato e verificar suas pastas lixo/spam para mensagens do Amazon SNS.

P: No caso de transferir em uma fila de SQS como um ponto final, os usuários criarão a fila antes da inscrição? Quais permissões serão exigidas pela fila?

Usando o console SQS, os usuários devem criar a fila SQS antes de assinar um tópico. Selecione essa fila no console e, de ‘Queue Actions’, na barra de menus, selecione ‘Subscribe Queue to SNS Topic’ na lista suspensa. Na caixa de diálogo subscribe, selecione o tópico da lista suspensa ‘Choose a Topic’ e clique no botão ‘Subscribe’. Para obter instruções detalhadas completas, consulte a documentação do Amazon SNS.

P: Como um desenvolvedor configuraria uma fila do Amazon SQS para receber notificações do Amazon SNS?

Para que o Amazon SNS entregue notificações para uma fila SQS, um desenvolvedor deve assinar um tópico especificando “SQS” como o transporte e uma fila SQS válida como o ponto final. Para permitir que a fila SQS receba notificações do Amazon SNS, o proprietário da fila SQS deve assinar a fila SQS para o tópico do Amazon SNS, a fim de entregar mensagens com êxito para a fila.

Se o usuário detiver o tópico do Amazon SNS sendo assinado e a fila SQS recebendo a notificação, nada mais será exigido. Qualquer mensagem publicada para o tópico será entregue automaticamente para a fila SQS especificada. Se o usuário que detém a fila SQS não for o proprietário do tópico, o Amazon SNS exigirá uma confirmação explícita para a solicitação de assinatura.

Consulte a documentação do Amazon SNS para obter mais detalhes sobre a assinatura de uma fila SQS para um tópico e a definição de políticas de controle de acesso para filas SQS.

P: Como posso realizar fan-out (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: Qual é o formato da mensagem de notificação enviada pelo Amazon SNS?

A mensagem de notificação enviada pelo Amazon SNS para entregas via protocolos de transporte HTTP, HTTPS, Email-JSON e SQS consistirá em um objeto JSON simples, que incluirá as seguintes informações:

  • MessageId: um Identificador universalmente exclusivo, exclusivo para cada notificação publicada.
  • Timestamp: o horário (em GMT) no qual a notificação foi publicada.
  • TopicArn: o tópico para o qual essa mensagem foi publicada
  • Type: o tipo de mensagem de entrega, definido para “Notification” (Notificação) para entregas de notificação.
  • UnsubscribeURL: um link para cancelar a assinatura do ponto final com base neste tópico e impedir o recebimento de quaisquer outras notificações.
  • Message: a carga útil (corpo) da mensagem, conforme recebida do editor.
  • Subject: o campo Assunto – se um foi incluído como um parâmetro opcional para a chamada de API de publicação juntamente com a mensagem.
  • Signature: assinatura “SHA1withRSA” codificada por Base64 dos valores Message, MessageId, Subject (se estiver presente), Type, Timestamp e Topic.
  • SignatureVersion: versão da assinatura do Amazon SNS usada.

Mensagens de notificação usadas por meio do transporte “Email” contêm apenas a carga útil (corpo da mensagem) conforme recebido pelo editor.

P: Como um usuário se inscreveria para que notificações fossem entregues via SMS?

Consulte a seção 'Perguntas relacionadas com SMS' abaixo.

P: Como os usuários protegem as mensagens enviadas aos meus tópicos?

Todas as chamadas de API feitas para o Amazon SNS são validadas para a Id do AWS do usuário e a assinatura. Além disso, recomendamos que os usuários protejam seus dados por meio da conexão ao vincular aos nossos pontos finais de SSL seguro.

P: Quem pode criar um tópico?

Os tópicos podem ser criados somente pelos usuários com IDs de AWS válidos que se inscreveram no Amazon SNS. A forma mais fácil de criar um tópico é usar o AWS Management Console. Ele também pode ser criado por meio da API CreateTopic. O AWS Management Console está disponível em: http://aws.amazon.com/pt/console

P: Vários usuários podem publicar um único tópico?

Um proprietário do tópico pode definir permissões explícitas para permitir que mais de um usuário (com um ID da AWS válido) publique um tópico. Como padrão, somente os proprietários dos tópicos têm permissões para publicar um tópico.

P: Como o proprietário concede/revoga permissões de publicação ou de assinatura em um tópico?

As APIs AddPermission e RemovePermission fornecem uma interface simples para desenvolvedores adicionarem e removerem permissões referentes a um tópico. No entanto, para acesso condicional e casos de uso mais avançados, os usuários devem usar políticas de controle de acesso para gerenciar permissões. A forma mais fácil de gerenciar permissões é usar o AWS Management Console. O AWS Management Console está disponível em: http://aws.amazon.com/pt/console

P: Como o proprietário de um tópico fornece acesso aos assinantes? Os assinantes têm de ter IDs da AWS válidos?

O Amazon SNS facilita para os usuários com e sem IDs da AWS receberem notificações. O proprietário do tópico pode conceder/restringir acesso a assinantes ao definir permissões apropriadas para o tópico usando políticas de Controle de acesso. Os usuários podem receber notificações do Amazon SNS de duas formas:

  • Usuários com IDs da AWS: assinantes com IDs da AWS válidos (consulte este link para obter detalhes sobre a obtenção dos IDs da AWS) podem assinar qualquer tópico diretamente – desde que o proprietário do tópico tenha lhes concedido permissões para fazê-lo. Os IDs da AWS serão validados como parte do cadastro da assinatura.
  • Outros usuários: os proprietários de tópicos podem assinar e cadastrar pontos finais em nome dos usuários sem IDs da AWS.

Em ambos os casos, o proprietário do ponto final da assinatura precisa optar explicitamente e confirmar a assinatura ao responder à mensagem de confirmação enviada pela Amazon SNS.

P: Como o Amazon SNS autenticará chamadas de API?

Todas as chamadas de API feitas para o Amazon SNS validarão a autenticidade ao exigir que as solicitações sejam assinadas com a chave secreta da conta de ID da AWS e verificar a assinatura incluída nas solicitações.

P: Como o Amazon SNS validará uma solicitação de inscrição para assegurar que notificações não serão enviadas para usuários como spams?

Como parte do registro de assinatura, o Amazon SNS assegurará que as notificações sejam enviadas somente para assinantes/pontos finais válidos registrados. Para impedir spam e assegurar que o ponto final de um assinante esteja realmente interessado em receber notificações de um determinado tópico, o Amazon SNS requer uma opção explícita dos assinantes usando um handshake de duas partes:

i. Quando um usuário primeiro chama a API do assinante e assina um ponto final, o Amazon SNS enviará uma mensagem de confirmação para o ponto final especificado.

ii. Ao receber a mensagem de confirmação no ponto final, o assinante deve confirmar a solicitação de assinatura ao enviar uma resposta válida. Somente então o Amazon SNS considerará a solicitação de assinatura como válida. Se não houver resposta ao desafio, o Amazon SNS não enviará nenhuma notificação para aquele ponto final. O mecanismo exato de confirmação da assinatura varia de acordo com o protocolo de transporte selecionado:

  • Para notificações via HTTP/HTTPS, o Amazon SNS primeiro PUBLICARÁ (POST) a mensagem de confirmação (contendo um token) no URL especificado. O aplicativo monitorando o URL terá de chamar a API ConfirmSubscription com o token incluído.
  • Para notificações via Email e Email-JSON, o Amazon SNS enviará um e-mail para o endereço especificado contendo um link embutido. O usuário terá de clicar no link embutido para confirmar a solicitação de assinatura.
  • Para notificações SQS, o Amazon SNS enfileirará uma mensagem de desafio contendo um token para a fila especificada. O aplicativo monitorando a fila terá de chamar a API ConfirmSubscription com o token.
  • Para notificações via SMS, a Amazon SNS enviará uma mensagem inicial de confirmação do cadastro SMS para o número de telefone especificado e o usuário terá que responder com uma mensagem SMS confirmando a solicitação de assinatura. Para obter mais detalhes. Visite a seção de 'Perguntas relacionadas à SMS' abaixo. enfileirar uma mensagem de desafio contendo um token para a fila especificada. O aplicativo monitorando a fila terá de chamar a API ConfirmSubscription com o token.

Nota: as etapas de ''opção'' explícitas descritas acima não são exigidas para o caso específico no qual você assina a fila do Amazon SQS para o tópico Amazon SNS – e ambas são ''de propriedade'' da mesma conta AWS.

P: Por quanto tempo as solicitações de inscrição permanecerão pendentes enquanto aguardam a confirmação?

O token incluído na mensagem de confirmação enviada para pontos finais em uma solicitação de assinatura é válido por 3 dias.

P: Quem pode alterar permissões em um tópico?

Somente o proprietário do tópico pode alterar permissões para aquele tópico.

P: Como os usuários podem verificar se as mensagens de notificação são enviadas com base no Amazon SNS?

Para assegurar a autenticidade das notificações, o Amazon SNS assinará todas as entregas de notificação usando um mecanismo assimétrico e criptograficamente seguro (par de chaves privadas e públicas baseado em certificados). O Amazon SNS publicará seu certificado em uma localização bem conhecida (por ex., http://sns.us-east-1.amazonaws.com/SimpleNotificationService.pem para a região Leste dos EUA) e assinará mensagens com a chave privada daquele certificado. Os desenvolvedores/aplicativos podem obter o certificado e validar a assinatura nas notificações com a chave pública do certificado para assegurar que a notificação realmente foi enviada pelo Amazon SNS. Para obter mais detalhes sobre localizações do certificado, consulte a página de detalhes do Amazon SNS.

P: Os editores também têm de assinar as mensagens?

O Amazon SNS requer que os editores com IDs da AWS validem suas mensagens ao assinar mensagens com sua chave secreta da AWS; a assinatura, então, é validada pelo Amazon SNS.

P: Um editor/assinante pode usar o SSL para proteger mensagens?

Sim, ambos os editores e os assinantes podem usar SSL para ajudar a proteger o canal para enviar e receber mensagens. Os editores podem se conectar ao Amazon SNS via HTTPS e publicar mensagens por meio do canal SSL. Os assinantes devem cadastrar um ponto final habilitado por SSL como parte do registro de assinatura e as notificações serão entregues por meio de um canal SSL para aquele ponto final.

P: De quais permissões um assinante precisa para permitir que o Amazon SNS envie notificações para um endpoint registrado?

O proprietário do ponto final recebendo as notificações tem de conceder permissões para o Amazon SNS para enviar mensagens para aquele ponto final.

P: Como as inscrições podem ser canceladas?

Os assinantes podem cancelar a assinatura pelo proprietário do tópico, proprietário da assinatura ou outros – dependendo do mecanismo usado para confirmar a solicitação da assinatura.

  • Uma assinatura que foi confirmada com o indicador AuthenticateOnUnsubscribe definido como Verdadeiro na chamada para a chamada da API ConfirmSubscription pode ser cancelada por um proprietário de tópico ou proprietário da assinatura.
  • Se a assinatura foi confirmada anonimamente sem o indicador AuthenticateOnUnsubscribe definido como Verdadeiro, então ela poderá ser cancelada anonimamente.

Em todos os casos, exceto ao cancelar a assinatura pelo proprietário da assinatura, uma mensagem de cancelamento final será enviada para o ponto final, permitindo que o proprietário do ponto final assine novamente o tópico de forma fácil (se a solicitação Cancelar assinatura foi involuntária ou um erro). Para obter mais detalhes sobre a API ConfirmSubscription, consulte a documentação do Amazon SNS.

P: Qual o nível de confiabilidade dos meus dados assim que forem publicados no Amazon SNS?

O Amazon SNS armazena todas as informações de tópicos e mensagens dentro da infraestrutura de rede e dos Datacenters comprovados 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 isolada no computador ou na rede torna o Amazon SNS inacessível.

P: Uma notificação conterá mais de uma mensagem?

Não, todas as mensagens de notificação conterão uma única mensagem publicada.

P: Quantas vezes um assinante receberá cada mensagem?

Embora na maior parte do tempo cada mensagem será entregue para seu aplicativo exatamente uma vez, a natureza distribuída do Amazon SNS e as condições de rede transientes poderiam resultar em mensagens ocasionais duplicadas no assinante final. Os desenvolvedores devem projetar seus aplicativos de tal forma que o processamento de uma mensagem mais de uma vez não crie nenhum erro ou inconsistências.

P: As mensagens serão entregues a mim na ordem exata em que foram publicadas?

O serviço Amazon SNS tentará entregar mensagens com base no editor na ordem em que foram publicados no tópico. No entanto, problemas da rede poderiam potencialmente resultar em mensagens fora de ordem no assinante final.

P: Uma mensagem pode ser excluída após ser publicada?

Não, uma vez que uma mensagem tiver sido publicada com êxito em um tópico, ela não poderá ser chamada novamente.

P: O Amazon SNS assegurará que as mensagens serão entregues ao ponto final assinado?

Quando uma mensagem é publicada em um tópico, o Amazon SNS tenta entregar notificações para todos os assinantes cadastrados naquele tópico. Devido a problemas potenciais da Internet ou a restrições de entrega de E-mail, às vezes a notificação talvez não atinja um endpoint de HTTP ou e-mail de forma bem-sucedida. No caso de HTTP, uma Política de Entrega do SNS pode ser utilizada para controlar o padrão de repetição (linear, geométrico, backoff exponencial), atraso de repetição mínimo e máximo, e outros parâmetros. Se for essencial que todas as mensagens publicadas sejam processadas de forma bem-sucedida, os desenvolvedores devem ter notificações entregues para uma fila SQS (além das notificações por meio de outros transportes).

P: Como posso cadastrar um telefone para receber mensagens SMS?

A maneira mais fácil de cadastrar um telefone para receber mensagens SMS é utilizando o AWS Management Console. Primeiramente, selecione o tópico SNS que você gostaria de subscrever (ou crie um novo tópico), clique no botão 'Criar nova assinatura' e selecione 'SMS' no 'Protocolo' suspenso e, em seguida, digite o seu número de telefone como a 'Ponto de extremidade'. Como alternativa, você pode chamar a API da Amazon SNS diretamente e especificar 'SMS' como o protocolo de entrega, fornecendo um número de telefone válido como o ponto final. Em seguida a Amazon SNS irá enviar um SMS para o número de telefone fornecido e exigirá que o usuário aceite explicitamente receber notificações via SMS de um determinado tópico. Essa confirmação deve ser efetuada sob a forma de um SMS enviado diretamente do telefone. Uma vez que o usuário confirmar a assinatura, todas as mensagens publicadas para esse tópico serão entregues a esse número de telefone como mensagens SMS. O AWS Management Console está disponível em: http://aws.amazon.com/pt/console

P: Qual é o formato de número telefônico de uma assinatura válida?

No momento a Amazon SNS só aceita os números telefônicos dos EUA como assinaturas válidas. Estes podem ser inseridos no formato '1-333-555-7777' (ou seja, 1 seguido do código de área e o número de telefone de 7 dígitos, com espaços, parênteses, hífens, etc.).

P: Preciso fazer algo em especial em um tópico para habilitar as entregas SMS?

Os usuários devem usar mecanismos existentes tais como o AWS Management Console ou a chamada de API CreateTopic para criar um novo tópico. Além disso, para os tópicos que são compatíveis com o SMS, os desenvolvedores devem identificar o tópico para definir um DisplayName. Este nome será incluído em todas as mensagens SMS enviadas a partir deste tópico.

P: Como será exibido o DisplayName em uma mensagem SMS entregue?

A SNS incluirá o tópico DisplayName definido pelo proprietário do tópico na parte inicial da mensagem SMS a ser entregue. Assim, por exemplo, se o tópico DisplayName é definido como 'Foo', a mensagem entregue será da seguinte forma:
Foo > Esta é a carga da mensagem publicada.

P: Tenho que configurar um DisplayName para um tópico com assinaturas SMS?

Sim, para os tópicos que terão as assinaturas de SMS, os usuários precisam definir um tópico DisplayName válido. Nota: Para tópicos sem assinaturas de SMS, o campo DisplayName pode ser deixado em branco.

P: Há alguma restrição de tamanho para o DisplayName?

Além de ser incluído como um identificador de tópico em mensagens SMS, o DisplayName também é utilizado para o campo 'De' em entregas de notificação de e-mail. Assim, enquanto o tamanho máximo do DisplayName é de 100 caracteres, devido ao formato restrito de mensagens SMS, apenas os 10 primeiros caracteres serão incluídos na entrega do SMS. Isso é recomendado para os tópicos com assinaturas de SMS, os usuários definem o DisplayName para ter um tamanho máximo de 10 caracteres, ou certifique-se de que os primeiros 10 caracteres do DisplayName identificam claramente o tópico.

P: Como paro o envio de mensagens SMS para o meu telefone?

Há várias maneiras de impedir que sejam feitas entregas de notificação SMS ao telefone do usuário. A maneira mais fácil é responder 'Parar' ou 'Sair' para o código curto 30304 para cancelar a assinatura de todos os tópicos e interromper as entregas SMS. Os usuários também podem remover assinaturas SMS usando o AWS Management console ou chamando a API do Amazon SNS diretamente.

P: De qual código curto se originam as notificações SMS?

As notificações do Amazon SNS serão enviadas a partir do código curto 30304 nos Estados Unidos.

P: As assinaturas SMS são associadas aos tópicos do Amazon SNS?

Sim – Todas as assinaturas SMS são associadas aos tópicos do Amazon SNS. Não há nenhuma maneira de criar uma assinatura SMS sem associá-la a um tópico.

P: Quais operadoras de celular oferecem suporte para as entregas SMS (do Amazon SNS) nos EUA?

As seguintes operadoras são compatíveis: Alltel, AT&T, Sprint, Nextel, Boost, Cellcom, Cellular South, Cincinnati Bell, Cricket/Leap, nTelos, T- Mobile, US Cellular, Verizon Wireless, Virgin Mobile, ACS Wireless, Cellular One of East Central IL, Golden State Cellular, Bluegrass, Centennial, Rural Cellular, GCI, EKN/Appalachian, South Canaan, Illinois Valley Cellular, Viaero Wireless, Immix/Keystone, Inland Cellular, United Wireless, WCC, Cox Communications, Plateau Wireless, Element Mobile, iWireless, Nex-Tech Wireless e Thumb Cellular.

P: As mensagens SMS podem ser enviadas a partir de todas as regiões de datacenter AWS?

Inicialmente, as mensagens SMS só podem ser enviadas de tópicos criados na região Leste dos EUA. No entanto, um aplicativo pode publicar no serviço SNS no Leste dos EUA a partir de qualquer outra região. O suporte de notificação SMS estará disponível em outros países e regiões AWS nos próximos meses.

P: Posso enviar uma mensagem MMS usando o Amazon SMS?

O SNS não é compatível com o sistema de mensagens MMS neste momento.

P: O Amazon SNS pode ser usado para enviar mensagens SMS a partir de outros serviços AWS?

Sim – há um número crescente de serviços AWS que usam o Amazon SNS para enviar notificações de serviço, incluindo o CloudWatch e o S3 Reduced Redundancy. Além de configurar e receber notificações de e-mail para eventos de interesse, você também pode configurar e receber notificações de SMS para os mesmos serviços. Por exemplo, você pode configurar facilmente um tópico para alertas do CloudWatch que receberão eventos de alerta. É possível inscrever um endereço de e-mail ou um número de telefone (ou ambos) para este tópico como pontos finais para os quais as notificações devem ser entregues. Sempre que o CloudWatch detecta uma condição configurada para um alarme de incêndio, ele publicará uma mensagem para o tópico do SNS que, em seguida, será entregue como um e-mail ou SMS ao ponto final apropriado.

P: De que tamanho podem ser as notificações SMS?

As notificações SMS são limitadas pela especificação de protocolo para não terem mais de 140 caracteres por mensagem para ASCII (ou 70 caracteres para Unicode). Uma vez que todas as mensagens SMS enviadas incluem o tópico DisplayName, a soma de tópico DisplayName e a carga da mensagem publicada pode ser de no máximo 140 caracteres (ou 70 caracteres para Unicode). Qualquer mensagem publicada que exceda esse tamanho será truncada na caixa de SMS enviados.

P: As notificações do Amazon SNS podem ser enviadas em formato SMS e e-mail ao mesmo tempo?

Sim – A Amazon pode fornecer notificações por meio de protocolos diferentes ao mesmo tempo. No entanto, as mensagens SMS tem uma restrição de tamanho de 140 caracteres no total. Para e-mail, o limite máximo é de 8K de caracteres. Uma vez que as mensagens devem ser curtas e que abreviações são muitas vezes utilizadas em SMS, o conteúdo formatado para entrega via e-mail pode não ser exibido corretamente quando entregue através de SMS.

P: O Amazon SNS oferecerá suporte a uma funcionalidade maior de SMS ao longo do tempo?

Sim – planejamos adicionar funcionalidade ao longo do tempo para melhorar o suporte SMS e ampliar a variedade de necessidades que podem ser abordadas com SMS usando o Amazon SNS.

P: Qual é o formato da mensagem inicial enviada para confirmar a solicitação de assinatura?

Quando um número de telefone para um ponto final SMS é inscrito para um tópico, o Amazon SNS enviará uma mensagem SMS para o telefone especificado solicitando que a assinatura será confirmada. O formato desta mensagem é o seguinte:
Gostaria de receber mensagens de Foo. Responda Sim Foo para receber mensagens. Resposta Ajuda ou Parar. Podem se aplicar taxas msg&data.

Neste caso, 'Foo' é o DisplayName definido para este tópico. Para confirmar a assinatura, os usuários devem responder com uma mensagem SMS de confirmação: Sim Foo

Isso confirma esta assinatura. Se essa mensagem não foi recebida pelo SNS, nenhuma outra mensagem de Foo será enviada para este número de telefone.

P: Qual é o formato de uma notificação enviada por SMS em resposta a uma mensagem publicada?

Foo> Esta é a carga da mensagem publicada.
onde Foo é o DisplayName definido para este tópico.

P: Qual é o formato de uma resposta a uma mensagem de “Ajuda”?

Em resposta ao recebimento de uma mensagem de ajuda, o SNS responderá com a seguinte mensagem:
Visite http://aws.amazon.com/pt/sns/sms ou ligue para 1-800-xxx-xxxx para obter ajuda. Resposta PARAR para cancelar. Podem se aplicar taxas msg&data.

P: Existe um subsídio de nível gratuito para notificações SMS?

Há um subsídio mensal de nível gratuito para notificações SMS. As primeiras 100 mensagens SMS enviadas mensalmente são gratuitas. Mensagens SMS adicionais custam 0,75 USD a cada 100 mensagens enviadas. Para obter informações adicionais sobre a definição de preços de SMS, visite: http://aws.amazon.com/pt/sns/pricing.

P: Qual é o custo para o recebimento de entregas de mensagem SMS?

A definição de preço para entrega de mensagens SMS para dispositivos móveis é baseada no seu plano de mensagens de texto da sua operadora sem fio.

P: O Amazon SNS atualmente oferece suporte para a entrega de notificação para números de telefone internacionais?

No momento a Amazon SNS só aceitará os números telefônicos dos EUA como pontos finais de assinaturas válidas. O suporte de notificação SMS estará disponível em outros países e regiões AWS nos próximos meses.

P: Há limites quanto ao número de tópicos ou ao número de assinantes por tópico?

O SNS atualmente oferece suporte a até 3.000 tópicos por conta da AWS. Para solicitar um limite maior, entre em contato conosco em http://aws.amazon.com/support

P: Quanto e qual tipo de dados podem estar contidos em uma mensagem?

As mensagens do Amazon SNS podem conter até 64 KB (65.536 bytes) 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).

Observação: Para assinaturas SMS, apenas 140 caracteres serão incluídos na carga de mensagem entregue. Isso incluirá o DisplayName do tópico e o máximo de caracteres da mensagem publicada que possam ser acomodados.