

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

# Configurar o console do Gremlin para conectar-se a uma instância de banco de dados do Neptune
<a name="access-graph-gremlin-console"></a>

O Gremlin Console permite que você experimente TinkerPop gráficos e consultas em um ambiente REPL (loop). read-eval-print 

## Instalar o console do Gremlin e conectar-se a ele da maneira usual
<a name="access-graph-gremlin-console-usual-connect"></a>

Você pode usar o Gremlin Console para conectar-se a um banco de dados de gráficos remoto. A seção a seguir descreve a instalação e a configuração do console do Gremlin para conectar-se remotamente a uma instância de banco de dados do Neptune. Você deve seguir estas instruções em uma instância do Amazon EC2 na mesma nuvem privada virtual (VPC) que a instância de banco de dados do Neptune.

Para obter ajuda na conexão com Neptune SSL/TLS com (o que é obrigatório), consulte. [Configuração de SSL/TLS](access-graph-gremlin-java.md#access-graph-gremlin-java-ssl)

**nota**  
Se você tiver a [autenticação do IAM habilitada](iam-auth-enable.md) no cluster de banco de dados do Neptune, siga as instruções em [Conectar-se a bancos de dados do Amazon Neptune usando a autenticação do IAM com o console do Gremlin](iam-auth-connecting-gremlin-console.md) para instalar o console do Gremlin e não as instruções aqui.

**Como instalar o console do Gremlin e se conectar ao Neptune**

1. Os binários do console do Gremlin exigem o Java 8 ou 11. Essas instruções pressupõem o uso do Java 11. Você pode instalar o Java 11 na instância do EC2 da seguinte forma:
   + Se você estiver usando o [Amazon Linux 2 (AL2)](https://aws.amazon.com/amazon-linux-2):

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Se você estiver usando o [Amazon Linux 2023 (AL2023)](https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html):

     ```
     sudo yum install java-11-amazon-corretto-devel
     ```
   + Para outras distribuições, use qualquer uma das seguintes opções que seja apropriada:

     ```
     sudo yum install java-11-openjdk-devel
     ```

     ou:

     ```
     sudo apt-get install openjdk-11-jdk
     ```

1. Insira o seguinte para definir o Java 11 como o runtime padrão na instância do EC2.

   ```
   sudo /usr/sbin/alternatives --config java
   ```

   Quando solicitado, insira o número do Java 11.

1. Baixe a versão apropriada do Gremlin Console no site do Apache. Você pode verificar e [Acessar o grafo do Neptune com o Gremlin](access-graph-gremlin.md) determinar qual versão do Gremlin sua versão do Neptune suporta. Por exemplo, se você precisar da versão 3.7.2, poderá baixar o [console Gremlin](https://archive.apache.org/dist/tinkerpop/3.7.2/apache-tinkerpop-gremlin-console-3.7.2-bin.zip) do site do [Apache Tinkerpop para sua instância](https://tinkerpop.apache.org/download.html) do EC2 da seguinte forma:

   ```
   wget https://archive.apache.org/dist/tinkerpop/3.7.2/apache-tinkerpop-gremlin-console-3.7.2-bin.zip
   ```

1. Descompacte o arquivo zip do Gremlin Console.

   ```
   unzip apache-tinkerpop-gremlin-console-3.7.2-bin.zip
   ```

1. Altere os diretórios para o diretório descompactado.

   ```
   cd apache-tinkerpop-gremlin-console-3.7.2
   ```

1. No subdiretório `conf` do diretório extraído, crie um arquivo chamado `neptune-remote.yaml` com o seguinte texto. *your-neptune-endpoint*Substitua pelo nome do host ou endereço IP da sua instância de banco de dados Neptune. Os colchetes (`[ ]`) são necessários.
**nota**  
Para obter informações sobre como localizar o nome do host da instância de banco de dados do Neptune, consulte a seção [Conectar-se a endpoints do Amazon Neptune](feature-overview-endpoints.md).

   ```
   hosts: [your-neptune-endpoint]
   port: 8182
   connectionPool: { enableSsl: true }
   serializer: { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1,
                 config: { serializeResultToString: true }}
   ```
**nota**  
 Os serializadores foram movidos do módulo `gremlin-driver` para o novo módulo `gremlin-util` na versão 3.7.0. O pacote mudou de org.apache.tinkerpop.gremlin.driver.ser para org.apache.tinkerpop.gremlin.util.ser. 

1. Em um terminal, navegue até o diretório do Gremlin Console (`apache-tinkerpop-gremlin-console-3.7.2`) e, em seguida, insira o comando a seguir para executar o Gremlin Console.

   ```
   bin/gremlin.sh
   ```

   A seguinte saída deverá ser mostrada:

   ```
            \,,,/
            (o o)
   -----oOOo-(3)-oOOo-----
   plugin activated: tinkerpop.server
   plugin activated: tinkerpop.utilities
   plugin activated: tinkerpop.tinkergraph
   gremlin>
   ```

   Agora você está no prompt do `gremlin>`. Você inserirá as etapas restantes nesse prompt.

1. No prompt `gremlin>`, insira o seguinte para conectar-se a instâncias de banco de dados do Neptune.

   ```
   :remote connect tinkerpop.server conf/neptune-remote.yaml
   ```

1. No prompt `gremlin>`, insira o seguinte para alternar para modo remoto. Isso envia todas as consultas do Gremlin para a conexão remota.

   ```
   :remote console
   ```

1. Insira o seguinte para enviar uma consulta para o Gremlin Graph.

   ```
   g.V().limit(1)
   ```

1. Ao terminar, insira o seguinte para sair do Gremlin Console.

   ```
   :exit
   ```

**nota**  
Use um ponto e vírgula (`;`) ou um caractere de nova linha (`\n`) para separar cada instrução.   
Cada travessia anterior à travessia final deve terminar em `next()` a ser executada. Somente os dados da travessia final são retornados.

Para obter mais informações sobre a implementação do Gremlin no Neptune, consulte [Conformidade com os padrões do Gremlin no Amazon Neptune](access-graph-gremlin-differences.md).

# Uma forma alternativa de se conectar ao console do Gremlin
<a name="access-graph-gremlin-console-connect"></a>

**Desvantagens da abordagem de conexão normal**

A forma mais comum de se conectar ao console do Gremlin é a explicada acima, usando comandos como este no prompt `gremlin>`:

```
gremlin> :remote connect tinkerpop.server conf/(file name).yaml
gremlin> :remote console
```

Isso funciona bem e permite que você envie consultas ao Neptune. No entanto, retira o mecanismo de script Groovy do circuito, então, o Neptune trata todas as consultas como Gremlin puro. Isso significa que os seguintes formatos de consulta falham:

```
gremlin> 1 + 1
gremlin> x = g.V().count()
```

O mais próximo que você pode chegar de usar uma variável quando conectado dessa maneira é usar a variável `result` mantida pelo console e enviar a consulta usando `:>`, desta forma:

```
gremlin> :remote console
==>All scripts will now be evaluated locally - type ':remote console' to return to remote mode for Gremlin Server - [krl-1-cluster.cluster-ro-cm9t6tfwbtsr.us-east-1.neptune.amazonaws.com/172.31.19.217:8182]
gremlin> :> g.V().count()
==>4249

gremlin> println(result)
[result{object=4249 class=java.lang.Long}]

gremlin> println(result['object'])
[4249]
```

 

**Uma forma diferente de se conectar**

Também é possível conectar-se ao console do Gremlin de outra maneira talvez mais agradável, desta forma:

```
gremlin> g = traversal().withRemote('conf/neptune.properties')
```

Aqui `neptune.properties` assume o seguinte formato:

```
gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection
gremlin.remote.driver.clusterFile=conf/my-cluster.yaml
gremlin.remote.driver.sourceName=g
```

O arquivo `my-cluster.yaml` deve ser semelhante a este:

```
hosts: [my-cluster-abcdefghijk.us-east-1.neptune.amazonaws.com]
port: 8182
serializer: { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1,
              config: { serializeResultToString: false } }
connectionPool: { enableSsl: true }
```

**nota**  
 Os serializadores foram movidos do módulo `gremlin-driver` para o novo módulo `gremlin-util` na versão 3.7.0. O pacote mudou de org.apache.tinkerpop.gremlin.driver.ser para org.apache.tinkerpop.gremlin.util.ser. 

Configurar a conexão do console do Gremlin dessa forma permite fazer os seguintes tipos de consulta com êxito:

```
gremlin> 1+1
==>2

gremlin> x=g.V().count().next()
==>4249

gremlin> println("The answer was ${x}")
The answer was 4249
```

Você pode evitar a exibição do resultado da seguinte maneira:

```
gremlin> x=g.V().count().next();[]
gremlin> println(x)
4249
```

Todas as formas comuns de consulta (sem a etapa terminal) continuam funcionando. Por exemplo:

```
gremlin> g.V().count()
==>4249
```

Você pode até usar a etapa [https://tinkerpop.apache.org/docs/current/reference/#io-step](https://tinkerpop.apache.org/docs/current/reference/#io-step) para carregar um arquivo com esse tipo de conexão.

## Autenticação do IAM
<a name="access-graph-gremlin-console-iam"></a>

O Neptune [oferece suporte à autenticação do IAM](iam-auth-enable.md) para controlar o acesso ao seu cluster de banco de dados. Se você tiver a autenticação do IAM ativada, precisará usar a assinatura Signature versão 4 para autenticar suas solicitações. Para obter instruções detalhadas e exemplos de código para se conectar a partir do console Gremlin, consulte. [Conectar-se a bancos de dados do Amazon Neptune usando a autenticação do IAM com o console do Gremlin](iam-auth-connecting-gremlin-console.md)