Firestore 突然有一个巨大的触发延迟

Łuk*_*.pl 7 javascript firebase google-cloud-functions google-cloud-firestore

我们在 Firestore 上运行一个应用程序并得到一个简单的触发器,当订单的详细信息被创建或更新时,它的一些信息应该在父订单集合中重写。

这个函数得到以下代码

export const updateOrderDetails = functions
  .region(FUNCTION_REGION)
  .firestore.document("orders/{orderId}/details/pickupAndDropoff")
  .onWrite(async (change, context) => {
    return await admin
      .firestore()
      .collection("orders")
      .doc(context.params.orderId)
      .set({ pickupAndDropoff: change.after.data() }, { merge: true });
  });
Run Code Online (Sandbox Code Playgroud)

它以前运行良好,但现在随机大约三分之一的执行被延迟。有时几分钟。在 Cloud Function 日志中,我们看到正常的执行时间 <200 毫秒,因此触发器似乎在暂停后运行。

有时更糟糕的change.after.data()是我们的未定义,但我们从不删除任何东西——它只是更新和创建。

它运行良好,自上周以来我们没有任何改变,但现在它开始出现这种意外的延迟。我们还检查了 firebase 状态,但 firebase 功能服务中没有故障。这可能是什么原因?

Łuk*_*.pl 0

感谢 Frank van Puffelen 的建议,我们已将此问题直接发送给 Firebase 支持人员,经过他们的内部调查,我们得到了工程团队的答复,这实际上是基础设施故障。

我从他们那里得到的答复是:

我升级了问题以恢复更多信息。到目前为止,发布/订阅交付和创建事件似乎存在问题。Firestore 团队还在与 pub/sub 团队沟通,以调查该问题并防止将来发生此类事件。

看来处理此类问题的最佳方法是快速直接写信给 Firebase 支持团队,因为正如他们在我发送支持票证后收到的自动回复中提到的那样:

对于状态信息中心未列出的 Firebase 中断,我们将在 4 小时内做出响应。

这似乎是最好的选择。