

# DAX SDK for Go
<a name="DAX.client.run-application-go"></a>

Siga este procedimento para executar o exemplo do SDK for Go para Amazon DynamoDB Accelerator (DAX) em sua instância do Amazon EC2.

**Para executar o exemplo do SDK for Go para DAX**

1. Configure o SDK for Go em sua instância do Amazon EC2:

   1. Instale a linguagem de programação Go (`Golang`).

      ```
      sudo yum install -y golang
      ```

   1. Verifique se o Golang está instalado e funcionando corretamente.

      ```
      go version
      ```

      Uma mensagem semelhante a esta deve ser mostrada.

      ```
      go version go1.15.5 linux/amd64
      ```

      As instruções restantes dependem do suporte do módulo, o qual se tornou o padrão com o Go versão 1.13.

1. Instale o aplicativo de exemplo do Golang.

   ```
   go get github.com/aws-samples/aws-dax-go-sample
   ```

1. Execute os seguintes programas do Golang. O primeiro programa cria uma tabela do DynamoDB chamada `TryDaxGoTable`. O segundo programa grava dados na tabela.

   ```
   go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command create-table
   ```

   ```
   go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command put-item
   ```

1. Execute os seguintes programas do Golang.

   ```
   go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command get-item
   ```

   ```
   go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command query
   ```

   ```
   go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command scan
   ```

   Anote as informações de tempo: o número de milissegundos necessários para os testes `GetItem`, `Query` e `Scan`.

1. Na etapa anterior, você executou os programas no endpoint do DynamoDB. Agora, execute os programas novamente, mas, desta vez, as operações `GetItem`, `Query` e `Scan` são processadas pelo cluster do DAX.

   Para determinar o endpoint do cluster do DAX, escolha uma das seguintes opções:
   + **Usando o console do DynamoDB**: escolha seu cluster do DAX. O endpoint do cluster é mostrado no console, como no exemplo a seguir.

     ```
     dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
     ```
   + **Usando a AWS CLI**: insira o comando a seguir.

     ```
     aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"
     ```

     O endpoint do cluster é mostrado na saída, como no exemplo a seguir.

     ```
     {
         "Address": "my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com",
         "Port": 8111,
         "URL": "dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com"
     }
     ```

   Agora, execute os programas novamente, mas, desta vez, especifique o endpoint do cluster como um parâmetro de linha de comando.

   ```
   go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dax -command get-item -endpoint my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com:8111
   ```

   ```
   go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dax -command query -endpoint my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com:8111
   ```

   ```
   go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dax -command scan -endpoint my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com:8111
   ```

   Observe o restante da saída e anote as informações de tempo. Os tempos decorridos para `GetItem`, `Query` e `Scan` devem ser significativamente mais baixos com o DAX do que com o DynamoDB.

1. Execute o seguinte programa Golang para excluir a `TryDaxGoTable`.

   ```
   go run ~/go/pkg/mod/github.com/aws-samples/aws-dax-go-sample@v1.0.2/try_dax.go -service dynamodb -command delete-table
   ```