Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menghubungkan ke database Amazon Neptune menggunakan otentikasi IAM dengan Gremlin JavaScript
Gambaran umum
Panduan ini menunjukkan cara menyambung ke database Amazon Neptune dengan otentikasi IAM diaktifkan menggunakan JavaScript driver Gremlin, dengan otentikasi Signature Version 4 dan AWS SDK untuk Javascript v3.
Prasyarat
-
Cluster Amazon Neptune dengan otentikasi IAM diaktifkan.
-
Node 13 atau yang lebih baru (lihat versi minimal untuk Gremlin JavaScript dan AWS SDK untuk Javascript v3).
-
AWS kredenSIAL dikonfigurasi (melalui variabel lingkungan, file kredenSIAL bersama, atau peran IAM).
Buat koneksi dasar
Gunakan contoh kode berikut sebagai panduan tentang cara membuat koneksi dasar dengan otentikasi IAM menggunakan driver Gremlin JavaScript .
const { fromNodeProviderChain } = require('@aws-sdk/credential-providers'); const { getUrlAndHeaders } = require('gremlin-aws-sigv4/lib/utils'); const { loadConfig } = require("@smithy/node-config-provider"); const { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS } = require("@smithy/config-resolver"); const gremlin = require('gremlin'); const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection; const traversal = gremlin.process.AnonymousTraversalSource.traversal; const DEFAULT_REGION = 'us-east-1'; const getCredentials = async () => { try { // Loads the default credential provider chain return await fromNodeProviderChain(); } catch (e) { console.error("No credentials found", e); throw e; } }; (main = async () => { console.log('Starting'); const credentials = await getCredentials(); try { // region set inside config profile or via AWS_REGION environment variable will be loaded credentials['region'] = await loadConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS)(); } catch (e) { credentials['region'] = DEFAULT_REGION } const connInfo = getUrlAndHeaders( 'you.cluster.endpoint.neptune.amazonaws.com', '8182', credentials, '/gremlin', 'wss'); const dc = new DriverRemoteConnection(connInfo['url'], {headers: connInfo['headers']}); const g = traversal().withRemote(dc); const query = g.V().limit(5).count(); const count = await query.next(); console.log("Vertex count: " + count.value); await dc.close(); }) main();