Signature Version 4 서명으로 Java 및 Gremlin을 사용하여 Neptune에 연결 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Signature Version 4 서명으로 Java 및 Gremlin을 사용하여 Neptune에 연결

TinkerPop 3.4.11 이상을 사용하여 Sig4 서명을 통해 Neptune에 연결

다음은 3.4.11 이상을 사용할 때 Sig4 서명과 함께 Gremlin Java API를 사용하여 Neptune에 연결하는 방법의 예입니다 (Maven TinkerPop 사용에 대한 일반적인 지식을 전제로 함). 먼저 종속성을 pom.xml 파일의 일부로 정의합니다.

<dependency> <groupId>com.amazonaws</groupId> <artifactId>amazon-neptune-sigv4-signer</artifactId> <version>2.4.0</version> </dependency>

그런 다음 아래와 같은 코드를 사용합니다.

import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.neptune.auth.NeptuneNettyHttpSigV4Signer; import com.amazonaws.neptune.auth.NeptuneSigV4SignerException; ... System.setProperty("aws.accessKeyId","your-access-key"); System.setProperty("aws.secretKey","your-secret-key"); ... Cluster = Cluster.build((your cluster name)) .enableSsl(true) .handshakeInterceptor( r -> { try { NeptuneNettyHttpSigV4Signer sigV4Signer = new NeptuneNettyHttpSigV4Signer("(your region)", new DefaultAWSCredentialsProviderChain()); sigV4Signer.signRequest(r); } catch (NeptuneSigV4SignerException e) { throw new RuntimeException("Exception occurred while signing the request", e); } return r; } ).create(); try { Client client = cluster.connect(); client.submit("g.V().has('code','IAD')").all().get(); } catch (Exception e) { throw new RuntimeException("Exception occurred while connecting to cluster", e); }
참고

3.4.11에서 업그레이드하는 경우 amazon-neptune-gremlin-java-sigv4 라이브러리에 대한 참조를 제거하세요. 위의 예제와 같이 handshakeInterceptor()를 사용하면 더 이상 필요하지 않습니다. 오류가 발생할 수 있으므로, handshakeInterceptor()를 채널라이저(SigV4WebSocketChannelizer.class)와 함께 사용하지 마세요.

3.4.11 TinkerPop 이전 버전을 사용하여 Sig4 서명을 통해 Neptune에 연결

TinkerPop 이전 버전은 이전 섹션에 표시된 handshakeInterceptor() 구성을 지원하지 3.4.11 않았으므로 패키지를 사용해야 합니다. amazon-neptune-gremlin-java-sigv4 이것은 TinkerPop 표준 채널라이저를 SigV4 서명을 자동으로 삽입할 수 있는 채널라이저로 대체하는 클래스를 포함하는 SigV4WebSocketChannelizer Neptune 라이브러리입니다. 라이브러리는 더 이상 사용되지 않으므로 가능하면 3.4.11 이상으로 TinkerPop 업그레이드하세요. amazon-neptune-gremlin-java-sigv4

다음은 3.4.11 이전 버전을 사용할 때 Sig4 서명이 포함된 Gremlin Java API를 사용하여 Neptune에 연결하는 방법의 예입니다 (Maven TinkerPop 사용 방법에 대한 일반적인 지식이 있다고 가정).

먼저 종속성을 pom.xml 파일의 일부로 정의합니다.

<dependency> <groupId>com.amazonaws</groupId> <artifactId>amazon-neptune-gremlin-java-sigv4</artifactId> <version>2.4.0</version> </dependency>

위의 종속성에는 Gremlin 드라이버 버전 3.4.10이 포함됩니다. 최신 Gremlin 드라이버 버전(3.4.13까지)을 사용할 수 있지만, 드라이버를 3.4.11 이상으로 업그레이드하려면 위에서 설명한 handshakeInterceptor() 모델을 사용하기 위한 변경 사항이 포함되어야 합니다.

그런 다음 Java 코드에서 아래와 같이 gremlin-driver 클러스터 객체를 구성해야 합니다.

import org.apache.tinkerpop.gremlin.driver.SigV4WebSocketChannelizer; ... Cluster cluster = Cluster.build(your cluster) .enableSsl(true) .channelizer(SigV4WebSocketChannelizer.class) .create(); Client client = cluster.connect(); client.submit("g.V().has('code','IAD')").all().get();