【问题标题】:Cloud Function, Retry On Failure resets on Deploying functionCloud Function, Retry On Failure 在部署功能上重置
【发布时间】:2018-02-27 09:57:50
【问题描述】:

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

是否有一个配置或选项可以让“失败时重试”保持启用状态,直到我禁用它?

【问题讨论】:

  • 当您说必须启用“失败时重试”选项时,您的意思是通过选中“失败时重试”框进入控制台和edit the function

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


【解决方案1】:

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

gcloud functions deploy FUNCTION_NAME --retry

请参阅these docs 了解更多信息。

【讨论】:

    【解决方案2】:

    官方部署工具似乎还不支持设置重试行为。 部署后使用 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,可能需要更改。

    【讨论】:

      猜你喜欢
      • 2018-09-06
      • 1970-01-01
      • 2021-07-29
      • 2018-08-20
      • 2021-03-29
      • 2017-03-10
      • 2023-03-13
      • 1970-01-01
      • 2017-08-04
      相关资源
      最近更新 更多