Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Go untuk menyambung ke instans Neptune DB
penting
Memilih versi driver Apache TinkerPop Gremlin yang benar sangat penting untuk kompatibilitas dengan versi mesin Neptune Anda. Menggunakan versi yang tidak kompatibel dapat mengakibatkan kegagalan koneksi atau perilaku tak terduga. Untuk informasi kompatibilitas versi terperinci, lihatMengakses grafik Neptune dengan Gremlin.
catatan
Versi gremlingo 3.5.x kompatibel dengan versi 3.4.x selama Anda hanya menggunakan TinkerPop fitur 3.4.x dalam kueri Gremlin yang Anda tulis.
Bagian berikut memandu Anda melalui menjalankan sampel Go yang terhubung ke instance Amazon Neptune DB dan melakukan traversal Gremlin.
Anda harus mengikuti petunjuk ini dari instans Amazon EC2 di virtual private cloud (VPC) yang sama seperti instans DB Neptune Anda.
Sebelum memulai, lakukan hal berikut:
Unduh dan instal Go 1.17 atau yang lebih baru dari situs web go.dev
.
Untuk terhubung ke Neptunus menggunakan Go
-
Mulai dari direktori kosong, inisialisasi modul Go baru:
go mod init example.com/gremlinExample -
Tambahkan gremlin-go sebagai ketergantungan modul baru Anda:
go get github.com/apache/tinkerpop/gremlin-go/v3/driver -
Buat file bernama
gremlinExample.godan kemudian buka di editor teks. -
Salin yang berikut ini ke dalam
gremlinExample.gofile, gantidengan alamat instance Neptune DB Anda:(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()) } }catatan
Format sertifikat Neptune TLS saat ini tidak didukung di Go 1.18+ dengan macOS, dan mungkin memberikan kesalahan 509 saat mencoba memulai koneksi. Untuk pengujian lokal, ini dapat dilewati dengan menambahkan "crypto/tls" ke impor dan memodifikasi
DriverRemoteConnectionpengaturan sebagai berikut:// 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} }) -
Masukkan perintah berikut untuk menjalankan sampel:
go run gremlinExample.go
Kueri Gremlin di akhir contoh ini mengembalikan simpul (g.V().Limit(2)) dalam irisan. Irisan ini kemudian diiterasi dan dicetak dengan fmt.Println fungsi standar.
catatan
Bagian akhir dari kueri Gremlin, ToList(), diperlukan untuk mengirimkan traversal ke server untuk evaluasi. Jika Anda tidak menyertakan metode tersebut atau metode setara lain, kueri tidak diserahkan ke instans DB Neptune.
Berikut ini adalah contoh metode yang mengirimkan kueri ke instance Neptune DB:
ToList()ToSet()Next()Iterate()
Langkah-langkah terminal ini berperilaku berbeda dalam mode skrip dan mode bytecode. Untuk daftar kanonik langkah-langkah terminal dan detail tentang bagaimana mereka mempengaruhi transaksi, lihatUji kode Gremlin dalam konteks Anda akan menyebarkannya.
Gunakan Iterate() saat Anda tidak memerlukan hasil kueri Anda (misalnya mutasi) karena menghemat biaya serialisasi.
Contoh sebelumnya mengembalikan dua vertex pertama dalam grafik menggunakan traversal g.V().Limit(2).ToList(). Untuk mengajukan kueri untuk sesuatu yang lain, ganti dengan traversal Gremlin lain dengan salah satu metode ending yang tepat.
Autentikasi IAM
Neptune mendukung otentikasi IAM untuk mengontrol akses ke cluster DB Anda. Jika Anda mengaktifkan otentikasi IAM, Anda perlu menggunakan penandatanganan Signature Version 4 untuk mengotentikasi permintaan Anda. Untuk petunjuk terperinci dan contoh kode untuk menghubungkan dari klien Go, lihatMenghubungkan ke database Amazon Neptune menggunakan otentikasi IAM dengan Gremlin Go.