Rumah >pembangunan bahagian belakang >Golang >Sambung ke AWS Neptune menggunakan Golang GremlinGo

Sambung ke AWS Neptune menggunakan Golang GremlinGo

WBOY
WBOYke hadapan
2024-02-08 20:53:54755semak imbas

使用 Golang GremlinGo 连接到 AWS Neptune

Kandungan soalan

Saya sedang cuba mewujudkan sambungan ke aws neptune melalui go tetapi ia tidak berfungsi. Saya boleh menyambung ke aws itu sendiri, tetapi apabila saya cuba menyambung ke neptune db ia berkata "Tidak dapat mewujudkan sambungan yang berjaya: Panggil tcp 172.31.4.48:8182: i/o tamat masa". Saya menggunakan modul gremlingo seperti kod ini

package main

import (
    "fmt"
    "net/http"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/credentials"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/neptune"
    "github.com/gin-gonic/gin"

    gremlingo "github.com/apache/tinkerpop/gremlin-go/v3/driver"
)

func main() {

    sess, err := session.NewSession(&aws.Config{
        Region:      aws.String("us-east-id1"),
        Credentials: credentials.NewStaticCredentials("AWS-id key", "aws secret id key", ""),
    })

    if err != nil {
        fmt.Println("Couldn't create new session")
        return
    }

    neptune.New(sess)

    driverRemoteConnection, err := gremlingo.NewDriverRemoteConnection("wss://database-1-instance-1.asdasdasd.us-east-1.neptune.amazonaws.com: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())
    }
}

Saya tidak pasti apa masalahnya, jadi saya cuba menyambung ke kluster itu sendiri, tetapi kerana ia tidak berfungsi, saya cuba menyambung kepada penulis. Terima kasih banyak atas bantuan anda.

Salam


Jawapan Betul


Amazon Neptune berjalan di dalam VPC dan tidak mendedahkan titik akhir awam. Kod yang direka untuk menghantar pertanyaan mesti mempunyai akses kepada VPC. Ini mungkin semudah kod yang dijalankan pada tika EC2 dalam VPC yang sama, tetapi terdapat banyak cara lain untuk memberikan akses kepada VPC, seperti pengimbang beban, peering VPC, sambungan langsung dan banyak lagi. p>

Cara mudah untuk menyemak sama ada kod anda boleh mengakses pangkalan data adalah dengan menghantar permintaan HTTP ke /status API dari titik asal yang sama dan melihat sama ada ia berfungsi.

Atas ialah kandungan terperinci Sambung ke AWS Neptune menggunakan Golang GremlinGo. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam