如何知道谷歌云函数何时完成处理?

问题描述 投票:0回答:1

我想使用一个 Google Cloud 函数,当图像上传到存储桶时触发 - 该函数将调整图像大小并生成一组不同大小的图像以进行响应式渲染。

我对如何设置它有一个基本的想法,但我遇到的问题是,在我的网站上使用新图像之前,该函数必须完成它们的处理并将它们上传到新存储桶。

在那之前我不想尝试渲染图像。

有没有一种简单的方法可以知道此处理何时完成?

google-cloud-platform google-cloud-functions google-cloud-storage
1个回答
0
投票

Cloud Functions 本身没有内置任何内容来通知任何完成情况。你必须自己构建一些东西,而且这并不简单。最重要的是,有多种解决方案,具体取决于需要知道功能何时完成的事物(可能是另一个软件组件)。你需要某种与该事物沟通的渠道。这远远超出了 Cloud Functions 本身的范围。

您没有指定需要了解的其他组件是什么——这使得不可能指定单个选项。由于您使用的是 GCP,因此您可以使用许多工具。没有一种简单的解决方案适用于所有用例。我会列出两个选项。

云发布订阅

作为云功能中的最后一个操作,您可以向 pubsub 主题发送一条消息,其有效负载包含其他软件需要了解的有关已完成任务的任何信息。其他软件需要订阅该主题并确定每条消息是否对已完成的任务感兴趣。

如果软件组件位于后端可以接收 pubsub 消息,则此策略可能最有意义。它甚至可能是在 pubsub 主题上触发的另一个云函数。

云Firestore

作为云功能中的最后一个操作,您可以在 Firestore 中编写一个文档,其中包含其他软件需要了解的有关已完成任务的任何信息。其他软件需要监听集合或文档,并确定已完成的任务是否对其感兴趣。

如果是面向最终用户的应用程序前端需要通知,则此策略可能最有意义,因为将服务帐户凭据烘焙到其中以与 pubsub 一起使用是没有意义的。

Firebase 云消息传递

如果您的组件是网络或移动应用程序,则可以使用有效负载向其传递 FCM 消息。 FCM 消息传递并非 100% 可靠。

无论如何

您可能希望安排该功能和您的其他软件组件提前就工作的唯一 ID 达成一致,以便它可以轻松过滤所有这些数据以找到感兴趣的数据(如果使用 Firestore,这将是您要收听的唯一文档 ID)。

© www.soinside.com 2019 - 2024. All rights reserved.