Google cloud platform 将邮件发布到特定子文件夹

Google cloud platform 将邮件发布到特定子文件夹,google-cloud-platform,google-cloud-functions,iot,google-cloud-pubsub,Google Cloud Platform,Google Cloud Functions,Iot,Google Cloud Pubsub,我正在尝试使用谷歌云平台来做一个物联网项目 我在“IoT核心”部分创建了一个注册表和一个设备,并将注册表连接到一个默认主题。 我还为该主题指定了三个子文件夹:“事件”、“配置”和“状态”。 现在,我想为传入的消息连接一个“云函数”,但在“云发布/订阅”部分,我找不到如何配置单个子文件夹以监视如何在其上发布消息 所有文档都只讨论一个主题,所以。。。。我是否缺少一些关于它如何工作的基本概念?我认为正确的设置方法是为每个子文件夹设置一个pubsub主题。从云物联网核心文档: 通过在MQTT主题中指定子

我正在尝试使用谷歌云平台来做一个物联网项目

我在“IoT核心”部分创建了一个注册表和一个设备,并将注册表连接到一个默认主题。 我还为该主题指定了三个子文件夹:“事件”、“配置”和“状态”。 现在,我想为传入的消息连接一个“云函数”,但在“云发布/订阅”部分,我找不到如何配置单个子文件夹以监视如何在其上发布消息


所有文档都只讨论一个主题,所以。。。。我是否缺少一些关于它如何工作的基本概念?

我认为正确的设置方法是为每个子文件夹设置一个pubsub主题。从云物联网核心文档:

通过在MQTT主题中指定子文件夹,设备可以将数据发布到单独的发布/订阅主题。子文件夹是{device id}/events之后的子主题。例如,如果设备发布到MQTT主题/devices/{device id}/events/alerts,则子文件夹是字符串alerts。必须在设备注册表资源的eventNotificationConfigs.subfolderMatches字段中配置此子文件夹,并在eventNotificationConfigs.pubsubTopicName字段中使用匹配的发布/子主题。将数据发送到子文件夹时,会将其发布到子文件夹的匹配发布/订阅主题


我认为正确的设置方法是为每个子文件夹设置一个pubsub主题。从云物联网核心文档:

通过在MQTT主题中指定子文件夹,设备可以将数据发布到单独的发布/订阅主题。子文件夹是{device id}/events之后的子主题。例如,如果设备发布到MQTT主题/devices/{device id}/events/alerts,则子文件夹是字符串alerts。必须在设备注册表资源的eventNotificationConfigs.subfolderMatches字段中配置此子文件夹,并在eventNotificationConfigs.pubsubTopicName字段中使用匹配的发布/子主题。将数据发送到子文件夹时,会将其发布到子文件夹的匹配发布/订阅主题


需要备份一个步骤。您试图如何处理各种子文件夹?这可能是对设备与云端之间通信方式的误解

因此,有3个MQTT主题,它们是events/config/state(而不是status)。这些根本没有映射到发布/订阅主题。它们在物联网核心中分别处理

事件是device->Cloud,并被放入创建注册表时指定的发布/子主题中。设置子文件夹的全部内容是将遥测从同一设备拆分到多个位置进行处理。因此,例如,您需要在一个发布/子主题中输入温度数据,并在另一个发布/子主题中输入压力数据。处理此问题的另一种方法是将函数附加到主发布/订阅主题,解析遥测,然后根据有效负载本身向不同的位置重新发布发布/订阅消息

配置是Cloud->device,通过调用IoT核心管理SDK启动。如果您的设备订阅了/config/MQTT主题,那么当某个外部实体向您的设备的IoT Core发送配置消息时,他们将在MQTT客户端的on_消息处理程序上获得回调(确切的代码当然取决于所使用的库)

状态为设备->云,但经过特殊处理,不会转到任何发布/订阅主题。IoT Core Admin SDK可以检索结果。这是一种设备报告其状态,然后外部进程/应用程序获得该状态的方法,而无需回调设备本身。例如,当您的设备没有保持连接,但您仍然希望能够基于上一个已知状态执行操作时,这一点尤其有用

因此,唯一可以使用云函数的是/events/topic。通过部署一个云函数,选择发布/订阅发布事件挂钩作为该函数的触发机制,并指定IoT核心的注册表发布/订阅主题作为事件源,就可以实现这一点。然后,只要您的设备将遥测发布到/events/MQTT主题,它就会发布到该发布/子主题(我知道这会让人困惑,因为我们都称它们为主题),云函数就会启动


希望这能澄清发生了什么?还是我完全错过了这个问题?:)

需要备份一个步骤。您试图如何处理各种子文件夹?这可能是对设备与云端之间通信方式的误解

因此,有3个MQTT主题,它们是events/config/state(而不是status)。这些根本没有映射到发布/订阅主题。它们在物联网核心中分别处理

事件是device->Cloud,并被放入创建注册表时指定的发布/子主题中。设置子文件夹的全部内容是将遥测从同一设备拆分到多个位置进行处理。因此,例如,您需要在一个发布/子主题中输入温度数据,并在另一个发布/子主题中输入压力数据。处理此问题的另一种方法是将函数附加到主发布/订阅主题,解析遥测,然后根据有效负载本身向不同的位置重新发布发布/订阅消息

配置是Cloud->device,通过调用IoT核心管理SDK启动。如果您的设备订阅了/config/MQTT主题,那么当某个外部实体向您的设备的IoT Core发送配置消息时,他们将在MQTT客户端的on_消息处理程序上获得回调(确切的代码当然取决于所使用的库)

状态为设备->云,但经过特殊处理,不会转到任何发布/订阅主题。IoT Core Admin SDK可以检索结果。这是一种设备报告其状态,然后外部进程/应用程序获得该状态的方法,而无需回调设备本身。例如,当您的设备没有保持连接,但您仍然需要wan时,这尤其有用