如何识别重试的谷歌云功能?

Pro*_*OXO 1 python python-3.x google-cloud-platform google-cloud-functions

我们想通过重试部署一个云函数:

gcloud function deploy somefunc --retry

我们想要识别正在重试的函数:

if execution_is_a_retry = True:
    ...
Run Code Online (Sandbox Code Playgroud)

我们如何识别正在重试的函数?

上下文/事件数据中是否有一些参数?理想情况下,我们还会看到已发生的重试次数。

我知道execution_id原始运行和重试运行之间保持相同,但检查的唯一方法是函数是否将原始 id 写入某处。在这种情况下,该函数可能会在成功写入execution_id某处之前失败,然后随后的重试不会被识别为这样。

Dou*_*son 5

重试调用本身不会将自己标识为重试。您必须根据您自己在上下文参数中传递的事件 ID 的记录自行确定这一点。如果您多次看到相同的事件 ID,您就会知道您的函数是根据先前的失败重试的。 你不会知道失败是因为你的功能还是谷歌的基础设施。

您可以context.eventID按照文档中的说明获取后台函数的事件 ID 。

如果您确实启用了重试,您应该考虑使您的函数具有幂等性,这样您就不会不必要地或有害地重复之前所做的工作。这将再次需要您进行一些记录才能正确实施。