如何从自身退出 运行 事件触发的 Cloud Function?
How to exit running event-triggered Cloud Function from within itself?
我想终止并退出 运行 云功能。函数由 Firestore 事件触发。有哪些方法可以做到这一点?
您希望 Cloud Functions 自行终止的原因有一些,例如,为了避免无限循环或无限重试。
To avoid infinite retry loops,设置结束条件。您可以通过包含一个 well-defined 结束条件来做到这一点,在 函数开始处理之前。
一个简单而有效的方法是丢弃时间戳早于特定时间的事件。这有助于避免在故障持续存在或 longer-lived 超出预期时执行过多。
事件至少传递一次,但单个事件可能会导致多个函数调用。避免依赖 exactly-once 机制并编写 idempotent functions.
请注意,更新 function-triggering Firestore 文档可能会创建后续更新事件,这些事件可能会在您的函数中级联成无限循环。要解决此问题,请使用忽略更新的触发器类型(例如 document.create
),或者将您的函数配置为仅在基础值已更改时才写入 Firestore。
另外,请注意 Cloud Functions 的 Firestore 触发器 limitations。
您可能还想查看有关云功能终止的 example。
不要手动退出功能;它可能导致 unexpected behavior.
我想终止并退出 运行 云功能。函数由 Firestore 事件触发。有哪些方法可以做到这一点?
您希望 Cloud Functions 自行终止的原因有一些,例如,为了避免无限循环或无限重试。
To avoid infinite retry loops,设置结束条件。您可以通过包含一个 well-defined 结束条件来做到这一点,在 函数开始处理之前。
一个简单而有效的方法是丢弃时间戳早于特定时间的事件。这有助于避免在故障持续存在或 longer-lived 超出预期时执行过多。
事件至少传递一次,但单个事件可能会导致多个函数调用。避免依赖 exactly-once 机制并编写 idempotent functions.
请注意,更新 function-triggering Firestore 文档可能会创建后续更新事件,这些事件可能会在您的函数中级联成无限循环。要解决此问题,请使用忽略更新的触发器类型(例如 document.create
),或者将您的函数配置为仅在基础值已更改时才写入 Firestore。
另外,请注意 Cloud Functions 的 Firestore 触发器 limitations。
您可能还想查看有关云功能终止的 example。 不要手动退出功能;它可能导致 unexpected behavior.