

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

# 设置 Gremlin 控制台以连接到 Neptune 数据库实例
<a name="access-graph-gremlin-console"></a>

Gremlin 控制台允许您在 REPL（read-eval-print 循环）环境中尝试 TinkerPop 图形和查询。

## 安装 Gremlin 控制台并以常规方式连接到控制台
<a name="access-graph-gremlin-console-usual-connect"></a>

您可以使用 Gremlin 控制台连接到远程图形数据库。以下部分将引导您安装和配置 Gremlin 控制台以远程连接到 Neptune 数据库实例。必须从与您的 Neptune 数据库实例位于同一虚拟私有云 (VPC) 中的 Amazon EC2 实例中按照这些说明操作。

有关使用 SSL/TLS （必填项）连接到 Neptune 的帮助，请参阅。[SSL/TLS 配置](access-graph-gremlin-java.md#access-graph-gremlin-java-ssl)

**注意**  
如果您在 Neptune 数据库集群上[启用了 IAM 身份验证](iam-auth-enable.md)，请按照[通过 Gremlin 控制台使用 IAM 身份验证连接到 Amazon Neptune 数据库](iam-auth-connecting-gremlin-console.md)中的说明安装 Gremlin 控制台，而不是按照此处的说明进行操作。

**安装 Gremlin 控制台并连接到 Neptune**

1. Gremlin 控制台二进制文件需要 Java 8 或 Java 11。这些说明假设使用的是 Java 11。您可以按如下方式在 EC2 实例上安装 Java 11：
   + 如果你使用的是[亚马逊 Linux 2 (AL2)](https://www.amazonaws.cn/amazon-linux-2)：

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + 如果你使用的是[亚马逊 Linux 2023 (AL2023)](https://docs.amazonaws.cn/linux/al2023/ug/what-is-amazon-linux.html)：

     ```
     sudo yum install java-11-amazon-corretto-devel
     ```
   + 对于其它发行版，请使用以下适当的发行版：

     ```
     sudo yum install java-11-openjdk-devel
     ```

     或者：

     ```
     sudo apt-get install openjdk-11-jdk
     ```

1. 输入以下命令以在 EC2 实例上将 Java 11 设置为默认运行时系统。

   ```
   sudo /usr/sbin/alternatives --config java
   ```

   在系统提示时，输入 Java 11 的版本号。

1. 从 Apache 网站下载相应版本的 Gremlin 控制台。你可以查看[使用 Gremlin 访问 Neptune 图形](access-graph-gremlin.md)确定你的 Neptune 版本支持哪个 Gremlin 版本。例如，如果你需要版本 3.7.2，你可以将 [Gremlin 控制台](https://archive.apache.org/dist/tinkerpop/3.7.2/apache-tinkerpop-gremlin-console-3.7.2-bin.zip)从 [Apache Tinkerpop](https://tinkerpop.apache.org/download.html) 网站下载到你的 EC2 实例上，如下所示：

   ```
   wget https://archive.apache.org/dist/tinkerpop/3.7.2/apache-tinkerpop-gremlin-console-3.7.2-bin.zip
   ```

1. 解压缩 Gremlin 控制台 zip 文件。

   ```
   unzip apache-tinkerpop-gremlin-console-3.7.2-bin.zip
   ```

1. 将目录更改为解压缩的目录。

   ```
   cd apache-tinkerpop-gremlin-console-3.7.2
   ```

1. 在提取的目录的 `conf` 子目录中，创建名为 `neptune-remote.yaml` 的包含以下文本的文件。*your-neptune-endpoint*替换为您的 Neptune 数据库实例的主机名或 IP 地址。方括号 (`[ ]`) 是必需的。
**注意**  
有关查找 Neptune 数据库实例的主机名的信息，请参阅[连接到 Amazon Neptune 端点](feature-overview-endpoints.md)部分。

   ```
   hosts: [your-neptune-endpoint]
   port: 8182
   connectionPool: { enableSsl: true }
   serializer: { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1,
                 config: { serializeResultToString: true }}
   ```
**注意**  
 在版本 3.7.0 中，序列化器已从 `gremlin-driver` 模块移至新的 `gremlin-util` 模块。软件包已从 org.apache.tinkerpop.gremlin.driver.ser 更改为 org.apache.tinkerpop.gremlin.util.ser。

1. 在终端中，导航到 Gremlin 控制台目录 (`apache-tinkerpop-gremlin-console-3.7.2`)，然后输入以下命令来运行 Gremlin 控制台。

   ```
   bin/gremlin.sh
   ```

   您应看到以下输出：

   ```
            \,,,/
            (o o)
   -----oOOo-(3)-oOOo-----
   plugin activated: tinkerpop.server
   plugin activated: tinkerpop.utilities
   plugin activated: tinkerpop.tinkergraph
   gremlin>
   ```

   您现在位于 `gremlin>` 提示符处。将在此提示符处输入剩余步骤。

1. 在 `gremlin>` 提示符处，输入以下命令以连接到 Neptune 数据库实例。

   ```
   :remote connect tinkerpop.server conf/neptune-remote.yaml
   ```

1. 在 `gremlin>` 提示符处，输入以下命令以切换到远程模式。这会将所有 Gremlin 查询发送到远程连接。

   ```
   :remote console
   ```

1. 输入以下命令以将查询发送到 Gremlin 图形。

   ```
   g.V().limit(1)
   ```

1. 完成后，输入以下命令以退出 Gremlin 控制台。

   ```
   :exit
   ```

**注意**  
使用分号 (`;`) 或换行符 (`\n`) 分隔每个语句。  
在最后遍历之前的每个遍历必须以要执行的 `next()` 结尾。仅返回最后遍历中的数据。

有关 Gremlin 的 Neptune 实现的更多信息，请参阅[Amazon Neptune 中的 Gremlin 标准合规性](access-graph-gremlin-differences.md)。

## IAM 身份验证
<a name="access-graph-gremlin-console-iam"></a>

Neptune 支持 [IAM 身份验证](iam-auth-enable.md)来控制对数据库集群的访问。如果您启用了 IAM 身份验证，则需要使用签名版本 4 签名来验证您的请求。有关从 Gremlin 控制台进行连接的详细说明和代码示例，请参阅。[通过 Gremlin 控制台使用 IAM 身份验证连接到 Amazon Neptune 数据库](iam-auth-connecting-gremlin-console.md)