기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Go를 사용하여 Neptune DB 인스턴스에 연결
중요
Neptune 엔진 버전과의 호환성을 위해서는 올바른 Apache TinkerPop Gremlin 드라이버 버전을 선택하는 것이 중요합니다. 호환되지 않는 버전을 사용하면 연결 실패 또는 예기치 않은 동작이 발생할 수 있습니다. 자세한 버전 호환성 정보는 섹션을 참조하세요Gremlin을 사용하여 Neptune 그래프에 액세스.
참고
gremlingo 3.5.x 버전은 작성하는 Gremlin 쿼리에서 3.4.x 기능만 사용하는 한 TinkerPop 3.4.x 버전과 역호환됩니다.
다음 섹션에서는 Amazon Neptune DB 인스턴스에 연결하고 Gremlin 순회를 수행하는 Go 샘플을 실행하는 방법을 설명합니다.
사용자의 Neptune DB 인스턴스와 동일한 Virtual Private Cloud(VPC)에 있는 Amazon EC2 인스턴스에서 이러한 지침을 따라야 합니다.
시작하기 전에 다음을 수행하십시오.
Go 1.17 이상을 go.dev
웹 사이트에서 다운로드하여 설치합니다.
Go를 사용하여 Neptune에 연결하려면
-
빈 디렉터리에서 시작하여 새 Go 모듈을 초기화합니다.
go mod init example.com/gremlinExample -
gremlin-go를 새 모듈의 종속 구성 요소로 추가합니다.
go get github.com/apache/tinkerpop/gremlin-go/v3/driver -
이름이
gremlinExample.go인 파일을 생성하여 텍스트 편집기에서 엽니다. -
다음을
gremlinExample.go파일에 복사하고를 Neptune DB 인스턴스의 주소로 대체합니다.(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()) } }참고
Neptune TLS 인증서 형식은 현재 macOS의 Go 1.18+ 버전에서 지원되지 않으며, 연결을 시작하려고 할 때 509 오류가 발생할 수 있습니다. 로컬 테스트의 경우 가져오기에 “crypto/tls”를 추가하고 다음과 같이
DriverRemoteConnection설정을 수정하여 이 문제를 건너뛸 수 있습니다.// 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} }) -
다음 명령을 입력하여 샘플을 실행합니다.
go run gremlinExample.go
이 예제 끝부분의 Gremlin 쿼리는 조각에서 버텍스((g.V().Limit(2)))를 반환합니다. 그런 다음 이 조각을 반복하여 표준 fmt.Println 함수를 사용하여 출력합니다.
참고
Gremlin 쿼리의 최종 부분 ToList()에서 순회를 서버로 제출하여 평가를 받아야 합니다. 이 메서드 또는 이와 유사한 메서드를 포함시키지 않는 경우에는 쿼리가 Neptune DB 인스턴스로 제출되지 않습니다.
다음 메서드는 쿼리를 Neptune DB 인스턴스로 제출합니다.
ToList()ToSet()Next()GetResultSet()Iterate()
앞의 예에서는 g.V().Limit(2).ToList() 순회를 사용하여 그래프의 첫 번째 버텍스 두 개를 반환했습니다. 다른 것을 쿼리하려면 해당하는 종료 메서드 중 하나를 사용하여 다른 Gremlin 순회로 바꿉니다.
IAM 인증
Neptune은 DB 클러스터에 대한 액세스를 제어하는 IAM 인증을 지원합니다. IAM 인증을 활성화한 경우 서명 버전 4 서명을 사용하여 요청을 인증해야 합니다. Go 클라이언트에서 연결하기 위한 자세한 지침과 코드 예제는 섹션을 참조하세요Gremlin Go에서 IAM 인증을 사용하여 Amazon Neptune 데이터베이스에 연결.