Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyambung ke Neptune Menggunakan Konsol Gremlin dengan Penandatangan Signature Versi 4
Cara Anda terhubung ke Amazon Neptunus menggunakan konsol Gremlin dengan otentikasi Signature Version 4 tergantung pada apakah Anda TinkerPop menggunakan versi atau lebih tinggi, atau 3.4.11
versi sebelumnya. Dalam kedua kasus tersebut, prasyarat berikut diperlukan:
Anda harus memiliki kredensyal IAM yang diperlukan untuk menandatangani permintaan. Lihat Menggunakan rantai penyedia kredensi default di Panduan AWS SDK for Java Pengembang.
Anda harus menginstal versi konsol Gremlin yang kompatibel dengan versi mesin Neptunus yang digunakan oleh cluster DB Anda.
Jika Anda menggunakan kredensil sementara, kredensil tersebut akan kedaluwarsa setelah interval tertentu, seperti halnya token sesi, jadi Anda harus memperbarui token sesi saat Anda meminta kredensil baru. Lihat Menggunakan kredensil keamanan sementara untuk meminta akses ke AWS sumber daya di Panduan Pengguna IAM.
Untuk bantuan menghubungkan menggunakan SSL/TLS, lihat. Konfigurasi SSL/TLS
Menggunakan TinkerPop 3.4.11 atau lebih tinggi untuk terhubung ke Neptunus dengan penandatanganan Sig4
Dengan TinkerPop 3.4.11 atau lebih tinggi, Anda akan menggunakanhandshakeInterceptor()
, yang menyediakan cara untuk mencolokkan tanda tangan Sigv4 ke koneksi yang dibuat oleh perintah. :remote
Seperti pendekatan yang digunakan untuk Java, ini mengharuskan Anda untuk mengkonfigurasi Cluster
objek secara manual dan kemudian meneruskannya ke :remote
perintah.
Perhatikan bahwa ini sangat berbeda dari situasi khas di mana :remote
perintah mengambil file konfigurasi untuk membentuk koneksi. Pendekatan file konfigurasi tidak akan berfungsi karena handshakeInterceptor()
harus diatur secara terprogram, dan tidak dapat memuat konfigurasinya dari file.
Hubungkan konsol Gremlin (TinkerPop 3.4.11 dan lebih tinggi) dengan penandatanganan Sig4
-
Mulai konsol Gremlin:
$ bin/gremlin.sh
-
Pada
gremlin>
prompt, instalamazon-neptune-sigv4-signer
perpustakaan (ini hanya perlu dilakukan sekali untuk konsol)::install com.amazonaws amazon-neptune-sigv4-signer 2.4.0
Jika Anda mengalami masalah dengan langkah ini, mungkin membantu untuk berkonsultasi dengan TinkerPop dokumentasi
tentang konfigurasi Grape . catatan
Jika Anda menggunakan proxy HTTP, Anda mungkin mengalami kesalahan dengan langkah ini di mana
:install
perintah tidak selesai. Untuk mengatasi masalah ini, jalankan perintah berikut untuk memberi tahu konsol tentang proxy:System.setProperty("https.proxyHost", "
(the proxy IP address)
") System.setProperty("https.proxyPort", "(the proxy port)
") -
Impor kelas yang diperlukan untuk menangani penandatanganan ke
handshakeInterceptor()
::import com.amazonaws.auth.DefaultAWSCredentialsProviderChain :import com.amazonaws.neptune.auth.NeptuneNettyHttpSigV4Signer
-
Jika Anda menggunakan kredensi sementara, Anda juga perlu menyediakan Token Sesi Anda sebagai berikut:
System.setProperty("aws.sessionToken","(your session token)")
-
Jika Anda belum menetapkan kredensi akun Anda, Anda dapat menetapkannya sebagai berikut:
System.setProperty("aws.accessKeyId","
") System.setProperty("aws.secretKey","(your access key)
(your secret key)
") -
Buat
Cluster
objek secara manual untuk terhubung ke Neptunus:cluster = Cluster.build("
(host name)
") \ .enableSsl(true) \ .handshakeInterceptor { r -> \ def sigV4Signer = new NeptuneNettyHttpSigV4Signer("(Amazon region)
", \ new DefaultAWSCredentialsProviderChain()); \ sigV4Signer.signRequest(r); \ return r; } \ .create()Untuk bantuan menemukan nama host dari instans DB Neptunus, lihat. Menghubungkan ke Titik Akhir Amazon Neptune.
-
Buat
:remote
koneksi menggunakan nama variabelCluster
objek pada langkah sebelumnya::remote connect tinkerpop.server cluster
-
Masukkan perintah berikut untuk beralih ke mode jarak jauh. Ini mengirimkan semua kueri Gremlin ke koneksi jarak jauh:
:remote console
Menggunakan versi TinkerPop lebih awal dari 3.4.11 untuk terhubung ke Neptunus dengan penandatanganan Sig4
Dengan TinkerPop 3.4.10 atau lebih rendah, gunakan amazon-neptune-gremlin-java-sigv4
pustaka yang disediakan oleh Neptunus untuk menghubungkan konsol ke Neptunus dengan penandatanganan Sigv4, seperti yang dijelaskan di bawah ini:
Hubungkan konsol Gremlin (TinkerPop versi lebih awal dari 3.4.11) dengan penandatanganan Sig4
-
Mulai konsol Gremlin:
$ bin/gremlin.sh
-
Pada
gremlin>
prompt, instalamazon-neptune-sigv4-signer
perpustakaan (ini hanya perlu dilakukan sekali untuk konsol)::install com.amazonaws amazon-neptune-sigv4-signer 2.4.0
catatan
Jika Anda menggunakan proxy HTTP, Anda mungkin mengalami kesalahan dengan langkah ini di mana
:install
perintah tidak selesai. Untuk mengatasi masalah ini, jalankan perintah berikut untuk memberi tahu konsol tentang proxy:System.setProperty("https.proxyHost", "
(the proxy IP address)
") System.setProperty("https.proxyPort", "(the proxy port)
")Mungkin juga membantu untuk berkonsultasi dengan TinkerPop dokumentasi
tentang konfigurasi Grape . -
Di
conf
subdirektori direktori yang diekstrak, buat file bernama.neptune-remote.yaml
Jika Anda menggunakan AWS CloudFormation template untuk membuat cluster DB Neptunus Anda, file sudah
neptune-remote.yaml
ada. Dalam hal ini, yang harus Anda lakukan adalah mengedit file yang ada untuk menyertakan pengaturan channelizer yang ditunjukkan di bawah ini.Jika tidak, salin teks berikut ke dalam file, ganti
(nama host) dengan nama
host atau alamat IP instans DB Neptunus Anda. Perhatikan bahwa tanda kurung siku ([]) yang melampirkan nama host diperlukan.hosts: [
(host name)
] port:8182
connectionPool: { channelizer: org.apache.tinkerpop.gremlin.driver.SigV4WebSocketChannelizer, enableSsl: true } serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: true }} -
penting
Anda harus menyediakan kredensial IAM untuk menandatangani permintaan. Masukkan perintah berikut untuk mengatur kredensial Anda sebagai variabel lingkungan, menggantikan item yang relevan dengan kredensial Anda.
export AWS_ACCESS_KEY_ID=
access_key_id
export AWS_SECRET_ACCESS_KEY=secret_access_key
export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or sa-east-1 or eu-north-1 or eu-west-1 or eu-west-2 or eu-west-3 or eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or ap-northeast-1 or ap-northeast-2 or ap-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1
Signer Neptune Versi 4 menggunakan rantai penyedia kredensial default. Untuk metode tambahan untuk memberikan kredensial, lihat Menggunakan Rantai Penyedia Kredensial Default dalam Panduan Developer AWS SDK for Java .
Variabel
SERVICE_REGION
diperlukan, bahkan ketika menggunakan file kredensials. -
Buat
:remote
koneksi menggunakan.yaml
file::remote connect tinkerpop.server conf/neptune-remote.yaml
-
Masukkan perintah berikut untuk beralih ke mode jarak jauh, yang mengirimkan semua kueri Gremlin ke koneksi jarak jauh:
:remote console