Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 我如何在谷歌云中保存一些规则或配置,然后调用它来处理云函数中的子主题数据?_Google Cloud Platform_Google Cloud Firestore_Google Cloud Functions_Google Cloud Datastore - Fatal编程技术网

Google cloud platform 我如何在谷歌云中保存一些规则或配置,然后调用它来处理云函数中的子主题数据?

Google cloud platform 我如何在谷歌云中保存一些规则或配置,然后调用它来处理云函数中的子主题数据?,google-cloud-platform,google-cloud-firestore,google-cloud-functions,google-cloud-datastore,Google Cloud Platform,Google Cloud Firestore,Google Cloud Functions,Google Cloud Datastore,我正在使用谷歌云功能。我来自一个基于服务器的应用程序公司,所以我对无服务器世界不太了解 我有一个场景,在google数据存储中有两种类型,即iot_类和config_类。一种具有类似于查找表的配置,另一种具有正常的有效负载值 我正在将IoT设备的数据发布到pubsub主题中,并将该数据发布到云功能中 e、 g.物联网有效载荷为: {"id":"213213", 'price': 20, 'name':"some_name"} 然后我查询配置类型并从中提取一些数据,如价格乘数 select *

我正在使用谷歌云功能。我来自一个基于服务器的应用程序公司,所以我对无服务器世界不太了解

我有一个场景,在google数据存储中有两种类型,即iot_类和config_类。一种具有类似于查找表的配置,另一种具有正常的有效负载值

我正在将IoT设备的数据发布到pubsub主题中,并将该数据发布到云功能中

e、 g.物联网有效载荷为:

{"id":"213213", 'price': 20, 'name':"some_name"}
然后我查询配置类型并从中提取一些数据,如价格乘数

select * 
from config_kind 
where id = "213213" #lets say output is 2
然后我将价格乘以*2,并将其保存为物联网种类,例如值=40

现在,通过这种方式,每次我将数据输入到云函数中时,我都必须进行读取,我认为这相当昂贵,而且还需要进行一些处理

有没有更好的办法?就像我把最新的配置保存在某个地方,然后每当有效负载出现时,它就会看到配置并根据配置进行处理,然后将其保存到数据库


我可以做一些事情,比如制作一个云函数并将最新的值存储在那里,然后从另一个云函数调用这个云函数来获取其中的值吗?是便宜一点还是贵一点?非常感谢

云功能是一种无服务器、无状态的服务。创建实例时,它已存在一段时间,并且已停止。没有安装磁盘,所有磁盘都在内存中工作。这意味着您无法持久地保存其中的任何值

无论如何,您有3种解决方案来减少读入数据存储的配置数量

  • 即使您不能持久存储数据,也可以将它们存储在内存中(包括应用程序封装在内,最多2Gb的内存)。因此,您必须执行对数据存储的第一个请求,然后,您可以将配置数据存储到定义为全局变量的映射中。因为云函数在同一时间只能处理1个请求,所以您没有竞争条件。(例如,与Cloud Run不同)
  • 如果您的配置不经常更改,您可以将其存储到文件中并存储到云存储中。在函数开始时,加载文件(并像以前一样将其存储到全局变量中,以便只读取一次),然后对文件执行搜索。只有当配置文件大小低于函数内存限制时,这才有效
  • 如果读取成本高于每月50美元,则可以使用云SQL数据库而不是数据存储

这对你有意义吗?

谢谢你的回答。配置可以随时更改,例如用户可能希望在10分钟后更改乘数,正因为如此,我想在每个函数触发器上阅读它……也许是某种标志,看看是否有一些新的配置值被更新了,等等。你可以将配置保存在Google存储桶中,并使用一个生命周期,只在存储桶中保留最新的对象。