

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

# 连接到 Amazon Neptune 集群
<a name="get-started-connecting"></a>

创建 Neptune 集群后，您必须设置网络访问权限，以便您的应用程序可以访问集群终端节点。以下各节描述了网络连接选项。有关在连接后查询数据的更多信息，请参阅[访问图形数据](get-started-access-graph.md)。

## 网络连接选项
<a name="get-started-connect-ways"></a>

Amazon Neptune 数据库集群*只能* 在 Amazon Virtual Private Cloud (Amazon VPC) 中创建。除非您为数据库集群启用和设置 [Neptune 公共终端节点，否则只能在该 VPC 内访问其终端节点](neptune-public-endpoints.md)。

您可以通过多种方式在 Neptune 数据库集群的 VPC 中设置网络访问权限：
+ [从同一 VPC 中的 Amazon EC2 实例进行连接](get-started-connect-ec2-same-vpc.md)
+ [从另一个 VPC 中的 Amazon EC2 实例进行连接](get-started-connect-ec2-other-vpc.md)
+ [从私有网络连接](get-started-connect-private-net.md)
+ [从公有端点连接](neptune-public-endpoints.md)

## 验证您的连接
<a name="get-started-verify-connection"></a>

设置网络访问后，您可以通过调用实例状态终端节点来验证您的连接是否正常运行。成功响应确认您的客户端可以访问 Neptune 集群。

------
#### [ AWS CLI ]

运行如下命令：

```
aws neptunedata get-engine-status \
  --endpoint-url https://{{your-neptune-endpoint}}:{{port}} \
  --region {{us-east-1}}
```

有关更多信息，请参阅《命令参考》中的 [get-engine-stat](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/get-engine-status.html) us。 AWS CLI 

------
#### [ SDK ]

```
import boto3
from botocore.config import Config

client = boto3.client(
    'neptunedata',
    endpoint_url='https://{{your-neptune-endpoint}}:{{port}}',
    config=Config(read_timeout=10, retries={'total_max_attempts': 1})
)

response = client.get_engine_status()

print(response)
```

------
#### [ awscurl ]

```
awscurl https://{{your-neptune-endpoint}}:{{port}}/status \
  --region {{us-east-1}} \
  --service neptune-db
```

**注意**  
此示例假设您的 AWS 证书是在您的环境中配置的。{{us-east-1}}替换为 Neptune 集群的区域。

有关**awscurl**与 IAM 身份验证配合使用的更多信息，请参阅[使用带有临时证书的 `awscurl` 安全地连接到启用 IAM 身份验证的数据库集群](iam-auth-connect-command-line.md#iam-auth-connect-awscurl)。

------
#### [ curl ]

运行如下命令：

```
curl -G https://{{your-neptune-endpoint}}:{{port}}/status
```

**注意**  
只有在您的集群上未启用 IAM 身份验证时，此命令才起作用。如果启用了 IAM 身份验证，请 AWS CLI 改用**awscurl**或。

------

运行良好的集群会返回包含以下内容的 JSON 响应`"status": "healthy"`。例如：

```
{
    "status": "healthy",
    "startTime": "Thu Aug 24 21:07:13 UTC 2023",
    "dbEngineVersion": "{{1.3.1.0.R1}}",
    "role": "writer",
    "dfeQueryEngine": "viaQueryHint",
    "gremlin": { "version": "tinkerpop-{{3.7.2}}" },
    "sparql": { "version": "sparql-1.1" },
    "opencypher": { "version": "Neptune-9.0.20190305-1.0" },
    "labMode": { ... },
    "features": { ... },
    "settings": { ... }
}
```

如果您无法访问终端节点，请验证您的网络配置是否允许端口 8182（或您配置的端口）上的流量，以及您的安全组规则是否允许来自您的客户端的入站连接。有关更多信息，请参阅 [确保安全地访问 Neptune](get-started-security.md)。有关设置 AWS CLI、SDK 或的帮助`curl`，请参阅[使用命令行工具](get-started-cli-tools.md)。