Go を使用して Neptune DB インスタンスに接続する - Amazon Neptune

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

Go を使用して Neptune DB インスタンスに接続する

可能であれば、エンジンバージョンがサポートする最新バージョンの Apache TinkerPop Go Gremlin クライアント gremlingo を常に使用してください。新しいバージョンには、クライアントの安定性、パフォーマンス、使いやすさを向上させる多数のバグ修正が含まれています。

使用するgremlingoバージョンは、通常、 TinkerPopJava Gremlin クライアントの表で説明されているバージョンと一致します

注記

gremlingo 3.5.x バージョンは、記述する Gremlin クエリで TinkerPop 3.4.x 機能のみを使用している限り、3.4.x バージョンと下位互換性があります。

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

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

開始する前に、以下を実行します。

  • go.dev ウェブサイトから Go 1.17 以降をダウンロードしてインストールします。

Go を使用して Neptune に接続するには
  1. 空のディレクトリから始めて、新しい Go モジュールを初期化します。

    go mod init example.com/gremlinExample
  2. gremlin-go を新しいモジュールの依存関係として追加します。

    go get github.com/apache/tinkerpop/gremlin-go/v3/driver
  3. gremlinExample.go」という名前のファイルを作成し、テキストエディタで開きます。

  4. 以下を gremlinExample.go ファイルにコピーし、(your neptune endpoint) を Neptune DB インスタンスのアドレスに置き換えます。

    package main import ( "fmt" gremlingo "github.com/apache/tinkerpop/gremlin-go/v3/driver" ) func main() { // Creating the connection to the server. driverRemoteConnection, err := gremlingo.NewDriverRemoteConnection("wss://(your neptune endpoint):8182/gremlin", func(settings *gremlingo.DriverRemoteConnectionSettings) { settings.TraversalSource = "g" }) if err != nil { fmt.Println(err) return } // Cleanup defer driverRemoteConnection.Close() // Creating graph traversal g := gremlingo.Traversal_().WithRemote(driverRemoteConnection) // Perform traversal results, err := g.V().Limit(2).ToList() if err != nil { fmt.Println(err) return } // Print results for _, r := range results { fmt.Println(r.GetString()) } }
    注記

    Neptune TLS 証明書形式は、現在、macOS 搭載の Go 1.18+ ではサポートされていないため、接続を開始しようとすると 509 エラーが発生する可能性があります。ローカルテストでは、インポートに「crypto/tls」を追加し、DriverRemoteConnection 設定を次のように変更することで、これをスキップできます。

    // Creating the connection to the server. driverRemoteConnection, err := gremlingo.NewDriverRemoteConnection("wss://your-neptune-endpoint:8182/gremlin", func(settings *gremlingo.DriverRemoteConnectionSettings) { settings.TraversalSource = "g" settings.TlsConfig = &tls.Config{InsecureSkipVerify: true} })
  5. サンプルを実行するには、次のコマンドを入力します。

    go run gremlinExample.go

この例の最後にある Gremlin クエリは、頂点 (g.V().Limit(2)) をスライスで返します。このスライスは、標準の fmt.Println 関数で繰り返され、出力されます。

注記

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

以下のメソッドは Neptune DB インスタンスにクエリを送信します。

  • ToList()

  • ToSet()

  • Next()

  • GetResultSet()

  • Iterate()

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