翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Go を使用して Neptune DB インスタンスに接続する
重要
Neptune エンジンバージョンとの互換性を保つには、正しい Apache TinkerPop Gremlin ドライバーバージョンを選択することが重要です。互換性のないバージョンを使用すると、接続の失敗や予期しない動作が発生する可能性があります。バージョンの互換性の詳細については、「」を参照してくださいGremlin を使用した Neptune グラフへのアクセス。
次のセクションでは、Amazon Neptune DB インスタンスに接続して、Gremlin トラバーサルを実行する Go サンプルの実行方法について説明します。
Neptune DB インスタンスと同じ仮想プライベートクラウド (VPC) の Amazon EC2 インスタンスからこれらの手順を実行してください。
開始する前に、以下を実行します。
go.dev
ウェブサイトから Go 1.17 以降をダウンロードしてインストールします。
Go を使用して Neptune に接続するには
-
空のディレクトリから始めて、新しい Go モジュールを初期化します。
go mod init example.com/gremlinExample -
gremlin-go を新しいモジュールの依存関係として追加します。
go get github.com/apache/tinkerpop/gremlin-go/v3/driver -
「
gremlinExample.go」という名前のファイルを作成し、テキストエディタで開きます。 -
以下を
gremlinExample.goファイルにコピーし、を Neptune DB インスタンスのアドレスに置き換えます。(your neptune endpoint)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} }) -
サンプルを実行するには、次のコマンドを入力します。
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 トラバーサルで置き換えます。