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

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

旧订阅路由器

旧版订阅路由器 (aws.greengrass.LegacySubscriptionRouter)管理 Greengrass 核心设备上的订阅。订阅是Amazon IoT GreengrassV1,定义 Lambda 函数可用于核心设备上的 MQTT 消息传递的主题。有关更多信息,请参阅 。MQTT 消息传递工作流中的托管订阅中的Amazon IoT GreengrassV1 开发人员指南.

您可以使用此组件启用连接器组件和 Lambda 函数组件的订阅,这些组件使用Amazon IoT Greengrass核心开发工具包

注意

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

版本

此组件具有以下版本:

  • 2.1.x

  • 2.0.x

类型

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

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

操作系统

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

附属物

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

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.2.0 软性
2.0.3

下表列出了此组件 2.0.3 版的依赖项。

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

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

配置

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

v2.1.x
subscriptions

(可选)要在核心设备上启用的订阅。这是一个对象,其中每个密钥都是唯一的 ID,每个值都是定义该连接器订阅的对象。在部署 V1 连接器组 Lambda 或使用Amazon IoT Greengrass核心开发工具包

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

id

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

source

Lambda 用Amazon IoT Greengrass核心 SDK 用于发布有关您在中指定的主题的 MQTT 消息subject. 指定下列项之一:

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

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

    重要

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

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

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

subject

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

target

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

  • cloud. 这些区域有:source函数将 MQTT 消息发布到Amazon IoT Core.

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

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

    重要

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

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

默认值:没有订阅

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

以下示例指定com.example.HelloWorldLambdaLambda 函数组件将 MQTT 消息发布到Amazon IoT Core在hello/world主题。

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

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

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

{ "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,每个值都是定义该连接器订阅的对象。在部署 V1 连接器组 Lambda 或使用Amazon IoT Greengrass核心开发工具包

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

id

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

source

Lambda 用Amazon IoT Greengrass核心 SDK 用于发布有关您在中指定的主题的 MQTT 消息subject. 指定以下内容:

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

    重要

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

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

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

subject

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

target

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

  • cloud. 这些区域有:source函数将 MQTT 消息发布到Amazon IoT Core.

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

    重要

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

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

默认值:没有订阅

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

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

"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函数将 MQTT 消息发布到Greengrass_MessageRelayhello/world主题。

"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.4

将版本更新为 Greengrass Nucus 版本 2.5.0。

2.1.3

将版本更新为 Greengrass Nucus 版本 2.4.0。

2.1.2

将版本更新为 Greengrass Nucus 版本 2.3.0。

2.1.1

Greengrass 核心版本 2.2.0 更新。

2.1.0

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

2.0.3

初始版本。