旧版订阅路由器 - AWS IoT Greengrass

旧版订阅路由器

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

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

注意

只有当您的 Lambda 函数使用 AWS IoT Greengrass Core SDK 中的 publish() 函数时,才需要使用旧版订阅路由器组件。若您更新 Lambda 函数代码以使用 AWS IoT Device SDK V2 中的进程间通信(IPC)接口,则无需部署旧版订阅路由器组件。有关更多信息,请参阅以下进程间通信服务:

版本

此组件具有以下版本:

  • 2.1.x

  • 2.0.x

类型

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

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

操作系统

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

要求

此组件具有以下要求:

  • 支持在 VPC 中运行旧版订阅路由器。

依赖项

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

2.1.12

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.14.0 软性
2.1.11

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.13.0 软性
2.1.10

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.12.0 软性
2.1.9

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.11.0 软性
2.1.8

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.10.0 软性
2.1.7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

配置

此组件提供您可以在部署组件时自定义的以下配置参数。

v2.1.x
subscriptions

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

每个订阅对象包含以下信息:

id

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

source

Lambda 函数使用 AWS IoT Greengrass Core SDK 针对您在 subject 中指定的主题发布 MQTT 消息。指定下列项之一:

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

  • 核心设备 Lambda 函数的 Amazon 资源名称(ARN)。

    重要

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

    您必须指定 Amazon 资源名称(ARN),其中包含要导入的函数版本。您不能使用像 $LATEST 这样的版本别名。

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

subject

源和目标可在其上发布和接收消息的 MQTT 主题或主题筛选条件。此值支持 +# 主题通配符。

target

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

  • cloud。该 source 函数将 MQTT 消息发布至 AWS IoT Core。

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

  • 核心设备 Lambda 函数的 Amazon 资源名称(ARN)。

    重要

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

    您必须指定 Amazon 资源名称(ARN),其中包含要导入的函数版本。您不能使用像 $LATEST 这样的版本别名。

默认值:无订阅

例 配置更新示例(定义对 AWS IoT Core 的订阅)

以下示例指定 com.example.HelloWorldLambda Lambda 函数组件向 AWS 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 函数组件将 MQTT 消息发布至 hello/world 主题上的 com.example.MessageRelay Lambda 函数组件。

{ "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,每个值都是定义该连接器订阅的对象。部署使用 AWS IoT Greengrass Core SDK 的 V1 连接器组件或 Lambda 函数时,必须配置订阅。

每个订阅对象包含以下信息:

id

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

source

Lambda 函数使用 AWS IoT Greengrass Core SDK 针对您在 subject 中指定的主题发布 MQTT 消息。指定以下内容:

  • 核心设备 Lambda 函数的 Amazon 资源名称(ARN)。

    重要

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

    您必须指定 Amazon 资源名称(ARN),其中包含要导入的函数版本。您不能使用像 $LATEST 这样的版本别名。

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

subject

源和目标可在其上发布和接收消息的 MQTT 主题或主题筛选条件。此值支持 +# 主题通配符。

target

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

  • cloud。该 source 函数将 MQTT 消息发布至 AWS IoT Core。

  • 核心设备 Lambda 函数的 Amazon 资源名称(ARN)。

    重要

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

    您必须指定 Amazon 资源名称(ARN),其中包含要导入的函数版本。您不能使用像 $LATEST 这样的版本别名。

默认值:无订阅

例 配置更新示例(定义对 AWS IoT Core 的订阅)

以下示例指定 Greengrass_HelloWorld 函数向 AWS 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 函数向 Greengrass_MessageRelay 发布有关 hello/world 主题的 MQTT 消息。

"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" } }

本地日志文件

此组件不输出日志。

更改日志

下表介绍每个组件版本的更改。

版本

更改

2.1.12

对 Greengrass Nucleus 版本 2.13.0 发行版进行了版本更新。

2.1.11

版本更新为 Greengrass Nucleus 版本 2.12.0 发布版。

2.1.10

版本更新为 Greengrass Nucleus 版本 2.11.0 发布版。

2.1.9

版本更新为 Greengrass Nucleus 版本 2.10.0 发布版。

2.1.8

对 Greengrass Nucleus版本 2.9.0 发行版进行了版本更新。

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.2.0 发行版进行了版本更新。

2.1.0

错误修复和改进
  • 支持为 sourcetarget 指定组件名称而不是 ARN。如果为订阅指定组件名称,则每次 Lambda 函数的版本发生更改时,您不需要重新配置订阅。

2.0.3

初始版本。