Google cloud platform 云函数调用Composer的云Firestore触发器

Google cloud platform 云函数调用Composer的云Firestore触发器,google-cloud-platform,google-cloud-firestore,google-cloud-functions,Google Cloud Platform,Google Cloud Firestore,Google Cloud Functions,我想运行一些打包为JavaJAR的代码,以响应GoogleFireStore实体中的更改。 我想要一个基于事件的触发器来调用这个jar。基本上,对firestore实体的任何更改(创建/删除/更新)都必须传播到外部系统。 我的要求是: 调用外部服务以响应Google Firestore表上的onWrite触发器 排序对于我的用例很重要,但我不希望数据存储实体的更改以亚秒的间隔发生,它很可能间隔几分钟 例如,与运行自己的VM/容器相比,我更喜欢无服务器/托管服务选项 我正在考虑的设计方案是: 使用

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

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

  • 排序对于我的用例很重要,但我不希望数据存储实体的更改以亚秒的间隔发生,它很可能间隔几分钟

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

  • 我正在考虑的设计方案是:

  • 使用Cloud函数获取更改并调用Cloud composer工作流来运行我的代码 onWriteTrigger->Cloud Function->Cloud Composer工作流

  • 使用Cloud函数获取更改并将其发送到PubSub主题,然后调用composer工作流。 onWriteTrigger->Cloud Function->PubSub-topic->Cloud Composer工作流

  • 在云函数中运行我的代码。如果我的代码需要10到15分钟才能运行,这是否适合我

  • 我担心的一件事是Firestore的触发器是beta。谷歌是否可能决定改变某些东西,而我的代码却停止工作了。我能否在生产中安全地使用此功能


    我想了解这些选项的最佳前进方向。

    是的。您可以使用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.
      });
    

    对。您可以使用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.
      });
    

    谢谢你的回答。在我的三个设计选项中,你们认为我应该选择哪一个。我喜欢第一个。谢谢你们的回答。在我的三个设计选项中,你们认为我应该选择哪一个。我喜欢第一个。