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

推理管道问题排查

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

推理管道的 Amazon ECR 权限故障排除

在包括 SageMaker 内置算法的管道中使用自定义 Docker 映像时,您需要具有 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 Inference 管道进行故障排除

针对将推理管道部署到 Amazon CloudWatch 以下路径的每个端点,SageMaker 为这些端点发布容器日志。

/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. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

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

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

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

    
                            推理管道的 CloudWatch 日志流。

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

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

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

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

收到来自 MyContainerName1 的响应,状态代码为 200。但是,从 MyContainerName1 到 MyContainerName2 的请求负载为 6000000 字节,超过了 5 MB 的最大大小限制。

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