

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á.

# Conceitos básicos da aplicação Scorekeep de exemplo
<a name="scorekeep-tutorial"></a>

**nota**  
Aviso de SDK/Daemon manutenção do X-Ray — Em 25 de fevereiro de 2026, o AWS X-Ray SDKs/Daemon entrará no modo de manutenção, onde AWS limitará as versões do X-Ray SDK e do Daemon para tratar apenas de problemas de segurança. Para obter mais informações sobre a linha do tempo do suporte, consulte [Cronograma de suporte do X-Ray SDK e do Daemon Support](xray-sdk-daemon-timeline.md). Recomendamos migrar para o. OpenTelemetry Para obter mais informações sobre a migração para OpenTelemetry, consulte [Migrando da instrumentação X-Ray para a instrumentação](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html). OpenTelemetry 

Este tutorial usa a `xray-gettingstarted` ramificação do [aplicativo de amostra Scorekeep](xray-scorekeep.md), usada CloudFormation para criar e configurar os recursos que executam o aplicativo de amostra e o daemon X-Ray no Amazon ECS. O aplicativo usa a estrutura Spring para implementar uma API web JSON e AWS SDK para Java para manter os dados no Amazon DynamoDB. Um filtro de servlet no aplicativo instrumenta todas as solicitações recebidas atendidas pelo aplicativo e um manipulador de solicitações no cliente AWS SDK instrumenta chamadas downstream para o DynamoDB.

Você pode seguir este tutorial usando o Console de gerenciamento da AWS ou AWS CLI o.

