

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

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