设置新的 V2 核心设备来测试 V1 应用 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

设置新的 V2 核心设备来测试 V1 应用

设置新的Amazon IoT Greengrass V2要部署和测试的核心设备Amazon-提供的组件和Amazon Lambda适用于您的函数Amazon IoT Greengrass V1应用程序。您还可以使用此 V2 核心设备开发和测试在核心设备上运行本机进程的其他自定义 Greengrass 组件。在 V2 核心设备上测试应用程序后,您可以将现有的 V1 核心设备升级到 V2 并部署提供 V1 功能的 V2 组件。

第 1 步:安装Amazon IoT Greengrass V2在新设备上

安装Amazon IoT Greengrass新设备上的核心软件 v2.x。你可以关注入门教程设置设备以及学习如何开发和部署组件。本教程使用自动预配置以快速设置设备。当你安装Amazon IoT Greengrass核心软件 v2.x,请指定--deploy-dev-tools要部署Greengrass CLI,以便您可以直接在设备上开发、测试和调试组件。有关其他安装选项的更多信息,包括如何安装Amazon IoT Greengrass代理后面的核心软件或使用硬件安全模块 (HSM),请参阅安装 Amazon IoT Greengrass Core 软件.

(可选)启用日志记录到亚马逊 CloudWatch 日志

使 V2 核心设备能够将日志上传到亚马逊 CloudWatch 日志,您可以部署Amazon-提供日志管理器组件. 您可以使用 CloudWatch 用于查看组件日志的日志,因此您可以在无需访问核心设备的文件系统的情况下进行调试和排查 有关更多信息,请参阅 显示器Amazon IoT Greengrass圆木

第 2 步:创建和部署Amazon IoT Greengrass V2迁移的组件Amazon IoT Greengrass V1应用程序

您最可以运行Amazon IoT Greengrass V1开启的应用Amazon IoT Greengrass V2. 您可以将 Lambda 函数作为在上运行的组件导入Amazon IoT Greengrass V2,您也可以使用Amazon-提供的组件提供与相同的功能Amazon IoT Greengrass连接器。

您还可以开发自定义组件来构建要在 Greengrass 核心设备上运行的任何功能或运行时。有关如何在本地开发和测试组件的信息,请参阅CreateAmazon IoT Greengrass组件.

导入 V1 Lambda 函数

您可以将 Lambda 函数导入为Amazon IoT Greengrass V2组件。从以下方法中进行选择:

  • 直接将 V1 Lambda 函数作为 Greengrass 组件导入。

  • 更新 Lambda 函数以使用Amazon IoT Device SDKv2,然后将 Lambda 函数作为 Greengrass 组件导入。

  • 创建使用非 Lambda 代码的自定义组件和Amazon IoT Device SDKv2 以实现与 Lambda 函数相同的功能。

如果您的 Lambda 函数使用的功能(例如流管理器或本地密钥),则必须定义对Amazon-提供了包装这些功能的组件。当您部署 Lambda 函数组件时,部署还包括您定义为依赖项的每个功能的组件。在部署中,您可以配置参数,例如要将哪些密钥部署到核心设备。并非所有 V1 功能都需要 V2 上的 Lambda 函数的组件依赖关系。以下列表描述了如何在 V2 Lambda 函数组件中使用 V1 功能。

  • 访问其他Amazon服务

    如果您的 Lambda 函数使用Amazon向其他人发出请求的凭据Amazon服务,核心设备的令牌交换角色必须允许核心设备执行AmazonLambda 函数使用的操作。有关更多信息,请参阅 授权核心设备与Amazon服务

  • 流管理器

    如果您的 Lambda 函数使用流管理器,请指定aws.greengrass.StreamManager作为导入函数时的组件依赖关系。部署流管理器组件时,请指定要为目标核心设备设置的流管理器参数。核心设备的令牌交换角色必须允许核心设备访问Amazon Web Services 云与直播管理器一起使用的目的地。有关更多信息,请参阅 流管理器

  • 本地密钥

    如果 Lambda 函数使用本地密钥,请指定aws.greengrass.SecretManager作为导入函数时的组件依赖关系。部署密钥管理器组件时,请指定要部署到目标核心设备的密钥资源。核心设备的令牌交换角色必须允许核心设备检索要部署的秘密资源。有关更多信息,请参阅 密钥管理器

    当您部署 Lambda 函数组件时,请将其配置为IPC 授权策略授予使用的权限GetSecretValue IPC 操作中的Amazon IoT Device SDKV2。

  • 本地影子

    如果 Lambda 函数与本地阴影交互,则必须更新 Lambda 函数代码才能使用Amazon IoT Device SDKV2。您还必须指定aws.greengrass.ShadowManager作为导入函数时的组件依赖关系。有关更多信息,请参阅 与设备阴影交互

    当您部署 Lambda 函数组件时,请将其配置为IPC 授权策略授予使用的权限影子 IPC 操作中的Amazon IoT Device SDKV2。

  • 订阅

    • 如果 Lambda 函数订阅来自云源的消息,请在导入函数时将这些订阅指定为事件源。

    • 如果您的 Lambda 函数订阅了来自另一个 Lambda 函数的消息,或者您的 Lambda 函数将消息发布到Amazon IoT Core或其他 Lambda 函数,请配置和部署旧版订阅路由器组件当您部署 Lambda 函数时。当您部署旧版订阅路由器组件时,请指定 Lambda 函数使用的订阅。

      注意

      仅当您的 Lambda 函数使用publish()函数Amazon IoT Greengrass核心 SDK。如果您将 Lambda 函数代码更新为使用中的进程间通信 (IPC) 接口Amazon IoT Device SDKV2,您无需部署旧版订阅路由器组件。有关更多信息,请参阅下列内容进程间通信:服务:

    • 如果 Lambda 函数订阅了来自本地连接设备的消息,请在导入函数时将这些订阅指定为事件源。还必须配置和部署MQTT 桥接组件将来自连接的设备的消息中继到指定为事件源的本地发布/订阅主题。

    • 如果 Lambda 函数将消息发布到本地连接的设备,则必须更新 Lambda 函数代码才能使用Amazon IoT Device SDKV2 到发布本地发布/订阅消息. 还必须配置和部署MQTT 桥接组件将来自本地发布/订阅消息代理的消息中继到连接的设备。

  • 本地卷和设备

    如果您的容器化 Lambda 函数访问本地卷或设备,请在导入 Lambda 函数时指定这些卷和设备。此功能不需要组件依赖。

