

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

# 使用在数据库 Amazon CLI 集群上设置 Neptune ML
<a name="machine-learning-cluster-setup"></a>

除了 Amazon CloudFormation 快速入门模板和 Amazon Web Services 管理控制台，您还可以使用设置 Neptune ML。 Amazon CLI

## 为 Neptune ML 集群创建数据库集群参数组
<a name="machine-learning-enabling-create-param-group"></a>

以下 Amazon CLI 命令创建新的数据库集群参数组并将其设置为与 Neptune ML 配合使用：

**为 Neptune ML 创建和配置数据库集群参数组**

1. 创建新的数据库集群参数组：

   ```
   aws neptune create-db-cluster-parameter-group \
     --db-cluster-parameter-group-name {{(name of the new DB cluster parameter group)}} \
     --db-parameter-group-family neptune1
     --description "{{(description of your machine learning project)}}" \
     --region {{(Amazon region, such as us-east-1)}}
   ```

1. 创建设置为 ARN 的`neptune_ml_iam_role`数据库集群参数，`SageMakerExcecutionIAMRole`供数据库集群在调用 SageMaker AI 创建任务和从托管的 ML 模型中获取预测时使用：

   ```
   aws neptune modify-db-cluster-parameter-group \
     --db-cluster-parameter-group-name {{(name of the new DB cluster parameter group)}} \
     --parameters "ParameterName=neptune_ml_iam_role, \
                   ParameterValue={{ARN of the SageMakerExcecutionIAMRole}}, \
                   Description=NeptuneMLRole, \
                   ApplyMethod=pending-reboot" \
     --region {{(Amazon region, such as us-east-1)}}
   ```

   设置此参数允许 Neptune 访问 SageMaker 人工智能，而无需在每次通话时都传递角色。

   有关如何创建 `SageMakerExcecutionIAMRole` 的信息，请参阅[创建自定义 NeptuneSageMakerIAMRole 角色](machine-learning-manual-setup.md#ml-manual-setup-sm-role)。

1. 最后，使用 `describe-db-cluster-parameters` 检查新数据库集群参数组中的所有参数是否都设置为您希望的值：

   ```
   aws neptune describe-db-cluster-parameters \
     --db-cluster-parameter-group-name {{(name of the new DB cluster parameter group)}} \
     --region {{(Amazon region, such as us-east-1)}}
   ```

## 将新的数据库集群参数组附加到将与 Neptune ML 一起使用的数据库集群
<a name="machine-learning-enabling-attach-param-group"></a>

现在，您可以使用以下命令，将刚刚创建的新数据库集群参数组附加到现有数据库集群：

```
aws neptune modify-db-cluster \
  --db-cluster-identifier {{(the name of your existing DB cluster)}} \
  --apply-immediately
  --db-cluster-parameter-group-name {{(name of your new DB cluster parameter group)}} \
  --region {{(Amazon region, such as us-east-1)}}
```

要使所有参数生效，您可以重启数据库集群：

```
aws neptune reboot-db-instance
  --db-instance-identifier (name of the primary instance of your DB cluster) \
  --profile {{(name of your Amazon profile to use)}} \
  --region {{(Amazon region, such as us-east-1)}}
```

或者，如果您要创建与 Neptune ML 结合使用的新数据库集群，则可以使用以下命令创建附加了新参数组的集群，然后创建新的主（写入器）实例：

```
cluster-name={{(the name of the new DB cluster)}}
aws neptune create-db-cluster
  --db-cluster-identifier ${cluster-name}
  --engine graphdb \
  --engine-version 1.0.4.1 \
  --db-cluster-parameter-group-name {{(name of your new DB cluster parameter group)}} \
  --db-subnet-group-name {{(name of the subnet to use)}} \
  --region {{(Amazon region, such as us-east-1)}}

aws neptune create-db-instance
  --db-cluster-identifier ${cluster-name}
  --db-instance-identifier ${cluster-name}-i \
  --db-instance-class {{(the instance class to use, such as db.r5.xlarge)}}
  --engine graphdb \
  --region {{(Amazon region, such as us-east-1)}}
```

## 将`NeptuneSageMakerIAMRole`连接到您的数据库集群，以便它可以访问 SageMaker AI 和 Amazon S3 资源
<a name="machine-learning-enabling-attach-neptune-sagemaker-role"></a>

最后，按照中的[创建自定义 NeptuneSageMakerIAMRole 角色](machine-learning-manual-setup.md#ml-manual-setup-sm-role)说明创建一个 IAM 角色，该角色将允许您的数据库集群与 A SageMaker I 和 Amazon S3 通信。然后，使用以下命令将您创建的 `NeptuneSageMakerIAMRole` 角色附加到数据库集群：

```
aws neptune add-role-to-db-cluster
  --db-cluster-identifier ${cluster-name}
  --role-arn arn:aws:iam::{{(the ARN number of the role's ARN)}}:role/NeptuneMLRole \
  --region {{(Amazon region, such as us-east-1)}}
```

## 在你的 Neptune VP SageMaker C 中为人工智能创建两个终端节点
<a name="machine-learning-sm-endpoints"></a>

Neptune ML 需要在你的 Neptune 数据库集群的 VPC 中使用两个 SageMaker AI 终端节点：
+ `com.amazonaws.{{(Amazon region, like us-east-1)}}.sagemaker.runtime`
+ `com.amazonaws.{{(Amazon region, like us-east-1)}}.sagemaker.api`

如果您尚未使用快速入门 Amazon CloudFormation 模板（它会自动为您创建这些模板），则可以使用以下 Amazon CLI 命令来创建它们：

此命令创建 `sagemaker.runtime` 端点：

```
aws ec2 create-vpc-endpoint
  --vpc-id {{(the ID of your Neptune DB cluster's VPC)}}
  --vpc-endpoint-type Interface
  --service-name com.amazonaws.{{(Amazon region, like us-east-1)}}.sagemaker.runtime
  --subnet-ids {{(the subnet ID or IDs that you want to use)}}
  --security-group-ids {{(the security group for the endpoint network interface, or omit to use the default)}}
  --private-dns-enabled
```

而此命令创建 `sagemaker.api` 端点：

```
aws ec2 create-vpc-endpoint
  --vpc-id {{(the ID of your Neptune DB cluster's VPC)}}
  --vpc-endpoint-type Interface
  --service-name com.amazonaws.{{(Amazon region, like us-east-1)}}.sagemaker.api
  --subnet-ids {{(the subnet ID or IDs that you want to use)}}
  --security-group-ids {{(the security group for the endpoint network interface, or omit to use the default)}}
  --private-dns-enabled
```

您也可以使用 [VPC 控制台](https://console.amazonaws.cn/vpc/)创建这些端点。请参阅 “使用[保护亚马逊中的预测调用” Amazon PrivateLink 和 “ SageMaker 使用](https://www.amazonaws.cn/blogs/machine-learning/secure-prediction-calls-in-amazon-sagemaker-with-aws-privatelink/)[保护所有 Amazon SageMaker API 调用](https://www.amazonaws.cn/blogs/machine-learning/securing-all-amazon-sagemaker-api-calls-with-aws-privatelink/)” Amazon PrivateLink。

## 在数据库集群参数组中创建 SageMaker AI 推理终端节点参数
<a name="machine-learning-set-inference-endpoint-cluster-parameter"></a>

为避免指定在每次查询模型时使用的模型的 SageMaker AI 推理终端节点，请在 Neptune ML 的数据库集群参数组`neptune_ml_endpoint`中创建一个名为 Neptune ML 的数据库集群参数。将此参数设置为相关实例端点的 `id`。

你可以使用以下 Amazon CLI 命令来做到这一点：

```
aws neptune modify-db-cluster-parameter-group \
  --db-cluster-parameter-group-name neptune-ml-demo \
  --parameters "ParameterName=neptune_ml_endpoint, \
                ParameterValue={{(the name of the SageMaker AI inference endpoint you want to query)}}, \
                Description=NeptuneMLEndpoint, \
                ApplyMethod=pending-reboot" \
  --region {{(Amazon region, such as us-east-1)}}
```