卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

使用 Golang GremlinGo 连接到 AWS Neptune

使用 golang gremlingo 连接到 aws neptune

问题内容

我目前正在尝试通过 go 建立与 aws neptune 的连接,但它不起作用。我能够连接到 aws 本身,但是当我尝试连接到 neptune db 时,它显示“无法建立成功的连接:拨打 tcp 172.31.4.48:8182: i/o 超时”。我正在使用 gremlingo 模块,如这段代码

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())
    }
}

我不太确定问题是什么,所以我尝试连接到集群本身,但由于它不起作用,我尝试连接到 writer。 非常感谢您的帮助。

致以诚挚的问候


正确答案


Amazon Neptune 在 VPC 内部运行,并且不公开公共终端节点。设计用于发送查询的代码必须有权访问该 VPC。这可能就像在同一 VPC 中的 EC2 实例上运行的代码一样简单,但还有许多其他方式可以授予对 VPC 的访问权限,例如负载均衡器、VPC 对等互连、直接连接等等。 p>

检查代码是否可以访问数据库的一个简单方法是从同一源点向 /status API 发送 HTTP 请求,看看它是否有效。

卓越飞翔博客
上一篇: 如何为 Go 项目设置语义版本控制以及设置版本的命令是什么?
下一篇: 如何使用 Visual Studio Code IDE 附加到交叉编译的 go 二进制文件以进行调试?
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