Cloud Firestore触发器,用于Cloud Function调用Composer

时间:2019-06-12 10:50:30

标签: google-cloud-platform google-cloud-firestore google-cloud-functions

我想运行一些打包为java jar的代码,以响应Google firestore实体的更改。 我希望基于事件的触发器来调用此jar。基本上,对Firestore实体的任何更改(创建/删除/更新)都必须传播到外部系统。 我的要求是:

  1. 调用外部服务以响应Google Firestore表上的onWrite触发器

  2. 订购对于我的用例很重要,但我不希望对数据存储实体进行更改的时间间隔不到一秒,而是很有可能相隔几分钟

  3. 例如,与运行我自己的VM /容器相比,我更喜欢无服务器/托管服务选项。

我正在考虑的设计选项是:

  1. 使用Cloud Function进行更改并调用Cloud Composer工作流程以运行我的代码 onWriteTrigger-> Cloud Function-> Cloud Composer工作流程

  2. 使用Cloud Function拾取更改并将其发送到PubSub主题,然后调用作曲家工作流。 onWriteTrigger-> Cloud Function-> PubSub主题-> Cloud Composer工作流程

  3. 在Cloud Function中运行我的代码。如果我的代码需要10到15分钟才能运行,这是否适合我?

我担心的一件事是Firestore的触发器是beta。 Google是否可能决定更改某些内容并且我的代码停止工作。我可以在生产中安全使用此功能。

我希望从这些选项的最佳方法中获得一些建议。

1 个答案:

答案 0 :(得分:0)

是的。您可以在firestore中添加触发功能。 Firestore被许多公司使用。所以我认为在生产中使用是安全的。

您可以使用以下云功能:

export const incomingPatientNotification = functions.firestore
  .document('collectionName/{documentId}')
  .onCreate(async (snapshot, context) => {
    const date = snapshot.data();

    // Here you can send a post request to invoke your composer workflow.
  });