云功能,重试失败时重置部署功能

时间:2018-02-27 09:57:50

标签: google-cloud-platform google-cloud-functions

我遇到了一个问题,我需要在Pub / Sub云功能上启用“失败时重试”,但每当我为该功能部署更新时,我必须手动编辑并启用“失败时重试”功能

是否有配置或选项启用“重试失败”,直到我禁用它?

2 个答案:

答案 0 :(得分:0)

官方部署工具似乎还不支持设置重试行为。 部署后使用REST API修改重试行为似乎有效:

#!/bin/bash


project=$(gcloud config list project --format="value(core.project)")

function set_retry() {
  curl -X PATCH -d '{"eventTrigger":{"failurePolicy":{"retry": {}}}}' \
    "https://cloudfunctions.googleapis.com/v1/projects/$project/locations/us-central1/functions/$1?updateMask=eventTrigger.failurePolicy&access_token="$(gcloud auth application-default print-access-token)\
    -H "Content-Type: application/json" -s -o /dev/null
}

gcloud beta functions list --format="value(name)" | while read fn; do
  echo "setting retry policy for function $fn"
  set_retry $fn
done

请注意,该区域是硬编码到上面的us-central1,可能需要更改。

答案 1 :(得分:0)

如果您要部署Google Cloud Functions(不是Firebase Cloud Functions,请参阅this note),现在可以将--retry标志传递给您的deploy命令,例如:

gcloud functions deploy FUNCTION_NAME --retry

有关更多信息,请参见these docs