Menghubungkan ke Neptune Menggunakan Java dan Gremlin dengan Penandatangan Signature Versi 4 - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menghubungkan ke Neptune Menggunakan Java dan Gremlin dengan Penandatangan Signature Versi 4

Menggunakan TinkerPop 3.4.11 atau lebih tinggi untuk terhubung ke Neptunus dengan penandatanganan Sig4

Berikut adalah contoh cara terhubung ke Neptunus menggunakan Gremlin Java API dengan penandatanganan Sig4 saat TinkerPop menggunakan 3.4.11 atau lebih tinggi (ini mengasumsikan pengetahuan umum tentang penggunaan Maven). Pertama, tentukan dependensi sebagai bagian dari file: pom.xml

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

Kemudian, gunakan kode seperti berikut:

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); }
catatan

Jika Anda memutakhirkan dari3.4.11, hapus referensi ke amazon-neptune-gremlin-java-sigv4 perpustakaan. Ini tidak lagi diperlukan saat menggunakan handshakeInterceptor() seperti yang ditunjukkan pada contoh di atas. Jangan mencoba untuk menggunakan handshakeInterceptor() dalam hubungannya dengan channelizer (SigV4WebSocketChannelizer.class), karena akan menghasilkan kesalahan.

Menggunakan versi TinkerPop lebih awal dari 3.4.11 untuk terhubung ke Neptunus dengan penandatanganan Sig4

TinkerPop versi sebelumnya 3.4.11 tidak memiliki dukungan untuk handshakeInterceptor() konfigurasi yang ditunjukkan di bagian sebelumnya dan oleh karena itu harus bergantung pada amazon-neptune-gremlin-java-sigv4 paket. Ini adalah perpustakaan Neptunus yang berisi SigV4WebSocketChannelizer kelas, yang menggantikan Channelizer TinkerPop standar dengan yang dapat secara otomatis menyuntikkan tanda tangan SigV4. Jika memungkinkan, ugrade ke TinkerPop 3.4.11 atau yang lebih tinggi, karena amazon-neptune-gremlin-java-sigv4 pustaka tidak digunakan lagi.

Berikut adalah contoh cara terhubung ke Neptunus menggunakan Gremlin Java API dengan penandatanganan Sig4 saat menggunakan versi sebelum 3.4.11 (ini mengasumsikan pengetahuan umum tentang cara TinkerPop menggunakan Maven).

Pertama, tentukan dependensi sebagai bagian dari file: pom.xml

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

Ketergantungan di atas akan mencakup versi driver Gremlin. 3.4.10 Meskipun dimungkinkan untuk menggunakan versi driver Gremlin yang lebih baru (hingga3.4.13), peningkatan driver melewati 3.4.10 harus menyertakan perubahan untuk menggunakan model yang dijelaskan di atas. handshakeInterceptor()

Objek gremlin-driver Cluster kemudian harus dikonfigurasi sebagai berikut dalam kode 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();