【问题标题】:how to keep a cloud function running until an event occurs?如何保持云功能运行直到事件发生?
【发布时间】:2021-09-10 01:55:46
【问题描述】:

我的谷歌云函数使用天气 api 返回任何输入位置的天气。我目前正在使用 http 触发器。与其手动调用 http 触发器来检查数据是否低于 0°C,如何让云功能在天气低于该阈值时通知我?

【问题讨论】:

  • 您可以创建一个Cloud Scheduler (cloud.google.com/scheduler/docs/…) 来触发您的云功能
  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: python google-cloud-functions


【解决方案1】:

Cloud Functions 用于响应发生的受支持事件而启动的相对短暂的进程。除非您的天气 API 是受支持的 Cloud Functions 事件类型,否则在温度降至零以下之前,无法使用 Cloud Functions 侦听 API。

可以获得的最接近方法是run a Cloud Function periodicallyuse a Cloud Scheduler task 定期触发您编写的云函数,然后调用天气 API、检查温度并执行您想要的任何逻辑回复。如果天气 API 支持在温度变化时调用网络挂钩,您还可以use those web hooks to call into Cloud Functions

【讨论】:

  • 感谢您的回答!我对两件事仍然有些困惑。首先,如何实现用户输入,用户可以选择请求不同的天气位置?其次,如何触发周期性功能。我只想在用户请求数据时开始运行该函数?
  • 您可以通过callable functionsHTTP functions 或通过其他事件类型之一触发来根据用户请求轻松启动函数。但这些函数的运行时间不能超过 9 分钟。
  • 我真的很想知道这里的架构。您的第一个问题应该是:天气 API 是否有订阅更新的方法,或者它是否遵循(更常见的)请求/响应模型?如果是后者,为什么不直接从客户端重复调用API?如果这是出于安全考虑:一种常见的方法是将对天气 API 的调用封装在 Cloud Functions 中,然后从您的客户端反复轮询 那些
  • 我曾想过从客户端进行 API 调用,但我不愿意这样做,因为我试图避免用户终止应用程序在后台运行的情况。在这种情况下,我将无法发送通知。另外,我试图避免在客户端定期运行以减少 cpu 和 ram 的使用。
猜你喜欢
  • 2020-02-29
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
  • 2021-05-22
相关资源
最近更新 更多