首页 > 后端开发 > Golang > 正文

使用 Golang GremlinGo 连接到 AWS Neptune

WBOY
发布: 2024-02-08 20:53:54
转载
712 人浏览过

使用 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 请求,看看它是否有效。

以上是使用 Golang GremlinGo 连接到 AWS Neptune的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!