

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

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

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

次のセクションでは、Amazon Neptune DB インスタンスに接続し、Gremlin トラバーサルを実施する Node.js サンプル実行方法について説明します。

Neptune DB インスタンスと同じ仮想プライベートクラウド (VPC) の Amazon EC2 インスタンスからこれらの手順を実行してください。

開始する前に、以下を実行します。
+ Node.js バージョン 8.11 以降がインストールされていることを確認します。そうでない場合、[Nodejs.org ウェブサイト](https://nodejs.org)から Node.js をダウンロードしてインストールします。

**Node.js を使用して Neptune に接続するには**

1. `gremlin-javascript` パッケージをインストールするには、次のように入力します。

   ```
   npm install gremlin
   ```

1. `gremlinexample.js` という名前のファイルを作成して、テキストエディタで開きます。

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

   Neptune DB インスタンスのアドレスを見つける方法については、[Amazon Neptune エンドポイントに接続する](feature-overview-endpoints.md) セクションを参照してください。

   ```
   const gremlin = require('gremlin');
   const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection;
   const Graph = gremlin.structure.Graph;
   
   dc = new DriverRemoteConnection('wss://your-neptune-endpoint:8182/gremlin',{});
   
   const graph = new Graph();
   const g = graph.traversal().withRemote(dc);
   
   g.V().limit(1).count().next().
       then(data => {
           console.log(data);
           dc.close();
       }).catch(error => {
           console.log('ERROR', error);
           dc.close();
       });
   ```

1. サンプルを実行するには、次のコマンドを入力します。

   ```
   node gremlinexample.js
   ```

前述の例では、`g.V().limit(1).count().next()` トラバーサルを使用してグラフの単一の頂点の数を返します。その他の対象にクエリを実行するには、いずれかの適切な終了メソッドを持つ Gremlin トラバーサルで置き換えます。

**注記**  
Gremlin クエリの最後の部分、`next()` では、評価のためにトラバーサルをサーバーに送信する必要があります。そのメソッドまたは別の同等のメソッドを含めない場合、クエリは Neptune DB インスタンスに送信されません。

以下のメソッドは Neptune DB インスタンスにクエリを送信します。
+ `toList()`
+ `toSet()`
+ `next()`
+ `nextTraverser()`
+ `iterate()`

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

**重要**  
これは、スタンドアロンの Node.js 例です。 AWS Lambda 関数でこのようなコードを実行する予定がある場合は、Neptune Lambda 関数で JavaScript を効率的に使用する方法の詳細については、[Lambda 関数の例](lambda-functions-examples.md)「」を参照してください。

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

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