기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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();