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

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

传统订阅路由器

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

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

注意

仅当 Lambda 函数使用 AWS AWS IoT Greengrass 核心开发工具包中的 publish() 函数时,才需要此组件。如果您更新 Lambda 函数代码以使用 V2 开发工具包,则无需部署旧订阅路由器组件。有关更多信息,请参阅以下进程间通信服务:

此组件具有以下版本:

  • 2.0.x

Configuration

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

subscriptions

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

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

id

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

source

在您在 中指定的主题上发布 MQTT 消息的订阅源subject。部署 V1 连接器组件时,此值是包含连接器软件的 Lambda 函数的 Amazon 资源名称 (ARN)。

重要

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

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

subject

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

target

接收您在 中指定的主题上的 MQTT 消息的目标subject。指定下列项之一:

  • cloud。订阅指定 source 函数将 MQTT 消息发布到 AWS IoT IoT Core。

  • 核心设备上的 Lambda 函数的 ARN。订阅指定 source 函数将 MQTT 消息发布到此目标 Lambda 函数。

    重要

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

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

默认值:无订阅

例 AWS AWS IoT Core 订阅示例

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

"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_MessageRelay 主题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": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_MessageRelay:5" } }