运行代理数 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

运行代理数

在本节中,您将使用 GRPC 作为二进制文件运行代理,并检查您的设备和队列是否正在工作并收集示例数据。

  1. 启动代理。

    SageMaker Edge Manager 代理可以以可执行文件和可链接格式 (ELF) 可执行二进制文件的形式作为独立进程运行,也可以作为动态共享对象 (.dll) 进行链接。作为独立可执行二进制文件运行是首选模式,Linux 支持此模式。

    此示例使用 GRPC 来运行代理。GRPC 是一个开源的高性能远程过程调用 (RPC) 框架,可以在任何环境中运行。有关 GRPC 的更多信息,请参阅GRPC 文档

    要使用 GRPC,请执行以下步骤:

    1. 在 .proto 文件中定义服务。

    2. 使用协议缓冲区编译器生成服务器和客户端代码。

    3. 使用 Python(或 GRPC 支持的其他语言)GrPC API 为您的服务编写服务器。

    4. 使用 Python(或 GRPC 支持的其他语言)GrPC API 为您的服务编写客户端。

    您下载的发布对象包含一个 GrPC 应用程序,可供您运行代理。该示例位于/bin发布工件的目录。这些区域有:sagemaker_edge_agent_binary二进制可执行文件位于此目录中。

    要使用此示例运行代理,请提供套接字文件(.sock)和 JSON .config 文件的路径:

    ./bin/sagemaker_edge_agent_binary -a /tmp/sagemaker_edge_agent_example.sock -c sagemaker_edge_config.json
  2. 检查您的设备。

    检查您的设备是否已连接并采样数据。通过手动或自动进行定期检查,您可以检查您的设备或车队是否正常工作。

    提供设备所属队组的名称和唯一设备标识符。在本地计算机上,运行以下命令:

    sagemaker_client.describe_device( DeviceName=device_name, DeviceFleetName=device_fleet_name )

    对于给定模型,您可以查看名称、模型版本、最新样本时间以及最后一次推断的时间。

    { "DeviceName": "sample-device", "DeviceFleetName": "demo-device-fleet", "IoTThingName": "sample-thing-name-1", "RegistrationTime": 1600977370, "LatestHeartbeat": 1600977370, "Models":[ { "ModelName": "mobilenet_v2.tar.gz", "ModelVersion": "1.1", "LatestSampleTime": 1600977370, "LatestInference": 1600977370 } ] }

    提供的时间戳LastetHeartbeat表示从设备接收的最后一个信号。LatestSampleTimeLatestInference分别描述了最后一个数据样本和推理的时间戳。

  3. 检查您的舰队。

    检查您的车队是否正在使用GetDeviceFleetReport。提供设备所属队列的名称。

    sagemaer_client.get_device_fleet_report( DeviceFleetName=device_fleet_name )

    对于给定模型,您可以查看名称、模型版本、最新示例时间和上次推断的时间,以及存储数据示例的 Amazon S3 存储桶 URI。

    # Sample output { "DeviceFleetName": "sample-device-fleet", "DeviceFleetArn": "arn:aws:sagemaker:us-west-2:9999999999:device-fleet/sample-fleet-name", "OutputConfig": { "S3OutputLocation": "s3://fleet-bucket/package_output", }, "AgentVersions":[{"Version": "1.1", "AgentCount": 2}]} "DeviceStats": {"Connected": 2, "Registered": 2}, "Models":[{ "ModelName": "sample-model", "ModelVersion": "1.1", "OfflineDeviceCount": 0, "ConnectedDeviceCount": 2, "ActiveDeviceCount": 2, "SamplingDeviceCount": 100 }] }