【问题标题】:Stopping a Running Cloud Functions Instance in Google Cloud在 Google Cloud 中停止正在运行的 Cloud Functions 实例
【发布时间】:2022-11-11 04:21:37
【问题描述】:

现在 Cloud Functions(第 2 代)可以运行长达 60 分钟,如何停止正在运行的云功能实例(对 GCF 的特定调用)?

例如,如果我在许多 GCF 调用实例中运行复杂的工作负载,并且我需要停止一个工作人员(例如,我不再需要该作业的输出),我将如何仅停止该 GCF 调用实例?

Cloud Functions 的日志中有一个 labels.instanceId 值。是否有终止实例的 API?这里的挑战是我可以尝试侦听终止信号(在 Pub/Sub 订阅上,或轮询 GCS 文件,或侦听 Memorystore Redis Pub/Sub 通道),但所有这些在运行时都无法很好地扩展可能需要杀死的数千个并发 GCF 实例。

如果我们可以告诉运行时(Cloud Run 或 Cloud Functions)停止特定的正在运行的函数调用实例,那肯定是最佳的。

【问题讨论】:

  • 如果您的代码(在云函数中运行)知道何时出现错误,它可以退出该函数。 Cloud Function 调用结束,您不再为此付费。不确定这是否有帮助,因为我不完全了解您的用例。
  • 不,您不能直接停止任何正在运行的实例。它会在错误或成功时停止。阻止它的蛮力方法是删除功能或部署新版本。
  • 谢谢,@Ferregina。不幸的是,删除该函数不是该用例的有效解决方案,因为将有数百个其他函数实例需要继续运行。我只需要停止有问题的调用。
  • 谢谢@MartinOmander,上周我想亲自问你这个问题。假设我使用 GCF 作为服务工作者,用于长时间运行的任务。我有时需要能够在工人完成之前停止它。但是,我不想拆除 GCF,因为我希望完成其他工作实例。听起来好像没有 API,我需要处理自己的消息传递和函数实例自我终止?
  • 暂时没有。也许可以询问功能请求,但通常那些没有 ETA :c

标签: google-cloud-platform google-cloud-functions serverless google-cloud-run


【解决方案1】:

正如上面的 cmets 所述,没有停止正在运行的 Cloud Functions 实例的选项,因为它只会在错误或成功时停止。 cmets 还建议使用feature request,但我们没有具体的预计到达时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-17
    • 2018-12-25
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 2019-08-12
    相关资源
    最近更新 更多