

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

# 推理管道问题排查
<a name="inference-pipeline-troubleshoot"></a>

要对推理管道问题进行故障排除，请使用 CloudWatch 日志和错误消息。如果您在包含 Amazon A SageMaker I 内置算法的管道中使用自定义 Docker 镜像，则可能还会遇到权限问题。要授予所需的权限，请创建 Amazon Elastic Container Registry (Amazon ECR) 策略。

**Topics**
+ [推理管道的 Amazon ECR 权限故障排除](#inference-pipeline-troubleshoot-permissions)
+ [使用 CloudWatch 日志对 SageMaker AI 推理管道进行故障排除](#inference-pipeline-troubleshoot-logs)
+ [使用错误消息对推理管道进行问题排查](#inference-pipeline-troubleshoot-errors)

## 推理管道的 Amazon ECR 权限故障排除
<a name="inference-pipeline-troubleshoot-permissions"></a>

当您在包含 [SageMaker AI 内置算法](https://docs.amazonaws.cn/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html)的管道中使用自定义 Docker 镜像时，您需要一项 A [mazon ECR 策略](https://docs.amazonaws.cn/AmazonECR/latest/userguide/what-is-ecr.html)。该策略允许您的 Amazon ECR 存储库授予 SageMaker 人工智能提取映像的权限。该策略必须添加以下权限：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "allowSageMakerToPull",
            "Effect": "Allow",
            "Principal": {
                "Service": "sagemaker.amazonaws.com"
            },
            "Action": [
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "ecr:BatchCheckLayerAvailability"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 使用 CloudWatch 日志对 SageMaker AI 推理管道进行故障排除
<a name="inference-pipeline-troubleshoot-logs"></a>

SageMaker AI 通过以下路径为每个容器发布将推理管道部署到 Amazon CloudWatch 的终端节点的容器日志。

```
/aws/sagemaker/Endpoints/{EndpointName}/{Variant}/{InstanceId}/{ContainerHostname}
```

例如，此端点的日志会发布到以下日志组和流：

```
EndpointName: MyInferencePipelinesEndpoint
Variant: MyInferencePipelinesVariant
InstanceId: i-0179208609ff7e488
ContainerHostname: MyContainerName1 and MyContainerName2
```

```
logGroup: /aws/sagemaker/Endpoints/MyInferencePipelinesEndpoint
logStream: MyInferencePipelinesVariant/i-0179208609ff7e488/MyContainerName1
logStream: MyInferencePipelinesVariant/i-0179208609ff7e488/MyContainerName2
```

*日志流*是共享同一来源的一系列日志事件。每个单独的日志源 CloudWatch 构成一个单独的日志流。*日志组*是一组具有相同保留期、监控和访问控制设置的日志流。

**查看日志组和流**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.amazonaws.cn/cloudwatch/)。

1. 在导航窗格中，选择 **Logs (日志)**。

1. 在 **Log Groups (日志组)** 中，筛选 **MyInferencePipelinesEndpoint**：  
![\[针对推理管道端点筛选的 CloudWatch 日志组。\]](http://docs.amazonaws.cn/sagemaker/latest/dg/images/pipeline-log-group-filter.png)

1. 要查看日志流，请在 “ CloudWatch **日志组**” 页面上选择**MyInferencePipelinesEndpoint**，然后选择 “**搜索日志组**”。  
![\[推理管道的 CloudWatch 日志流。\]](http://docs.amazonaws.cn/sagemaker/latest/dg/images/pipeline-log-streams-2.png)

有关 A SageMaker I 发布的日志的列表，请参阅[推理管道日志和指标](inference-pipeline-logs-metrics.md)。

## 使用错误消息对推理管道进行问题排查
<a name="inference-pipeline-troubleshoot-errors"></a>

推理管道错误消息指示哪些容器失败。

如果 A SageMaker I 在调用终端节点时发生错误，则该服务将返回`ModelError`（错误代码 424），表示哪个容器出现故障。如果请求负载（来自前一个容器的响应）超过 5 MB 的限制， SageMaker AI 会提供详细的错误消息，例如：

已收到来自 MyContainerName 1 的响应，状态码为 200。但是，从 MyContainerName 1 到 MyContainerName 2 的请求有效载荷为 6000000 字节，已超过 5 MB 的最大限制。

``

如果在 SageMaker AI 创建终端节点时，容器未通过 ping 运行状况检查，则它会返回 a `ClientError` 并指示所有在上次运行状况检查中未通过 ping 检查的容器。