GCP:关于如何在漫长的 运行 过程完成后发布 pub/sub 消息的想法
GCP: ideas on how to publish pub/sub message after a long-running process completes
我正在寻找一个推荐的模式来解决我们在 运行ning Firestore 备份过程中遇到的挑战。 Firestore 备份是一个 Cloud Function,每晚触发 运行。这个过程目前大约需要 4 分钟。我们希望在此过程完成时向 Pub/sub 主题发布一条消息,以便可以触发使用备份作为数据源的附加云功能。我们遇到的唯一问题是 Cloud Functions 的最大超时,目前为 540 秒(9 分钟)。虽然我们目前完全在这个限制范围内,但情况可能并非总是如此。
那么,是否有推荐的 GCP 设计模式可以处理完成时间未知的长 运行 宁过程,并在完成后能够向 pub/sub 主题发布消息?我在想向主题发布一条消息并建立一些延迟(比如 1 小时)会很好,这将阻止消息被发布,直到延迟结束。我一直在研究 pub/sub 这个能力,但到目前为止我没有看到太多。即便如此:是否有更好更明显的方法来完成这项工作?
欢迎任何反馈。
谢谢
有几种回答方式。
首先,当您触发导出时,它是异步执行的。如果你想重新使用现有的项目,你可以使用this one(我贡献了它)。
那么,现在您的导出是 运行。这需要时间,并且您希望在完成时收到提醒,而无需在 Cloud Functions 中等待(或 Cloud 运行 导出已完成并花时间等待(因此无需支付任何费用!))。 2 个解决方案
- 创建导出后,您就有了一个操作名称。
- 创建一个 Cloud Task 未来几秒 (10) 触发 Cloud Functions。
- 云函数对操作执行 GET
- 如果状态为成功,将消息发布到 PubSub
- 否则,在未来几秒 (10) 后创建一个新任务。
- (我的首选)创建导出时,您会在 Google 云存储
gs://myBucket/myExport
中创建一个文件。因此,使用 google 云存储通知功能
- 在 PubSub 上接收云存储通知。
- 创建一个仅过滤前缀为
gs://myBucket/myExport/myExport
的文件的订阅。你可以看看my article for more detail
- 当 pubsub 消息到达订阅时触发您想要的端点。
我正在寻找一个推荐的模式来解决我们在 运行ning Firestore 备份过程中遇到的挑战。 Firestore 备份是一个 Cloud Function,每晚触发 运行。这个过程目前大约需要 4 分钟。我们希望在此过程完成时向 Pub/sub 主题发布一条消息,以便可以触发使用备份作为数据源的附加云功能。我们遇到的唯一问题是 Cloud Functions 的最大超时,目前为 540 秒(9 分钟)。虽然我们目前完全在这个限制范围内,但情况可能并非总是如此。
那么,是否有推荐的 GCP 设计模式可以处理完成时间未知的长 运行 宁过程,并在完成后能够向 pub/sub 主题发布消息?我在想向主题发布一条消息并建立一些延迟(比如 1 小时)会很好,这将阻止消息被发布,直到延迟结束。我一直在研究 pub/sub 这个能力,但到目前为止我没有看到太多。即便如此:是否有更好更明显的方法来完成这项工作?
欢迎任何反馈。 谢谢
有几种回答方式。
首先,当您触发导出时,它是异步执行的。如果你想重新使用现有的项目,你可以使用this one(我贡献了它)。
那么,现在您的导出是 运行。这需要时间,并且您希望在完成时收到提醒,而无需在 Cloud Functions 中等待(或 Cloud 运行 导出已完成并花时间等待(因此无需支付任何费用!))。 2 个解决方案
- 创建导出后,您就有了一个操作名称。
- 创建一个 Cloud Task 未来几秒 (10) 触发 Cloud Functions。
- 云函数对操作执行 GET
- 如果状态为成功,将消息发布到 PubSub
- 否则,在未来几秒 (10) 后创建一个新任务。
- (我的首选)创建导出时,您会在 Google 云存储
gs://myBucket/myExport
中创建一个文件。因此,使用 google 云存储通知功能
- 在 PubSub 上接收云存储通知。
- 创建一个仅过滤前缀为
gs://myBucket/myExport/myExport
的文件的订阅。你可以看看my article for more detail - 当 pubsub 消息到达订阅时触发您想要的端点。