我目前正在嘗試透過 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中文網其他相關文章!