

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

# Usar .NET para conectar-se a uma instância de banco de dados do Neptune
<a name="access-graph-gremlin-dotnet"></a>

**Importante**  
Escolher a versão correta do driver Apache TinkerPop Gremlin é fundamental para a compatibilidade com a versão do motor Neptune. Usar uma versão incompatível pode resultar em falhas de conexão ou comportamento inesperado. Para obter informações detalhadas sobre compatibilidade de versões, consulte[Acessar o grafo do Neptune com o Gremlin](access-graph-gremlin.md).

A seção a seguir contém um exemplo de código escrito em C\$1 que se conecta a uma instância de banco de dados do Neptune e executa um percurso do Gremlin.

As conexões com o Amazon Neptune devem ser de uma instância do Amazon EC2 na mesma nuvem privada virtual (VPC) que a instância de banco de dados do Neptune. Este exemplo de código foi testado em uma instância do Amazon EC2 executando o Ubuntu.

Antes de começar, faça o seguinte:
+ Instale o .NET na instância do Amazon EC2. Para obter instruções para instalação do .NET em vários sistemas operacionais, inclusive o Windows, o Linux e o macOS, consulte [Conceitos básicos do .NET](https://www.microsoft.com/net/learn/get-started/).
+ Instale o Gremlin.NET executando `dotnet add package gremlin.net` para seu pacote. Para obter mais informações, consulte [Gremlin.net na documentação](https://tinkerpop.apache.org/docs/current/reference/#gremlin-DotNet). TinkerPop 



**Como conectar-se ao Neptune usando o Gremlin.NET**

1. Crie um novo projeto .NET.

   ```
   dotnet new console -o gremlinExample
   ```

1. Altere os diretórios para o diretório do novo projeto.

   ```
   cd gremlinExample
   ```

1. Copie o seguinte no arquivo `Program.cs`. *your-neptune-endpoint*Substitua pelo endereço da sua instância de banco de dados Neptune.

   Para obter informações sobre como localizar o endereço da instância de banco de dados do Neptune, consulte a seção [Conectar-se a endpoints do Amazon Neptune](feature-overview-endpoints.md).

   ```
   using System;
   using System.Threading.Tasks;
   using System.Collections.Generic;
   using Gremlin.Net;
   using Gremlin.Net.Driver;
   using Gremlin.Net.Driver.Remote;
   using Gremlin.Net.Structure;
   using static Gremlin.Net.Process.Traversal.AnonymousTraversalSource;
   namespace gremlinExample
   {
     class Program
     {
       static void Main(string[] args)
       {
         try
         {
           var endpoint = "your-neptune-endpoint";
           // This uses the default Neptune and Gremlin port, 8182
           var gremlinServer = new GremlinServer(endpoint, 8182, enableSsl: true );
           var gremlinClient = new GremlinClient(gremlinServer);
           var remoteConnection = new DriverRemoteConnection(gremlinClient, "g");
           var g = Traversal().WithRemote(remoteConnection);
           g.AddV("Person").Property("Name", "Justin").Iterate();
           g.AddV("Custom Label").Property("name", "Custom id vertex 1").Iterate();
           g.AddV("Custom Label").Property("name", "Custom id vertex 2").Iterate();
           var output = g.V().Limit<Vertex>(3).ToList();
           foreach(var item in output) {
               Console.WriteLine(item);
           }
         }
         catch (Exception e)
         {
             Console.WriteLine("{0}", e);
         }
       }
     }
   }
   ```

1. Insira o seguinte comando para executar o exemplo:

   ```
   dotnet run
   ```

   A consulta do Gremlin no final deste exemplo retorna a contagem de um único vértice para fins de teste. Em seguida, ela é impressa no console.
**nota**  
A parte final da consulta do Gremlin, `Next()`, é necessária para enviar a travessia ao servidor para avaliação. Se você não incluir esse método ou outro método equivalente, a consulta não será enviada à instância de banco de dados do Neptune.

   Os seguintes métodos enviam a consulta à instância de banco de dados do Neptune:
   + `ToList()`
   + `ToSet()`
   + `Next()`
   + `NextTraverser()`
   + `Iterate()`

   Use `Next()` se precisar que os resultados da consulta sejam serializados e gerados, ou `Iterate()` se não precisar.

   O exemplo anterior gera uma lista usando o percurso `g.V().Limit(3).ToList()`. Para consultar outro elemento, substitua-a por outra travessia do Gremlin com um dos métodos de término adequado.

## Autenticação do IAM
<a name="access-graph-gremlin-dotnet-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 de um cliente.NET, consulte[Conectar-se a bancos de dados do Amazon Neptune usando a autenticação do IAM com Gremlin .NET](gremlin-dotnet-iam-auth.md).