

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# .NET を使用して Neptune DB インスタンスに接続する
<a name="access-graph-gremlin-dotnet"></a>

**重要**  
Neptune エンジンバージョンとの互換性を保つには、正しい Apache TinkerPop Gremlin ドライバーバージョンを選択することが重要です。互換性のないバージョンを使用すると、接続の失敗や予期しない動作が発生する可能性があります。バージョンの互換性の詳細については、「」を参照してください[Gremlin を使用した Neptune グラフへのアクセス](access-graph-gremlin.md)。

次のセクションには、Neptune DB インスタンスに接続して Gremlin トラバーサルを実行する、C\$1 で記述されたサンプルコードが含まれています。

Amazon Neptune への接続は、Neptune DB インスタンスと同じ仮想プライベートクラウド (VPC) の Amazon EC2 インスタンスから行ってください。このサンプルコードは Ubuntu を実行する Amazon EC2 インスタンスでテスト済みです。

開始する前に、以下を実行します。
+ Amazon EC2 インスタンスに .NET をインストールします。Windows、Linux、および macOS を含む複数のオペレーティングシステムで .NET をインストールする手順については、「[.NET の開始方法](https://www.microsoft.com/net/learn/get-started/)」を参照してください。
+ `dotnet add package gremlin.net` を実行して、パッケージに Gremlin.NET をインストールします。詳細については、TinkerPop ドキュメントの「[Gremlin.NET](https://tinkerpop.apache.org/docs/current/reference/#gremlin-DotNet)」を参照してください。



**Gremlin.NET を使用して Neptune に接続するには**

1. 新しい .NET プロジェクトを作成します。

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

1. ディレクトリを、新しいプロジェクトディレクトリに変更します。

   ```
   cd gremlinExample
   ```

1. `Program.cs` ファイルに次の内容をコピーします。*your-neptune-endpoint* を Neptune DB インスタンスのアドレスで置き換えます。

   Neptune DB インスタンスのアドレスを見つける方法については、[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. サンプルを実行するには、次のコマンドを入力します。

   ```
   dotnet run
   ```

   この例の最後にある Gremlin クエリは、テスト目的で単一の頂点の数を返します。その後、コンソールに表示されます。
**注記**  
Gremlin クエリの最後の部分、`Next()` では、評価のためにトラバーサルをサーバーに送信する必要があります。そのメソッドまたは別の同等のメソッドを含めない場合、クエリは Neptune DB インスタンスに送信されません。

   以下のメソッドは Neptune DB インスタンスにクエリを送信します。
   + `ToList()`
   + `ToSet()`
   + `Next()`
   + `NextTraverser()`
   + `Iterate()`

   クエリ結果をシリアル化して返す必要がある場合、`Next()` を、そうでない場合は `Iterate()` を使用します。

   前述の例では、`g.V().Limit(3).ToList()` トラバーサルを使用してリストを返します。その他の対象にクエリを実行するには、いずれかの適切な終了メソッドを持つ Gremlin トラバーサルで置き換えます。

## IAM 認証
<a name="access-graph-gremlin-dotnet-iam"></a>

Neptune は、DB クラスターへのアクセスを制御するための [IAM 認証](iam-auth-enable.md)をサポートしています。IAM 認証が有効になっている場合は、署名バージョン 4 の署名を使用してリクエストを認証する必要があります。.NET クライアントから接続するための詳細な手順とコード例については、「」を参照してください[Gremlin .NET による IAM 認証を使用した Amazon Neptune データベースへの接続](gremlin-dotnet-iam-auth.md)。