Legacy - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Legacy

传统订阅路由器 (aws.greengrass.LegacySubscriptionRouter) 管理 Greengrass 核心设备上的订阅。订阅是Amazon IoT Greengrass V1 的一项功能,它定义了 Lambda 函数可用于在核心设备上发送 MQTT 消息的主题。有关更多信息,请参阅《Amazon IoT GreengrassV1 开发者指南》中的 MQTT 消息工作流程中的托管订阅

您可以使用此组件启用对使用Amazon IoT Greengrass核心 SDK 的连接器组件和 Lambda 函数组件的订阅。

注意

仅当您的 Lambda 函数使用 CAmazon IoT Greengrass ore SDK 中的publish()函数时,才需要传统订阅路由器组件。如果您更新 Lambda 函数代码以使用Amazon IoT Device SDK V2 中的进程间通信 (IPC) 接口,则无需部署传统订阅路由器组件。,(

版本

此组件有以下版本:

  • 2.1.x

  • 2.0.x

类型

组件是通用组件 (aws.greengrass.generic)。 Greengrass 核心运行组件的生命周期脚本。

有关更多信息,请参阅 组件类型

操作系统

此组件只能安装在 Linux 核心设备上。

附属物

部署组件时,Amazon IoT Greengrass还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖项的要求才能成功部署该组件。本节列出了此组件已发布版本的依赖关系以及为每个依赖项定义组件版本的语义版本约束。您还可以在Amazon IoT Greengrass控制台中查看每个版本组件的依赖关系。在组件详细信息页面上,查找 “依赖关系” 列表。

2.1.7

下表列出了此组件版本 2.1.7 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.9.0 软性
2.1.6

下表列出了此组件版本 2.1.6 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.8.0 软性
2.1.5

下表列出了此组件版本 2.1.5 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.7.0 软性
2.1.4

下表列出了此组件版本 2.1.4 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.6.0 软性
2.1.3

下表列出了此组件版本 2.1.3 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.5.0 软性
2.1.2

2.1.2。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.4.0 软性
2.1.1

2.1.1。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.3.0 软性
2.1.0

下表列出了此组件版本 2.1.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <2.0 软性
2.0.3

下表列出了此组件版本 2.0.3 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.3 <2.1.0 软性

有关组件依赖关系的更多信息,请参阅组件配方参考

配置

此组件提供以下配置参数,您可以在部署组件时对其进行自定义。

v2.1.x
subscriptions

(可选)要在核心设备上启用的订阅。这是一个对象,其中每个密钥都是唯一的 ID,每个值都是定义该连接器订阅的对象。在部署使用 CAmazon IoT Greengrass ore SDK 的 V1 连接器组件或 Lambda 函数时,必须配置订阅。

Passenger():

id

ID。此 ID 必须与此订阅对象的密钥相匹配。

source

Lambda 函数,它使用Amazon IoT Greengrass核心软件开发工具包就您在中指定的主题发布 MQTT 消息subject。指定下列项之一:

  • 核心设备上 Lambda 函数组件的名称。使用component:前缀指定组件名称,例如component:com.example.HelloWorldLambda

  • Lambda Amazon (ARN)。

    重要

    如果 Lambda 函数的版本发生变化,则必须使用新版本的函数配置订阅。否则,在版本与订阅匹配之前,此组件不会路由消息。

    Amazon (ARN)。您不能使用像 $LATEST 这样的版本别名。

要部署 V1 连接器组件的订阅,请指定该组件的名称或连接器组件的 Lambda 函数的 ARN。

subject

源和目标可以发布和接收消息的 MQTT 主题或主题过滤器。此值支持+#主题通配符。

target

接收有关您在中指定的主题的 MQTT 消息的目标subject。订阅指定该source函数向核心设备上的 Lambda 函数发布 MQTT 消息Amazon IoT Core或向其发布 MQTT 消息。指定下列项之一:

  • cloud。 该source函数将 MQTT 消息发布到Amazon IoT Core。

  • 核心设备上 Lambda 函数组件的名称。使用component:前缀指定组件名称,例如component:com.example.HelloWorldLambda

  • Lambda Amazon (ARN)。

    重要

    如果 Lambda 函数的版本发生变化,则必须使用新版本的函数配置订阅。否则,在版本与订阅匹配之前,此组件不会路由消息。

    Amazon (ARN)。您不能使用像 $LATEST 这样的版本别名。

默认值:No

例 配置更新示例(定义订阅Amazon IoT Core)

以下示例指定com.example.HelloWorldLambda Lambda 函数组件向Amazon IoT Core该hello/world主题发布 MQTT 消息。

{ "subscriptions": { "Greengrass_HelloWorld_to_cloud": { "id": "Greengrass_HelloWorld_to_cloud", "source": "component:com.example.HelloWorldLambda", "subject": "hello/world", "target": "cloud" } } }

例 配置更新示例(定义另一个 Lambda 函数的订阅)

以下示例指定com.example.HelloWorldLambda Lambda 函数组件向hello/world主题上的com.example.MessageRelay Lambda 函数组件发布 MQTT 消息。

{ "subscriptions": { "Greengrass_HelloWorld_to_MessageRelay": { "id": "Greengrass_HelloWorld_to_MessageRelay", "source": "component:com.example.HelloWorldLambda", "subject": "hello/world", "target": "component:com.example.MessageRelay" } } }
v2.0.x
subscriptions

(可选)要在核心设备上启用的订阅。这是一个对象,其中每个密钥都是唯一的 ID,每个值都是定义该连接器订阅的对象。在部署使用 CAmazon IoT Greengrass ore SDK 的 V1 连接器组件或 Lambda 函数时,必须配置订阅。

Passenger():

id

ID。此 ID 必须与此订阅对象的密钥相匹配。

source

Lambda 函数,它使用Amazon IoT Greengrass核心软件开发工具包就您在中指定的主题发布 MQTT 消息subject。指定以下内容:

  • Lambda Amazon (ARN)。

    重要

    如果 Lambda 函数的版本发生变化,则必须使用新版本的函数配置订阅。否则,在版本与订阅匹配之前,此组件不会路由消息。

    Amazon (ARN)。您不能使用像 $LATEST 这样的版本别名。

要部署 V1 连接器组件的订阅,请指定连接器组件的 Lambda 函数的 ARN。

subject

源和目标可以发布和接收消息的 MQTT 主题或主题过滤器。此值支持+#主题通配符。

target

接收有关您在中指定的主题的 MQTT 消息的目标subject。订阅指定该source函数向核心设备上的 Lambda 函数发布 MQTT 消息Amazon IoT Core或向其发布 MQTT 消息。指定下列项之一:

  • cloud。 该source函数将 MQTT 消息发布到Amazon IoT Core。

  • Lambda Amazon (ARN)。

    重要

    如果 Lambda 函数的版本发生变化,则必须使用新版本的函数配置订阅。否则,在版本与订阅匹配之前,此组件不会路由消息。

    Amazon (ARN)。您不能使用像 $LATEST 这样的版本别名。

默认值:No

例 配置更新示例(定义订阅Amazon IoT Core)

以下示例指定该Greengrass_HelloWorld函数向Amazon IoT Core该hello/world主题发布 MQTT 消息。

"subscriptions": { "Greengrass_HelloWorld_to_cloud": { "id": "Greengrass_HelloWorld_to_cloud", "source": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:5", "subject": "hello/world", "target": "cloud" } }

例 配置更新示例(定义另一个 Lambda 函数的订阅)

以下示例指定该Greengrass_HelloWorld函数向hello/world主题发布 MQTT 消息。Greengrass_MessageRelay

"subscriptions": { "Greengrass_HelloWorld_to_MessageRelay": { "id": "Greengrass_HelloWorld_to_MessageRelay", "source": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:5", "subject": "hello/world", "target": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_MessageRelay:5" } }

Logal Fils

此组件不输出日志。

更改日志

Passenger Passenger。

版本

更改

2.1.7

Greengrass Nucleus 2.8.0。

2.1.6

Greengrass Nucleus 2.7.0。

2.1.5

Greengrass Nucleus 2.6.0。

2.1.4

Greengrass Nucleus 2.5.0。

2.1.3

Greengrass Nucleus 2.4.0。

2.1.2

Greengrass Nucleus 2.3.0。

2.1.1

Greengrass Nucleus 2.0。

2.1.0

Bug()
  • 增加了对为和指定组件名称而不是 ARNsource 的支持target。如果您为订阅指定组件名称,则无需在 Lambda 函数的版本每次更改时都重新配置订阅。

2.0.3

初始版本。