

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

# 使用 Boto3 部署编译的模型
<a name="neo-deployment-hosting-services-boto3"></a>

如果模型是使用 适用于 Python (Boto3) 的 AWS SDK、或 Amazon A SageMaker I 控制台编译的 AWS CLI，则必须满足[先决条件](https://docs.aws.amazon.com//sagemaker/latest/dg/neo-deployment-hosting-services-prerequisites)部分。按照以下步骤使用适用于 [Python 的亚马逊 Web Services 软件开发工具包 (Boto](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html) 3) 创建和部署 SageMaker Neo-compiled模型。

**Topics**
+ [部署模型](#neo-deployment-hosting-services-boto3-steps)

## 部署模型
<a name="neo-deployment-hosting-services-boto3-steps"></a>

在满足[先决条件](https://docs.aws.amazon.com//sagemaker/latest/dg/neo-deployment-hosting-services-prerequisites)后，使用 `create_model`、`create_enpoint_config` 和 `create_endpoint` API。

以下示例演示如何使用这些 API 来部署使用 Neo 编译的模型：

```
import boto3
client = boto3.client('sagemaker')

# create sagemaker model
create_model_api_response = client.create_model(
                                    ModelName={{'my-sagemaker-model'}},
                                    PrimaryContainer={
                                        'Image': {{<insert the ECR Image URI>}},
                                        'ModelDataUrl': {{'s3://path/to/model/artifact/model.tar.gz'}},
                                        'Environment': {}
                                    },
                                    ExecutionRoleArn={{'ARN for AmazonSageMaker-ExecutionRole'}}
                            )

print ("create_model API response", create_model_api_response)

# create sagemaker endpoint config
create_endpoint_config_api_response = client.create_endpoint_config(
                                            EndpointConfigName={{'sagemaker-neomxnet-endpoint-configuration'}},
                                            ProductionVariants=[
                                                {
                                                    'VariantName': {{<provide your variant name>}},
                                                    'ModelName': {{'my-sagemaker-model}}',
                                                    'InitialInstanceCount': 1,
                                                    'InstanceType': {{<provide your instance type here>}}
                                                },
                                            ]
                                       )

print ("create_endpoint_config API response", create_endpoint_config_api_response)

# create sagemaker endpoint
create_endpoint_api_response = client.create_endpoint(
                                    EndpointName={{'provide your endpoint name'}},
                                    EndpointConfigName={{<insert your endpoint config name>}},
                                )

print ("create_endpoint API response", create_endpoint_api_response)
```

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

有关 `create_model`、`create_endpoint_config` 和 `create_endpoint` API 的完整语法，请分别参阅 [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_model](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_model)、[https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_endpoint_config](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_endpoint_config) 和 [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_endpoint](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_endpoint)。

如果您没有使用 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"}}
}
```

------

 如果您使用 SageMaker AI 训练模型，请将环境变量指定`SAGEMAKER_SUBMIT_DIRECTORY`为包含训练脚本的完整 Amazon S3 存储桶 URI。