本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 IAM 身分驗證搭配 Gremlin JavaScript 連線至 Amazon Neptune 資料庫
概觀
本指南示範如何使用 Gremlin JavaScript 驅動程式、Signature Version 4 身分驗證和適用於 Javascript v3 的 AWS SDK 來使用啟用 IAM 身分驗證連線至 Amazon Neptune 資料庫。
先決條件
-
啟用 IAM 身分驗證的 Amazon Neptune 叢集。
-
節點 13 或更新版本 (請參閱 Gremlin JavaScript 的最低版本和適用於 AWS Javascript v3 的 SDK)。
-
AWS 設定的登入資料 (透過環境變數、共用登入資料檔案或 IAM 角色)。
建立基本連線
使用下列程式碼範例做為如何使用 Gremlin JavaScript 驅動程式與 IAM 身分驗證建立基本連線的指引。
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();