

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

# Amazon SNS e AWS X-Ray
<a name="xray-services-sns"></a>

Você pode usar o AWS X-Ray com o Amazon Simple Notification Service (Amazon SNS) para rastrear e analisar solicitações à medida que elas passam pelos tópicos do SNS até os [serviços de assinatura compatíveis com o SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-active-tracing.html). Use o rastreamento do X-Ray com o Amazon SNS para analisar latências em mensagens e serviços de back-end, como quanto tempo uma solicitação permanece em um tópico e quanto tempo leva para entregar a mensagem a cada uma das assinaturas do tópico. O Amazon SNS permite o rastreamento do X-Ray para tópicos comuns e FIFO.

Se você publicar em um tópico do Amazon SNS usando um serviço que já está instrumentado com o X-Ray, o Amazon SNS passará o contexto de rastreamento do publicador para os assinantes. Além disso, você pode ativar o rastreamento ativo para enviar dados de segmentos sobre suas assinaturas do Amazon SNS ao X-Ray para mensagens publicadas de um cliente do SNS instrumentado. [Ative o rastreamento ativo](https://docs.aws.amazon.com/sns/latest/dg/sns-active-tracing.html) para um tópico do Amazon SNS usando o console do Amazon SNS ou usando a CLI ou a API do Amazon SNS. Consulte [Instrumentar sua aplicação](xray-instrumenting-your-app.md) para obter mais informações sobre como instrumentar clientes do SNS. 

## Configurar o rastreamento ativo do Amazon SNS
<a name="xray-services-sns-configuration"></a>

Você pode usar o console do Amazon SNS ou a AWS CLI ou o SDK para configurar o rastreamento ativo do Amazon SNS. 

Ao usar o console do Amazon SNS, o Amazon SNS tenta criar as permissões necessárias para que o SNS chame o X-Ray. A tentativa poderá ser rejeitada se você não tiver permissões suficientes para modificar as políticas de recursos do X-Ray. Para obter mais informações sobre o controle de acesso do Amazon SNS, consulte [Identity and access management in Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-authentication-and-access-control.html) e [Casos de exemplo para o controle de acesso do Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html) no Guia do desenvolvedor do Amazon Simple Notification Service. Para obter mais informações sobre como ativar o rastreamento ativo usando o console do Amazon SNS, consulte [Habilitar o rastreamento ativo em um tópico do Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-active-tracing.html) no Guia do desenvolvedor do Amazon Simple Notification Service. 

Ao utilizar a AWS CLI ou o SDK para ativar o rastreamento ativo, você deve configurar manualmente as permissões usando políticas baseadas em recursos. Use [https://docs.aws.amazon.com/xray/latest/api/API_PutResourcePolicy.html](https://docs.aws.amazon.com/xray/latest/api/API_PutResourcePolicy.html) para configurar o X-Ray com a política baseada em recursos necessária para permitir que o Amazon SNS envie rastreamentos ao X-Ray. 

**Example Exemplo de política baseada em recursos do X-Ray para rastreamento ativo do Amazon SNS**  
Este exemplo de documento de política especifica as permissões que o Amazon SNS precisa para enviar dados de rastreamento ao X-Ray:  

```
{
    Version: "2012-10-17",		 	 	 
    Statement: [
      {
        Sid: "SNSAccess",
        Effect: Allow,
        Principal: {
          Service: "sns.amazonaws.com",
        },
        Action: [
          "xray:PutTraceSegments",
          "xray:GetSamplingRules",
          "xray:GetSamplingTargets"
        ],
        Resource: "*",
        Condition: {
          StringEquals: {
            "aws:SourceAccount": "{{account-id}}"
          },
          StringLike: {
            "aws:SourceArn": "arn:{{partition}}:sns:{{region}}:{{account-id}}:{{topic-name}}"
          }
        }
      }
    ]
  }
```
Use a CLI para criar uma política baseada em recursos que conceda permissões ao Amazon SNS para enviar dados de rastreamento ao X-Ray:   

```
aws xray put-resource-policy --policy-name MyResourcePolicy --policy-document '{ "Version": "2012-10-17",		 	 	  "Statement": [ { "Sid": "SNSAccess", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": [ "xray:PutTraceSegments", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "{{account-id}}" }, "StringLike": { "aws:SourceArn": "arn:{{partition}}:sns:{{region}}:{{account-id}}:{{topic-name}}" } } } ] }'
```
Para usar esses exemplos, substitua {{`partition`}}, {{`region`}}, {{`account-id`}} e {{`topic-name`}} por sua partição, região, ID da conta e nome de tópico do Amazon SNS específicos da AWS. Para conceder permissão a todos os tópicos do Amazon SNS para enviar dados de rastreamento ao X-Ray, substitua o nome do tópico por `*`. 

## Visualize rastreamentos de publicadores e assinantes do Amazon SNS no console do X-Ray
<a name="xray-services-sns-view-traces"></a>

Use o console do X-Ray para visualizar um mapa de serviço, um mapa de rastreamento e detalhes de rastreamento que exibem uma visão conectada dos publicadores e assinantes do Amazon SNS. Quando o rastreamento ativo do Amazon SNS é ativado para um tópico, o mapa do serviço do X-Ray e o mapa de rastreamento exibem nós conectados para os publicadores do Amazon SNS, o tópico do Amazon SNS e os assinantes subsequentes: 

![Mapa de serviço com publicador e assinante do Amazon SNS](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/services-sns-activetracing-map.png)


Depois que você escolhe um rastreamento que abrange um publicador e assinante do Amazon SNS, a página de detalhes do rastreamento X-Ray exibe um mapa de rastreamento e uma linha do tempo de segmento. 

**Example Exemplo de linha do tempo com publicador e assinante do Amazon SNS**  
Este exemplo mostra uma linha do tempo que inclui um publicador do Amazon SNS que envia uma mensagem a um tópico do Amazon SNS, o qual é processado por um assinante do Amazon SQS.   

![Linha do tempo do segmento com publicador e assinante do Amazon SNS](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/services-sns-activetracing-timeline.png)


O exemplo de linha do tempo acima fornece detalhes sobre o fluxo de mensagens do Amazon SNS: 
+ O segmento **SNS** representa a duração do percurso de ida e volta da chamada de API `Publish` do cliente.
+ O segmento **myTopic** representa a latência da resposta do Amazon SNS à solicitação de publicação.
+ O subsegmento **SQS** representa o tempo de ida e volta que o Amazon SNS leva para publicar a mensagem em uma fila do Amazon SQS.
+ O tempo entre o segmento **myTopic** e o subsegmento **SQS** representa o tempo que a mensagem passa no sistema do Amazon SNS.

**Example Exemplo de linha do tempo com mensagens em lote do Amazon SNS**  
Se várias mensagens do Amazon SNS forem agrupadas em um único rastreamento, a linha do tempo do segmento exibirá segmentos que representam cada mensagem processada.   

![Linha do tempo do segmento para mensagens em lote do Amazon SNS](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/services-sns-activetracing-batch-timeline.png)
