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

问题描述 投票:1回答:2

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

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

google-cloud-platform google-cloud-functions
2个回答
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,可能需要更改。


0
投票

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

gcloud functions deploy FUNCTION_NAME --retry

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

© www.soinside.com 2019 - 2024. All rights reserved.