本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Gremlin 的 IAM 身份验证连接到亚马逊 Neptune 数据库 JavaScript
概览
本指南演示如何使用 Gremlin JavaScript 驱动程序、签名版本 4 身份验证和适用于 Javascript v3 的 Amazon 软件开发工具包连接到启用 IAM 身份验证的 Amazon Neptune 数据库。
先决条件
-
启用了 IAM 身份验证的 Amazon Neptune 集群。
-
节点 13 或更高版本(请参阅 Gremlin 的最低版本 JavaScript 和 Javascript v3 的Amazon SDK)。
-
Amazon 已配置证书(通过环境变量、共享凭证文件或 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();