【问题标题】:How to publish message to Google Cloud MQTT topic?如何将消息发布到 Google Cloud MQTT 主题?
【发布时间】:2020-09-15 13:43:35
【问题描述】:

在 Python 中使用 Google Cloud Functions,我想向 MQTT 主题发布消息。

我使用 pubsub_v1 PublisherClient,在调用云功能并查看日志后,它看起来像“google.api_core.exceptions.InvalidArgument: 400 Invalid resource name given”。我知道这是因为我的 topic_name 包含“/”,因为我想使用更多级别/子主题,例如:“devices/raspberrypi/events/msg/device/3/status”。我创建了“味精”主题,但无法创建或发布到任何子主题。

我没有在官方文档或其他任何地方找到有关子主题的任何信息。提前致谢。

【问题讨论】:

    标签: python google-cloud-platform google-cloud-functions google-cloud-pubsub


    【解决方案1】:

    Cloud Pub/Sub 客户端库仅用于直接与 Google Cloud Pub/Sub 交互。如果您使用 MQTT 主题,听起来您正在尝试使用 Cloud IoT Core MQTT 桥。在这种情况下,您需要使用配置为使用 Cloud IoT Core 对设备进行身份验证并使用它来发布遥测事件的 MQTT 客户端。请参阅Cloud IoT guide to publishing

    事件的子主题应具有与其相关联的自己的主题,但无法通过 Cloud Pub/Sub 库使用子主题名称访问它们。要使用 Cloud Pub/Sub 库,您必须使用 Cloud Pub/Sub 主题的名称。该主题将是您与“其他主题”部分中Cloud Console 中的 MQTT 子主题相关联的主题:

    【讨论】:

    • 谢谢,我会试试这个方法。
    • 好的,我还有一个问题。我在我的云函数中使用 paho mqtt 客户端。我的代码与我的 Raspberry Pi 设备上的代码相同(订阅而不是发布)。我可以像在 RPi 上一样使用相同的证书(root.pem 和 private_key.pem),还是需要创建新的?我问是因为我的云功能客户端无法连接(60 秒后超时),但在 Raspberry Pi 上我连接和订阅/发布没有问题。
    猜你喜欢
    • 1970-01-01
    • 2022-08-22
    • 2016-04-05
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 2018-10-01
    相关资源
    最近更新 更多