推理管道问题排查 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

推理管道问题排查

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

推理管道的 Amazon ECR 权限问题排查

当您在包括SageMaker 内置算法,您需要一个Amazon ECR 政策. 该策略允许您的 Amazon ECR 存储库向授予 SageMaker 拉取映像的权限。该策略必须添加以下权限:

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

使用 CloudWatch Logs 对 SageMaker 推理管道进行故障排除

SageMaker 针对将推理管道部署到 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

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

查看日志组和流

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,选择 Logs (日志)

  3. Log Groups (日志组) 中,筛选 MyInferencePipelinesEndpoint

    
                            为推理管道终端节点筛选的 CloudWatch 日志组。
  4. 要查看日志流,请在 CloudWatch日志组页面上,选择MyInferencePipelinesEndpoint,然后搜索日志组.

    
                            推理管道的 CloudWatch 日志流。

有关 SageMaker 发布的日志列表,请参阅推理管道日志和指标.

使用错误消息对推理管道进行问题排查

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

如果 SageMaker 调用终端节点时发生错误,则该服务返回ModelError(错误代码 424),指示哪个容器失败。如果请求负载(来自以前容器的响应)超过了 5 MB 的限制,SageMaker 将提供类似于下文的详细错误消息:

Received response from MyContainerName1 with status code 200. However, the request payload from MyContainerName1 to MyContainerName2 is 6000000 bytes, which has exceeded the maximum limit of 5 MB.

如果某个容器在 SageMaker 创建终端节点时未能通过 ping 运行状况检查,它将返回ClientError并指示在上次运行状况检查中未能通过 ping 检查的所有容器。