Google Cloud IoT Core 和 Pubsub 定价?

Google Cloud IoT Core and Pubsub Pricing?

我正在为我的物联网设备使用 google 物联网核心和发布订阅服务。我正在使用 pubsub 将数据发布到数据库。但我认为将每个数据都存储到数据库中是非常昂贵的。我有一些数据,比如设备是开着还是关着,还有一个配置文件,它有一些我需要处理我的物联网有效负载的参数。现在我无法理解物联网中的配置和状态主题是否昂贵?以及数据在配置主题中存储了多长时间,每当配置文件中的参数发生更改时,它都会将该数据发布到配置主题中是否可行?如果我每 3 秒或更长时间将我的设备状态发布到状态主题中会怎样?

你在混合不同的东西。有云物联网,你有一个设备注册表,包含元数据、配置和状态。您还有 PubSub 主题,您可以在其中发布有关 IoT 负载的消息,其中可以包含配置数据(我假设这就是您在这句话中的意思:"it publish that data into config topic")。

最终很简单。

  • Cloud IoT 上的所有管理操作都是免费的(设备注册、配置、元数据...)。没有限制,也没有持续时间限制。速率限制和配置大小 quotas 中唯一存在的。
  • 进出物联网设备的入站和出站流量按described here
  • 计费
  • 如果您使用 PubSub 推送消息、Cloud Functions(或 Cloud 运行 或其他计算选项)、数据库(Cloud SQL 或 Datastore/Firestore),所有这些服务照常计费,与云物联网服务和计费无关。每个服务的约束都作为常规用法应用。例如,一条 PubSub 消息在订阅中最多可以存活 7 天(默认情况下),直到它没有被确认。

编辑

好的,明白了,我花了一些时间来了解你想要实现的目标。

状态是为获取设备的内部表示而设计的,但当前的限制不允许您在收到消息时自动更新它。

您有 2 个解决方案:

  • 要么你可以更新你的设备,只有当它的状态发生变化时才发送更新消息(这个功能就是为这种用例设计的!)
  • 或者,让设备每 3 秒发布一次消息,但在事件 PubSub 主题中。获取获取 state list, get the first one (the most recent) and compare the value with the PubSub message. If different, update the state 的函数中的事件。此工作流程还适用于外部数据库,例如 Datastore 或 Firestore。