

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

# 使用部署编译后的模型 Amazon CLI
<a name="neo-deployment-hosting-services-cli"></a>

如果模型是使用 适用于 Python (Boto3) 的 Amazon SDK、或 Amazon A SageMaker I 控制台编译的 Amazon CLI，则必须满足[先决条件](https://docs.amazonaws.cn//sagemaker/latest/dg/neo-deployment-hosting-services-prerequisites)部分。按照以下步骤使用创建和部署 SageMaker Neo 编译模型。[Amazon CLI](https://docs.amazonaws.cn/cli/latest/reference/)

**Topics**
+ [部署模型](#neo-deploy-cli)

## 部署模型
<a name="neo-deploy-cli"></a>

满足先决[条件](https://docs.amazonaws.cn//sagemaker/latest/dg/neo-deployment-hosting-services-prerequisites)后，使用`create-model``create-enpoint-config`、和`create-endpoint` Amazon CLI 命令。以下步骤说明如何使用这些命令部署使用 Neo 编译的模型：



### 创建模型
<a name="neo-deployment-hosting-services-cli-create-model"></a>

从 [Neo 推理容器镜像中，选择推理图像](https://docs.amazonaws.cn/sagemaker/latest/dg/neo-deployment-hosting-services-container-images.html) URI，然后使用 `create-model` API 创建 SageMaker AI 模型。为此，请完成两个步骤：

1. 创建 `create_model.json` 文件。在文件中，指定模型名称、图像 URI、Amazon S3 存储桶中`model.tar.gz`文件的路径以及您的 SageMaker AI 执行角色：

   ```
   {
       "ModelName": "insert model name",
       "PrimaryContainer": {
           "Image": "insert the ECR Image URI",
           "ModelDataUrl": "insert S3 archive URL",
           "Environment": {"See details below"}
       },
       "ExecutionRoleArn": "ARN for AmazonSageMaker-ExecutionRole"
   }
   ```

   如果您使用 SageMaker AI 训练模型，请指定以下环境变量：

   ```
   "Environment": {
       "SAGEMAKER_SUBMIT_DIRECTORY" : "[Full S3 path for *.tar.gz file containing the training script]"
   }
   ```

   如果您没有使用 SageMaker AI 训练模型，请指定以下环境变量：

------
#### [ MXNet and PyTorch ]

   ```
   "Environment": {
       "SAGEMAKER_PROGRAM": "inference.py",
       "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code",
       "SAGEMAKER_CONTAINER_LOG_LEVEL": "20",
       "SAGEMAKER_REGION": "insert your region",
       "MMS_DEFAULT_RESPONSE_TIMEOUT": "500"
   }
   ```

------
#### [ TensorFlow ]

   ```
   "Environment": {
       "SAGEMAKER_PROGRAM": "inference.py",
       "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code",
       "SAGEMAKER_CONTAINER_LOG_LEVEL": "20",
       "SAGEMAKER_REGION": "insert your region"
   }
   ```

------
**注意**  
`AmazonSageMakerFullAccess` 和 `AmazonS3ReadOnlyAccess` 策略必须附加到 `AmazonSageMaker-ExecutionRole` IAM 角色。

1. 运行如下命令：

   ```
   aws sagemaker create-model --cli-input-json file://create_model.json
   ```

   有关 `create-model` API 的完整语法，请参阅 [https://docs.amazonaws.cn/cli/latest/reference/sagemaker/create-model.html](https://docs.amazonaws.cn/cli/latest/reference/sagemaker/create-model.html)。

### 创建端点配置
<a name="neo-deployment-hosting-services-cli-create-endpoint-config"></a>

创建 A SageMaker I 模型后，使用 `create-endpoint-config` API 创建端点配置。为此，请使用端点配置规范创建一个 JSON 文件。例如，可使用以下代码模板并将其另存为 `create_config.json`：

```
{
    "EndpointConfigName": "<provide your endpoint config name>",
    "ProductionVariants": [
        {
            "VariantName": "<provide your variant name>",
            "ModelName": "my-sagemaker-model",
            "InitialInstanceCount": 1,
            "InstanceType": "<provide your instance type here>",
            "InitialVariantWeight": 1.0
        }
    ]
}
```

现在运行以下 Amazon CLI 命令来创建您的终端节点配置：

```
aws sagemaker create-endpoint-config --cli-input-json file://create_config.json
```

有关 `create-endpoint-config` API 的完整语法，请参阅 [https://docs.amazonaws.cn/cli/latest/reference/sagemaker/create-endpoint-config.html](https://docs.amazonaws.cn/cli/latest/reference/sagemaker/create-endpoint-config.html)。

### 创建端点
<a name="neo-deployment-hosting-services-cli-create-endpoint"></a>

创建端点配置后，使用 `create-endpoint` API 创建端点：

```
aws sagemaker create-endpoint --endpoint-name '<provide your endpoint name>' --endpoint-config-name '<insert your endpoint config name>'
```

有关 `create-endpoint` API 的完整语法，请参阅 [https://docs.amazonaws.cn/cli/latest/reference/sagemaker/create-endpoint.html](https://docs.amazonaws.cn/cli/latest/reference/sagemaker/create-endpoint.html)。