**Topics**
+ [Pré-requisitos](#xray-gettingstarted-prereqs)
+ [Instale o aplicativo Scorekeep usando CloudFormation](#xray-gettingstarted-deploy)
+ [Gerar dados de rastreamento](#xray-gettingstarted-generate-traces)
+ [Veja o mapa de rastreamento no Console de gerenciamento da AWS](#xray-gettingstarted-console)
+ [Configuração de notificações do Amazon SNS](#xray-gettingstarted-notifications)
+ [Explorar o aplicativo de amostra](#xray-gettingstarted-sample)
+ [Opcional: política de menor privilégio](#xray-gettingstarted-security)
+ [Limpeza](#xray-gettingstarted-cleanup)
+ [Próximas etapas](#xray-gettingstarted-nextsteps)

## Pré-requisitos
<a name="xray-gettingstarted-prereqs"></a>

Este tutorial é usado CloudFormation para criar e configurar os recursos que executam o aplicativo de amostra e o daemon X-Ray. Para instalar e executar o tutorial, você deve cumprir os seguintes pré-requisitos: 

1. Se você usa um usuário do IAM com permissões limitadas, adicione as seguintes políticas de usuário no [console do IAM](https://console.aws.amazon.com/iam): 
   + `AWSCloudFormationFullAccess`— para acessar e usar CloudFormation
   + `AmazonS3FullAccess`— para fazer upload de um arquivo de modelo para CloudFormation usar o Console de gerenciamento da AWS
   + `IAMFullAccess`: para criar os perfis de instância do Amazon ECS e do Amazon EC2
   + `AmazonEC2FullAccess`: para criar os recursos do Amazon EC2
   + `AmazonDynamoDBFullAccess`: para criar as tabelas do DynamoDB
   + `AmazonECS_FullAccess`: para criar recursos do Amazon ECS
   + `AmazonSNSFullAccess`: para criar o tópico do Amazon SNS
   + `AWSXrayReadOnlyAccess`: para obter permissão para visualizar o mapa de serviço e os rastreamentos no console do X-Ray

1. Para executar o tutorial usando o AWS CLI, [instale a CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) versão 2.7.9 ou posterior e configure [a CLI com o](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) usuário da etapa anterior. Certifique-se de que a região esteja configurada ao configurar o AWS CLI com o usuário. Se uma região não estiver configurada, você precisará anexar `--region AWS-REGION` a cada comando da CLI. 

1. O [Git](https://github.com/git-guides/install-git) deve estar instalado para clonar o repositório do aplicativo de exemplo. 

1. Use o exemplo de código a seguir para clonar a `xray-gettingstarted` ramificação do repositório Scorekeep: 

   ```
   git clone https://github.com/aws-samples/eb-java-scorekeep.git xray-scorekeep -b xray-gettingstarted
   ```

## Instale o aplicativo Scorekeep usando CloudFormation
<a name="xray-gettingstarted-deploy"></a>

------
#### [ Console de gerenciamento da AWS ]

**Instale o aplicativo de amostra usando o Console de gerenciamento da AWS**

1. Abra o [console do CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. Escolha **Criar pilha** e selecione **Com novos recursos** no menu suspenso.

1. Na seção **Specify template** (Especificar modelo) escolha **Upload a template file** (Fazer upload de um arquivo de modelo).

1. Selecione **Escolher arquivo**, navegue até a pasta `xray-scorekeep/cloudformation` que foi criada quando você clonou o repositório do Git e escolha o arquivo `cf-resources.yaml`.

1. Escolha **Próximo** para continuar.

1. Insira `scorekeep` na caixa de texto **Nome da pilha** e escolha **Próximo** na parte inferior da página para continuar. Observe que o restante deste tutorial pressupõe que a pilha se chame `scorekeep`.

1. Role até a parte inferior da página **Configurar opções de pilha** e escolha **Próximo** para continuar.

1. Role até a parte inferior da página de **revisão**, escolha a caixa de seleção reconhecendo que CloudFormation pode criar recursos do IAM com nomes personalizados e escolha **Criar** pilha.

1. A CloudFormation pilha agora está sendo criada. O status da pilha será `CREATE_IN_PROGRESS` por cerca de cinco minutos antes de mudar para `CREATE_COMPLETE`. O status será atualizado periodicamente ou você poderá atualizar a página.

------
#### [ AWS CLI ]

**Instale o aplicativo de amostra usando o AWS CLI**

1. Navegue até a pasta `cloudformation` do repositório do `xray-scorekeep` que você clonou anteriormente no tutorial:

   ```
   cd xray-scorekeep/cloudformation/
   ```

1. Digite o seguinte AWS CLI comando para criar a CloudFormation pilha:

   ```
   aws cloudformation create-stack --stack-name scorekeep --capabilities "CAPABILITY_NAMED_IAM" --template-body file://cf-resources.yaml
   ```

1. Espere até que o status da CloudFormation pilha seja`CREATE_COMPLETE`, o que levará cerca de cinco minutos. Use o AWS CLI comando a seguir para verificar o status:

   ```
   aws cloudformation describe-stacks --stack-name scorekeep --query "Stacks[0].StackStatus"
   ```

------

## Gerar dados de rastreamento
<a name="xray-gettingstarted-generate-traces"></a>

O aplicativo de amostra inclui um aplicativo Web front-end. Use o aplicativo web para gerar tráfego para a API e enviar dados de rastreamento para o X-Ray. Primeiro, recupere o URL do aplicativo web usando o Console de gerenciamento da AWS ou a AWS CLI:

------
#### [ Console de gerenciamento da AWS ]

**Encontre o URL do aplicativo usando o Console de gerenciamento da AWS**

1. Abra o [console do CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. Escolha a pilha `scorekeep` na lista.

1. Escolha a guia **Saídas** na página da pilha `scorekeep` e selecione o link do URL `LoadBalancerUrl` para abrir o aplicativo web.

------
#### [ AWS CLI ]

**Encontre o URL do aplicativo usando o AWS CLI**

1. Use o seguinte comando para exibir o URL do aplicativo web:

   ```
   aws cloudformation describe-stacks --stack-name scorekeep --query "Stacks[0].Outputs[0].OutputValue"
   ```

1. Copie esse URL e abra em um navegador para exibir o aplicativo web Scorekeep.

------

**Usar o aplicativo web para gerar dados de rastreamento**

1. Escolha **Create** para criar um usuário e uma sessão.

1. Digite um **game name**, defina **Rules** para **Tic Tac Toe** e, em seguida, clique em **Create** para criar um jogo.

1. Escolha **Play** para iniciar o jogo.

1. Escolha um bloco para fazer um movimento e alterar o estado do jogo.

Cada uma dessas etapas gera solicitações HTTP para a API e chamadas subsequentes para o DynamoDB para ler e gravar dados de usuário, sessão, jogo, movimento e estado.

## Veja o mapa de rastreamento no Console de gerenciamento da AWS
<a name="xray-gettingstarted-console"></a>

Você pode ver o mapa de rastreamento e os traços gerados pelo aplicativo de amostra no X-Ray e nos CloudWatch consoles.

------
#### [ X-Ray console ]

**Usar o console do X-Ray**

1. Abra a página do mapa de serviço do [console do X-Ray](https://console.aws.amazon.com/xray/home#/service-map).

1. O console mostra uma representação do gráfico de serviço que o X-Ray gera com base nos dados de rastreamento enviados pelo aplicativo. Ajuste o período do mapa de serviço, se necessário, para garantir que ele exiba todos os rastreamentos desde que você iniciou o aplicativo web.  
![\[Período do mapa de rastreamento do X-Ray\]](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/xray-console-time-period-15-minutes.png)

O mapa de serviço mostra o cliente do aplicativo web, a API em execução no Amazon ECS e cada tabela do DynamoDB que o aplicativo usa. Cada solicitação para o aplicativo, até um número máximo configurável de solicitações por segundo, é rastreada quando atinge a API, gera solicitações para serviços subsequentes e é concluída.

Você pode escolher qualquer nó no gráfico do serviço para visualizar rastreamentos de solicitações que geraram tráfego nesse nó. No momento, o nó do Amazon SNS é amarelo. Pesquise mais para descobrir o motivo.

![\[Página do mapa de rastreamento do console do X-Ray\]](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/scorekeep-gettingstarted-servicemap-before-ECS.png)


**Para encontrar a causa do erro**

1. Escolha o nó chamado **SNS**. A página de detalhes de nó será exibida.

1. Selecione **View traces (Visualizar rastreamentos)** para acessar a tela **Trace overview (Visão geral do rastreamento)**.

1. Escolha o rastreamento na **Trace list**. Esse rastreamento não tem um método ou URL porque, em vez de ele ser registrado em resposta a uma solicitação recebida, seu registro foi feito durante o startup.  
![\[Escolher um rastreamento da lista de rastreamentos\]](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/scorekeep-gettingstarted-tracelist-sns.png)

1. Escolha o ícone de status de erro no segmento do Amazon SNS na parte inferior da página para abrir a página **Exceções** do subsegmento do SNS.  
![\[Escolha o ícone de status de erro para abrir a página Exceções do subsegmento do Amazon SNS\]](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/scorekeep-gettingstarted-timeline-sns-ecs.png)

1. O X-Ray SDK captura automaticamente exceções lançadas pelos clientes instrumentados de SDK da AWS e registra o rastreamento da pilha.  
![\[A guia Exceptions (Exceções) mostrando as exceções capturadas e o rastreamento de pilha registrado\]](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/scorekeep-gettingstarted-exception.png)

------
#### [ CloudWatch console ]

**Use o CloudWatch console**

1. Abra a página do [mapa de rastreamento X-Ray](https://console.aws.amazon.com/cloudwatch/home#xray:service-map/map) do CloudWatch console.

1. O console mostra uma representação do gráfico de serviço que o X-Ray gera com base nos dados de rastreamento enviados pelo aplicativo. Ajuste o período do mapa de serviço, se necessário, para garantir que ele exiba todos os rastreamentos desde que você iniciou o aplicativo web.  
![\[CloudWatch período de tempo do mapa de rastreamento\]](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/cw-console-service-map-time-period-15-minutes.png)

O mapa de serviço mostra o cliente do aplicativo web, a API em execução no Amazon EC2 e cada tabela do DynamoDB que o aplicativo usa. Cada solicitação para o aplicativo, até um número máximo configurável de solicitações por segundo, é rastreada quando atinge a API, gera solicitações para serviços subsequentes e é concluída.

Você pode escolher qualquer nó no gráfico do serviço para visualizar rastreamentos de solicitações que geraram tráfego nesse nó. No momento, o nó do Amazon SNS é laranja. Pesquise mais para descobrir o motivo.

![\[Página do mapa de rastreamento do console do X-Ray\]](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/scorekeep-gettingstarted-cw-servicemap-before-ECS.png)


**Para encontrar a causa do erro**

1. Escolha o nó chamado **SNS**. O painel de detalhes do nó SNS é exibido abaixo do mapa.

1. Escolha **Visualizar rastreamentos** para acessar a página **Rastreamentos**.

1. Adicione a parte inferior da página e selecione o rastreamento na lista **Rastreamentos**. Esse rastreamento não tem um método ou URL porque, em vez de ele ser registrado em resposta a uma solicitação recebida, seu registro foi feito durante o startup.  
![\[Escolher um rastreamento da lista de rastreamentos\]](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/scorekeep-gettingstarted-cw-tracelist-sns-ecs.png)

1. Escolha o subsegmento do Amazon SNS na parte inferior da linha do tempo dos segmentos e selecione a guia **Exceções** do subsegmento do SNS para visualizar os detalhes da exceção.  
![\[Visualizar a guia Exceções para o subsegmento do Amazon SNS\]](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/scorekeep-gettingstarted-cw-timeline-sns-ecs.png)

------

A causa indica que o endereço de e-mail fornecido em uma chamada de `createSubscription` feita na classe `WebConfig` foi inválida. Na próxima seção, corrigiremos isso.

## Configuração de notificações do Amazon SNS
<a name="xray-gettingstarted-notifications"></a>

O Scorekeep usa o Amazon SNS para enviar notificações quando os usuários concluem um jogo. Quando o aplicativo é iniciado, ele tenta criar uma assinatura para um endereço de e-mail definido em um parâmetro de CloudFormation pilha. Essa chamada está falhando no momento. Configure um e-mail de notificação para habilitar notificações e resolver as falhas destacadas no mapa de serviço.

------
#### [ Console de gerenciamento da AWS ]

**Para configurar as notificações do Amazon SNS usando o Console de gerenciamento da AWS**

1. Abra o [console do CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. Escolha o botão de rádio ao lado do nome da pilha `scorekeep` na lista e selecione **Atualizar**.

1. A opção **Usar modelo atual** deve estar selecionada. Clique em **Próximo** na página **Atualizar pilha**.

1. Encontre o parâmetro **E-mail** na lista e substitua o valor padrão por um endereço de e-mail válido.  
![\[Atualizar configuração de e-mail\]](http://docs.aws.amazon.com/pt_br/xray/latest/devguide/images/scorekeep-cf-email-update.png)

1. Role para o final da página e selecione **Next** (Próximo).

1. Role até a parte inferior da página de **revisão**, escolha a caixa de seleção reconhecendo que CloudFormation pode criar recursos do IAM com nomes personalizados e escolha **Atualizar** pilha.

1. A CloudFormation pilha agora está sendo atualizada. O status da pilha será `UPDATE_IN_PROGRESS` por cerca de cinco minutos antes de mudar para `UPDATE_COMPLETE`. O status será atualizado periodicamente ou você poderá atualizar a página.

------
#### [ AWS CLI ]

**Para configurar as notificações do Amazon SNS usando o AWS CLI**

1. Navegue até a pasta `xray-scorekeep/cloudformation/` que você criou anteriormente e abra o arquivo `cf-resources.yaml` em um editor de texto.

1. Encontre o `Default` valor no parâmetro **Email** e altere-o *UPDATE\$1ME* para um endereço de e-mail válido.

   ```
   Parameters:
     Email:
       Type: String
       Default: UPDATE_ME # <- change to a valid abc@def.xyz email address
   ```

1. Na `cloudformation` pasta, atualize a CloudFormation pilha com o seguinte AWS CLI comando: 

   ```
   aws cloudformation update-stack --stack-name scorekeep --capabilities "CAPABILITY_NAMED_IAM" --template-body file://cf-resources.yaml
   ```

1. Espere até que o status da CloudFormation pilha seja`UPDATE_COMPLETE`, o que levará alguns minutos. Use o AWS CLI comando a seguir para verificar o status:

   ```
   aws cloudformation describe-stacks --stack-name scorekeep --query "Stacks[0].StackStatus"
   ```

------

Quando a atualização for concluída, o Scorekeep será reiniciado e criará uma assinatura para o tópico do SNS. Verifique seu e-mail e confirme a assinatura para ver as atualizações quando você concluir um jogo. Abra o mapa de serviço para verificar se as chamadas para o SNS não estão mais falhando.

## Explorar o aplicativo de amostra
<a name="xray-gettingstarted-sample"></a>

A aplicativo de exemplo é uma API da web HTTP em Java que é configurada para usar o X-Ray SDK para Java. Quando você implanta o aplicativo com o CloudFormation modelo, ele cria as tabelas do DynamoDB, o Amazon ECS Cluster e outros serviços necessários para executar o Scorekeep no ECS. Um arquivo de definição de tarefas para o ECS é criado por meio de CloudFormation. Esse arquivo define as imagens de contêiner usadas por tarefa em um cluster do ECS. Essas imagens são obtidas do ECR público oficial do X-Ray. A imagem de contêiner da API do Scorekeep tem a API compilada com o Gradle. A imagem de contêiner do front-end do Scorekeep atende ao front-end usando o servidor de proxy nginx. Esse servidor encaminha solicitações para caminhos que começam com /api à API.

Para instrumentar solicitações HTTP de entrada, o aplicativo adiciona o `TracingFilter` fornecido pelo SDK.

**Example src/main/java/scorekeep/WebConfig.java - filtro de servlet**  

```
import javax.servlet.Filter;
import [com.amazonaws.xray.javax.servlet.AWSXRayServletFilter](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/javax/servlet/AWSXRayServletFilter.html);
...

@Configuration
public class WebConfig {

  @Bean
  public Filter TracingFilter() {
    return new AWSXRayServletFilter("Scorekeep");
  }
...
```

Esse filtro envia dados de rastreamento sobre todas as solicitações de entrada que o aplicativo atende, incluindo URL de solicitação, método, status de resposta, horário de início e de término.

A aplicativo também faz chamadas subsequentes para o DynamoDB usando o AWS SDK para Java. Para instrumentar essas chamadas, o aplicativo simplesmente usa os submódulos AWS relacionados ao SDK como dependências, e o X-Ray SDK for Java instrumenta automaticamente todos os clientes do SDK. AWS 

A aplicativo usa o `Docker` para criar o código-fonte na instância com a `Gradle Docker Image` e um arquivo `Scorekeep API Dockerfile` para executar o JAR executável que o Gradle gera no respectivo `ENTRYPOINT`. 

**Example Exemplo do uso do Docker para criar imagem do Docker por meio do Gradle**  

```
docker run --rm -v /PATH/TO/SCOREKEEP_REPO/home/gradle/project -w /home/gradle/project gradle:4.3 gradle build
```

**Example Exemplo ENTRYPOINT do Dockerfile**  

```
ENTRYPOINT [ "sh", "-c", "java -Dserver.port=5000 -jar scorekeep-api-1.0.0.jar" ]
```

O arquivo `build.gradle` baixa os submódulos do SDK a partir do Maven durante a compilação declarando-os como dependências.

**Example build.gradle -- dependências**  

```
...
dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile('org.springframework.boot:spring-boot-starter-test')
    compile('com.amazonaws:aws-java-sdk-dynamodb')
    compile("com.amazonaws:aws-xray-recorder-sdk-core")
    compile("com.amazonaws:aws-xray-recorder-sdk-aws-sdk")
    compile("com.amazonaws:aws-xray-recorder-sdk-aws-sdk-instrumentor")
    ...
}
dependencyManagement {
    imports {
        mavenBom("com.amazonaws:aws-java-sdk-bom:1.11.67")
        mavenBom("com.amazonaws:aws-xray-recorder-sdk-bom:2.11.0")
    }
}
```

Os submódulos core, AWS SDK e AWS SDK Instrumentor são tudo o que é necessário para instrumentar automaticamente qualquer chamada downstream feita com o SDK. AWS 

Para retransmitir os dados do segmento bruto para a API do X-Ray, o daemon do X-Ray é necessário para escutar o tráfego na porta UDP 2000. Para fazer isso, o aplicativo executa o daemon do X-Ray em um contêiner que é implantado com o aplicativo Scorekeep no ECS como um *contêiner auxiliar*. Confira o tópico [Daemon do X-Ray](xray-daemon.md) para obter mais informações.

**Example Definição do contêiner do daemon do X-Ray em uma definição de tarefa do ECS**  

```
...
Resources:
  ScorekeepTaskDefinition:
    Type: AWS::ECS::TaskDefinition
    Properties: 
      ContainerDefinitions: 
      ...
      
      - Cpu: '256'
        Essential: true
        Image: amazon/aws-xray-daemon
        MemoryReservation: '128'
        Name: xray-daemon
        PortMappings: 
          - ContainerPort: '2000'
            HostPort: '2000'
            Protocol: udp
      ...
```

O X-Ray SDK para Java oferece uma classe chamada `AWSXRay`, que fornece o registrador global, um `TracingHandler` que você pode usar para instrumentar seu código. Você pode configurar o gravador global para personalizar o `AWSXRayServletFilter` que cria segmentos para chamadas HTTP de entrada. A amostra inclui um bloco estático na classe `WebConfig` que configura o registrador global com plugins e regras de amostragem.

**Example src/main/java/scorekeep/WebConfig.java - gravador**  

```
import com.amazonaws.xray.AWSXRay;
import com.amazonaws.xray.AWSXRayRecorderBuilder;
import com.amazonaws.xray.javax.servlet.AWSXRayServletFilter;
import com.amazonaws.xray.plugins.ECSPlugin;
import com.amazonaws.xray.plugins.EC2Plugin;
import com.amazonaws.xray.strategy.sampling.LocalizedSamplingStrategy;
...

@Configuration
public class WebConfig {
  ...
  
  static {
    AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder.standard().withPlugin(new ECSPlugin()).withPlugin(new EC2Plugin());

    URL ruleFile = WebConfig.class.getResource("/sampling-rules.json");
    builder.withSamplingStrategy(new LocalizedSamplingStrategy(ruleFile));

    AWSXRay.setGlobalRecorder(builder.build());
    ...
    
  }
}
```

Este exemplo usa o builder para carregar regras de amostragem a partir de um arquivo chamado `sampling-rules.json`. As regras de amostragem determinam a taxa na qual o SDK registra segmentos para as solicitações recebidas. 

**Example src/main/java/resources/sampling-rules.json**  

```
{
  "version": 1,
  "rules": [
    {
      "description": "Resource creation.",
      "service_name": "*",
      "http_method": "POST",
      "url_path": "/api/*",
      "fixed_target": 1,
      "rate": 1.0
    },
    {
      "description": "Session polling.",
      "service_name": "*",
      "http_method": "GET",
      "url_path": "/api/session/*",
      "fixed_target": 0,
      "rate": 0.05
    },
    {
      "description": "Game polling.",
      "service_name": "*",
      "http_method": "GET",
      "url_path": "/api/game/*/*",
      "fixed_target": 0,
      "rate": 0.05
    },
    {
      "description": "State polling.",
      "service_name": "*",
      "http_method": "GET",
      "url_path": "/api/state/*/*/*",
      "fixed_target": 0,
      "rate": 0.05
    }
  ],
  "default": {
    "fixed_target": 1,
    "rate": 0.1
  }
}
```

O arquivo de regras de amostragem define quatro regras de amostragem personalizadas e a regra padrão. Para cada solicitação de entrada, o SDK avalia as regras personalizadas na ordem em que são definidas. O SDK aplica a primeira regra que corresponde ao método, ao caminho e ao nome do serviço da solicitação. Para o Scorekeep, a primeira regra detecta todas as solicitações POST (chamadas de criação de recursos) aplicando um destino fixo de uma solicitação por segundo e uma taxa de 1.0 ou 100% de solicitações após o destino fixo ser alcançado.

As outras três regras personalizadas se aplicam a uma taxa fixa de 5%, sem destino fixo para leituras de estado, jogo e sessão (solicitações GET). Isso minimiza o número de rastreamentos das chamadas periódicas que o front-end faz automaticamente a cada poucos segundos para garantir que o conteúdo esteja atualizado. Para todas as outras solicitações, o arquivo define uma taxa padrão de uma solicitação por segundo e uma taxa de 10%.

O aplicativo de amostra também mostra como usar recursos avançados, tais como instrumentação de cliente do SDK manual, criação de subsegmentos adicionais e chamadas HTTP de saída. Para obter mais informações, consulte [AWS X-Ray aplicação de amostra](xray-scorekeep.md).

## Opcional: política de menor privilégio
<a name="xray-gettingstarted-security"></a>

 Os contêineres do ECS do Scorekeep acessam recursos usando políticas de acesso total, como `AmazonSNSFullAccess` e `AmazonDynamoDBFullAccess`. Usar políticas de acesso total não é a prática recomendada para aplicativos de produção. O exemplo a seguir atualiza a política do IAM do DynamoDB para melhorar a segurança do aplicativo. Para saber mais sobre as melhores práticas de segurança nas políticas do IAM, consulte [Gerenciamento de identidade e acesso para AWS X-Ray](security-iam.md).

**Example modelo cf-resources.yaml Definição de função ECSTask**  

```
ECSTaskRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"		 	 	 
        Statement: 
          - 
            Effect: "Allow"
            Principal: 
              Service: 
                - "ecs-tasks.amazonaws.com"
            Action: 
              - "sts:AssumeRole"
      ManagedPolicyArns:
        - "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess"
        - "arn:aws:iam::aws:policy/AmazonSNSFullAccess"
        - "arn:aws:iam::aws:policy/AWSXrayFullAccess"
      RoleName: "scorekeepRole"
```

Para atualizar sua política, primeiro identifique os ARNs dos recursos do DynamoDB. Em seguida, use o ARN em uma política personalizada do IAM. Por fim, aplique essas políticas ao perfil de instância.

**Para identificar o ARN do seu recurso do DynamoDB:**

1. Abra o [console do DynamoDB](https://console.aws.amazon.com/dynamodbv2).

1. Selecione **Tabelas** na barra de navegação à esquerda.

1. Escolha qualquer uma das opções `scorekeep-*` para exibir a página de detalhes da tabela.

1. Na guia **Visão geral**, escolha **Informações adicionais** para expandir a seção e visualizar o nome do recurso da Amazon (ARN). Copie o valor.

1. Insira o ARN na política do IAM a seguir, substituindo os valores `AWS_REGION` e `AWS_ACCOUNT_ID` por sua região específica e ID da conta. Essa nova política permite somente as ações especificadas, em vez da política `AmazonDynamoDBFullAccess`, que permite qualquer ação.  
**Example**  

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "ScorekeepDynamoDB",
               "Effect": "Allow",
               "Action": [
                   "dynamodb:PutItem",
                   "dynamodb:UpdateItem",
                   "dynamodb:DeleteItem",
                   "dynamodb:GetItem",
                   "dynamodb:Scan",
                   "dynamodb:Query"
               ],
               "Resource": "arn:aws:dynamodb:us-east-1:111122223333:table/scorekeep-*"
           }
       ]
   }
   ```

------

   As tabelas criadas pelo aplicativo seguem uma convenção de nomenclatura consistente. Você pode usar o formato `scorekeep-*` para indicar todas as tabelas do Scorekeep.

**Alterar a política do IAM**

1. Abra o [Perfil da tarefa do Scorekeep (scorekeepRole)](https://console.aws.amazon.com/iamv2/home#/roles/details/scorekeepRole) no console do IAM.

1. Marque a caixa de seleção ao lado da política `AmazonDynamoDBFullAccess` e selecione **Remover** para remover essa política. 

1. Escolha **Adicionar permissões**, depois **Anexar políticas** e, finalmente, **Criar política**.

1. Escolha a guia **JSON** e cole a política criada acima.

1. Na parte inferior da página, selecione **Próximo: Tags**.

1. Escolha **Próximo: Revisar** na parte inferior da página.

1. Para **Nome**, atribua um nome para a política.

1. Escolha **Criar política** na parte inferior da página. 

1. Anexe a política recém-criada ao perfil `scorekeepRole`. Pode levar alguns minutos para que a política anexada entre em vigor.

Se você anexou a nova política à `scorekeepRole` função, deverá desanexá-la antes de excluir a CloudFormation pilha, pois essa política anexada impedirá que a pilha seja excluída. A política pode ser desanexada automaticamente excluindo a política.

**Remover sua política do IAM personalizada**

1. Abra o [console do IAM](https://console.aws.amazon.com/iam).

1. Escolha **Políticas** na barra de navegação à esquerda.

1. Pesquise o nome da política personalizada que você criou anteriormente nesta seção e escolha o botão de rádio ao lado do nome da política para destacá-la.

1. Escolha o menu suspenso **Ações** e selecione **Excluir**.

1. Digite o nome da política personalizada e escolha **Excluir** para confirmar a exclusão. Isso separará automaticamente a política do perfil `scorekeepRole`.

## Limpeza
<a name="xray-gettingstarted-cleanup"></a>

Siga estas etapas para excluir os recursos do aplicativo Scorekeep:

**nota**  
Se você criou e anexou políticas personalizadas usando a seção anterior deste tutorial, deverá remover a política do `scorekeepRole` antes de excluir a CloudFormation pilha.

------
#### [ Console de gerenciamento da AWS ]

**Exclua o aplicativo de amostra usando o Console de gerenciamento da AWS**

1. Abra o [console do CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. Escolha o botão de opção ao lado do nome da pilha `scorekeep` na lista e selecione **Excluir**.

1. A CloudFormation pilha agora está sendo excluída. O status da pilha permanecerá `DELETE_IN_PROGRESS` por alguns minutos até que todos os recursos sejam excluídos. O status será atualizado periodicamente ou você poderá atualizar a página.

------
#### [ AWS CLI ]

**Exclua o aplicativo de amostra usando o AWS CLI**

1. Digite o seguinte AWS CLI comando para excluir a CloudFormation pilha:

   ```
   aws cloudformation delete-stack --stack-name scorekeep
   ```

1. Espere até que a CloudFormation pilha não exista mais, o que levará cerca de cinco minutos. Use o AWS CLI comando a seguir para verificar o status:

   ```
   aws cloudformation describe-stacks --stack-name scorekeep --query "Stacks[0].StackStatus"
   ```

------

## Próximas etapas
<a name="xray-gettingstarted-nextsteps"></a>

Saiba mais sobre o X-Ray no próximo capítulo, [AWS X-RayConceitos do](xray-concepts.md).

Para instrumentar seu próprio aplicativo, saiba mais sobre o X-Ray SDK for Java ou um dos outros X-Ray SDKs:
+ **X-Ray SDK para Java**: [AWS X-Ray SDK for Java](xray-sdk-java.md)
+ **X-Ray SDK para Node.js**: [AWS X-Ray SDK para Node.js](xray-sdk-nodejs.md)
+ **X-Ray SDK para .NET**: [AWS X-Ray SDK para .NET](xray-sdk-dotnet.md)

Para executar o daemon X-Ray localmente ou ligado AWS, consulte. [AWS X-Ray daemon](xray-daemon.md)

Para contribuir com o aplicativo de amostra em GitHub, consulte [eb-java-scorekeep](https://github.com/awslabs/eb-java-scorekeep/tree/xray-gettingstarted).