View a markdown version of this page

使用 IAM 身份验证和 Gremlin 连接到 Amazon Neptune 数据库 JavaScript - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 IAM 身份验证和 Gremlin 连接到 Amazon Neptune 数据库 JavaScript

概述

本指南演示如何使用 Gremlin JavaScript 驱动程序、签名版本 4 身份验证和适用于 Javascript 的 Amazon 开发工具包 v3,在启用 IAM 身份验证的情况下连接到亚马逊海王星数据库。

先决条件

  • 启用 IAM 身份验证的 Amazon Neptune 集群。

  • 节点 13 或更高版本(请参阅 Gremlin 的最低版本 JavaScript 和 Amazon SDK for Javascript v3)。

  • 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();