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

时间:2020-02-20 20:57:18

标签: python python-3.x google-cloud-platform google-cloud-functions

我们要部署具有重试功能的云功能:

gcloud function deploy somefunc --retry

我们要确定要重试的功能:

if execution_is_a_retry = True:
    ...

我们如何识别功能正在重试?

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

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

1 个答案:

答案 0 :(得分:5)

重试调用本身不会将自己标识为重试。您将必须根据自己在context参数中传递的事件ID记录来自己确定。如果多次看到同一个事件ID,您将知道您的函数是根据先前的失败重试的。 您不会知道失败是由于您的功能还是Google基础架构中的某些原因。

documentation中所述,您可以使用context.eventID获得后台功能的事件ID。

如果您启用重试,则应调查making your function idempotent,以免不必要或有害地重复以前的工作。再次需要您保留一些记录才能正确实现此目的。

相关问题