翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Go を使用して Neptune DB インスタンスに接続する
可能な場合は、常に、お使いのエンジンバージョンがサポートしている最新バージョンの Apache TinkerPop Go Gremlin クライアント gremlingo
使用する gremlingo
バージョンは、通常、Java Gremlin クライアントの表で説明されている TinkerPop のバージョンと一致します。
注記
gremlingo 3.5.x バージョンは TinkerPop 3.4.x バージョンと下位互換性があります。ただし、記述する Gremlin クエリで 3.4.x の機能のみを使用する場合に限ります。
次のセクションでは、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 トラバーサルで置き換えます。