翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Java と Gremlin でバージョン 4 署名を使用して Neptune に接続する
TinkerPop 3.4.11 以降を使用して Sig4 署名で Neptune に接続する
以下は、 TinkerPop 3.4.11 以降を使用する場合に、Sig4 署名付きの Gremlin Java API を使用して Neptune に接続する方法の例です (Maven の使用に関する一般的な知識を前提としています)。まず、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 = Cluster.build((your cluster)
) .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
パッケージに依存する必要があります。これは SigV4WebSocketChannelizer
クラスを含む Neptune ライブラリで、標準の TinkerPop Channelizer を SigV4 署名を自動的に挿入できるものに置き換えます。amazon-neptune-gremlin-java-sigv4
ライブラリは非推奨であるため、可能な場合は TinkerPop 3.4.11 以上にアップグレードしてください。
3.4.11 より前の TinkerPop バージョンを使用する場合に、Sig4 署名付きの Gremlin Java API を使用して Neptune に接続する方法の例を示します (Maven の使用方法に関する一般的な知識を前提としています)。
まず、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.10 以降にドライバーをアップグレードする場合は、上記の handshakeInterceptor()
モデルを使用するように変更する必要があります。
その後、gremlin-driver
Cluster オブジェクトを Java コードで次のように設定する必要があります。
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();