AWS IoT
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

设备代理与 AWS IoT Greengrass 的集成

AWS IoT Device Defender 可以与 AWS IoT Greengrass 结合使用。设备代理集成遵循标准 AWS IoT Greengrass Lambda 函数部署模式,让您能够为 AWS IoT Greengrass 核心设备添加 AWS IoT Device Defender 安全保障。要集成设备代理,请按照本部分列举的步骤操作。

先决条件:

  • 设置 AWS IoT Greengrass 环境。

  • 配置并运行 AWS IoT Greengrass 核心。

  • 确保您可以在 AWS IoT Greengrass 核心上成功部署和运行 Lambda 函数。

一般而言,此处描述的流程遵循的是《AWS IoT Greengrass 开发人员指南》中的创建并打包 Lambda 函数部分。

创建 Lambda 程序包

  1. 克隆 AWS IoT Device Defender Python 示例存储库。

    git clone https://github.com/aws-samples/aws-iot-device-defender-agent-sdk-python.git
  2. 创建并激活虚拟环境(可选,但推荐执行)。

    pip install virtualenv virtualenv metrics_lambda_environment source metrics_lambda_environment/bin/activate
  3. 在虚拟环境中安装 AWS IoT Device Defender 代理示例。从 PyPi 安装。

    pip install AWSIoTDeviceDefenderAgentSDK
  4. 安装下载的源。

    cd aws-iot-device-defender-agent-sdk-python #This must be run from the same directory as setup.py pip install .
  5. 创建一个空目录来组装 Lambda 函数。以下是 Lambda 目录。

    mkdir metrics_lambda cd metrics_lambda
  6. 完成创建并打包 Lambda 函数中的步骤 1-4。

  7. 将 AWS IoT Greengrass Python 开发工具包解压缩到 Lambda 目录。

    unzip ../aws_greengrass_core_sdk/sdk/python_sdk_1_1_0.zip cp -R ../aws_greengrass_core_sdk/examples/HelloWorld/greengrass_common . cp -R ../aws_greengrass_core_sdk/examples/HelloWorld/greengrasssdk . cp -R ../aws_greengrass_core_sdk/examples/HelloWorld/greengrass_ipc_python_sdk .
  8. 将 AWSIoTDeviceDefenderAgentSDK 模块复制到 Lambda 目录的根级别。

    cp -R ../aws-iot-device-defender-agent-sdk-python/AWSIoTDeviceDefenderAgentSDK .
  9. 将 AWS IoT Greengrass 代理复制到 Lambda 目录的根级别。

    cp ../aws-iot-device-defender-agent-sdk-python/samples/greengrass/greengrass_core_metrics_agent/greengrass_defender_agent.py .
  10. 自定义 AWS IoT Greengrass 代理,包含 AWS IoT Greengrass 核心设备的名称以及所需的指标采样率:

    • GREENGRASS_CORENAME 替换为 AWS IoT Greengrass 核心的名称。

    • SAMPLE_RATE_SECONDS 设置为所需的指标报告时间间隔。AWS IoT Device Defender 支持的最短报告时间间隔是 5 分钟(300 秒)。

  11. 将依赖项从虚拟环境(或系统)复制到 Lambda 目录的根级别。

    cp -R ../metrics_lambda_environment/lib/python2.7/site-packages/psutil . cp -R ../metrics_lambda_environment/lib/python2.7/site-packages/cbor .
  12. 创建 Lambda 函数 ZIP 文件。在 Lambda 目录的根级别执行此命令。

    rm *.zip zip -r greengrass_defender_metrics_lambda.zip *

配置并部署 AWS IoT Greengrass Lambda 函数

  1. 上传 Lambda ZIP 文件

  2. 选择 Python 2.7 运行时,并在“Handler (处理程序)”字段中输入 greengrass_defender_agent.function_handler

  3. 将 Lambda 函数配置为长时间生存的 Lambda 函数

  4. 配置从 Lambda 函数到 AWS IoT 云的订阅。对于 AWS IoT Device Defender,从 AWS IoT 云到 Lambda 函数的订阅不是必需的。

  5. 创建本地资源,以允许 Lambda 函数从 AWS IoT Greengrass Core 主机收集指标:

    • 遵照使用 Lambda 函数访问本地资源中的说明进行操作。使用以下参数:

      • 资源名称:Core Proc

      • 类型:Volume

      • 源路径:/proc

      • 目标路径:/host_proc

      • 组所有者文件访问权限:“Automatically add OS group permissions of the Linux group that owns the resource (自动添加拥有资源的 Linux 组的操作系统组权限)”

      • 将资源与指标 Lambda 函数关联。

  6. 将 Lambda 函数部署到 AWS IoT Greengrass 组。

使用 AWS IoT 控制台审核 AWS IoT Device Defender 设备指标

  1. 将 AWS IoT Greengrass Lambda 函数中的发布主题暂时修改为“metrics/test (指标/测试)”。

  2. 部署 Lambda 函数。

  3. 要查看 AWS IoT Greengrass 核心正在发布的指标,请在 AWS IoT 控制台的 Test (测试) 页上,添加对临时主题的订阅(“metrics/test (指标/测试)”)。