有关更多信息,请参阅 运行Amazon Lambda功能

使用 V1 连接器

你可以部署Amazon-提供与部分相同功能的组件Amazon IoT Greengrass连接器。创建部署时,可以配置连接器的参数。

运行 Docker 容器

Amazon IoT Greengrass V2不提供直接替换 V1 Docker 应用程序部署连接器的组件。但是,您可以使用 Docker 应用程序管理器组件下载 Docker 映像,然后从下载的映像创建运行 Docker 容器的自定义组件。有关更多信息,请参阅 运行 Docker 容器Docker 应用程序经理

运行机器学习推理

Amazon IoT Greengrass V2提供亚马逊 SageMaker 安装亚马逊的边缘管理器组件 SageMaker 边缘管理器代理程序并使您能够使用 SageMaker 在 Greengrass 核心设备上将模型组件作为模型组件。Amazon IoT Greengrass V2还提供安装的组件深度学习运行时TensorFlow 精简版在您的设备上。你可以使用相应的 DLR 和 TensorFlow 用于执行样本图像分类和对象检测推理的精简模型和推理组件。要使用其他机器学习框架,例如 MxNet 和 TensorFlow,您可以开发自己使用这些框架的自定义组件。

Connect V1 Greengrass 设备

中的已连接设备Amazon IoT Greengrass V1在中称为客户端设备Amazon IoT Greengrass V2.Amazon IoT Greengrass V2对客户端设备的支持与向后兼容Amazon IoT Greengrass V1,因此您可以将 V1 客户端设备连接到 V2 核心设备,而无需更改其应用程序代码。要使客户端设备能够连接到 V2 核心设备,请部署启用客户端设备支持的 Greengrass 组件,然后将客户端设备与核心设备关联。要在客户端设备之间中继消息,Amazon IoT Core云服务和 Greengrass 组件(包括 Lambda 函数)部署和配置MQTT 桥接组件. 你可以部署IP 探测器组件自动检测连接信息,也可以手动管理终端节点。有关更多信息,请参阅 与本地 IoT 设备互动

启用本地影子服务

InAmazon IoT Greengrass V2,本地影子服务由Amazon-提供了影子管理器组件。Amazon IoT Greengrass V2还包括对命名阴影的支持。使组件能够与本地阴影进行交互并将阴影状态同步到Amazon IoT Core,配置和部署影子管理器组件,并在组件代码中使用影子 IPC 操作。有关更多信息,请参阅 与设备阴影交互

与 集成Amazon IoT SiteWise

如果你使用 V1 核心设备作为Amazon IoT SiteWise网关,遵循说明将新的 V2 核心设备设置为Amazon IoT SiteWise网关。Amazon IoT SiteWise提供了一个安装脚本,用于部署Amazon IoT SiteWise适合你的组件。

第 3 步:测试您的Amazon IoT Greengrass V2应用程序

在创建 V2 组件并将其部署到新的 V2 核心设备之后,请验证您的应用程序是否符合预期。可以查看设备的日志以查看组件的标准输出 (stdout) 和标准错误 (stderr) 消息。有关更多信息,请参阅 显示器Amazon IoT Greengrass圆木

如果你部署了Greengrass CLI对于核心设备,您可以使用它来调试组件及其配置。有关更多信息,请参阅 Greengrass CLI 命令

在验证应用程序是否在 V2 核心设备上工作之后,您可以将应用程序的 Greengrass 组件部署到其他核心设备。如果您开发了运行本机进程或 Docker 容器的自定义组件,则必须首先发布这些组件到Amazon IoT Greengrass服务将它们部署到其他核心设备。