Google cloud platform 更改现有GCP云功能的标签

Google cloud platform 更改现有GCP云功能的标签,google-cloud-platform,google-cloud-functions,gcloud,Google Cloud Platform,Google Cloud Functions,Gcloud,我正在使用下面的命令更新已部署的GCP云函数的标签 $ gcloud functions deploy GCFunction --update-labels env=dev,app=myapp Deploying function (may take a while - up to 2 minutes)...failed. 当我们尝试更改现有函数的标签时,它似乎进行了部署。我们可以像任何其他API或云函数一样,在不进行任何部署的情况下进行标签更改以完成相同的任务。它可以工作 P

我正在使用下面的命令更新已部署的GCP云函数的标签

   $ gcloud functions deploy GCFunction --update-labels env=dev,app=myapp
     Deploying function (may take a while - up to 2 minutes)...failed.
当我们尝试更改现有函数的标签时,它似乎进行了部署。我们可以像任何其他API或云函数一样,在不进行任何部署的情况下进行标签更改以完成相同的任务。

它可以工作

PROJECT=[[YOUR-PROJECT]]
地区=[[YOUR-REGION]]
函数=[[YOUR-FUNCTION]]
端点=”https://cloudfunctions.googleapis.com/v1"
NAME=“projects/${PROJECT}/locations/${REGION}/functions/${FUNCTION}”
URL=“${ENDPOINT}/${NAME}”
gcloud函数描述${FUNCTION}\
--项目=${project}\
--region=${region}\
--format=“yaml(标签)”
标签:
应用程序:myapp
部署工具:cli gcloud
环境:发展
卷曲\
--请求补丁\
--标题“授权:承载$(gcloud auth打印访问令牌)”\
--标题“内容类型:应用程序/json”\
--数据“{\”标签\“:{\”环境\“:\”测试\“}”\
${URL}?updateMask=标签
gcloud函数描述${FUNCTION}\
--项目=${project}\
--region=${region}\
--format=“yaml(标签)”
标签:
环境:测试
注意您需要复制希望保留的标签。在我的示例中,我没有复制
app
,它被补丁删除

注意响应主体是异步的,因此需要检查其完成情况

更新:行动 如果您安装了最优秀的(或类似的JSON解析器),那么您可以轮询操作的状态,直到操作完成为止(更好的是,为读取器设置一个超时)

ENDPOINT=”https://cloudfunctions.googleapis.com/v1"
NAME=“projects/${PROJECT}/locations/${REGION}/functions/${FUNCTION}”
URL=“${ENDPOINT}/${NAME}”
令牌=$(gcloud auth打印访问令牌)
VALUE=“完全测试”
DATA=“{\'labels\”:{\'env\”:\“${VALUE}\”}”
名称=$(卷曲)\
--沉默的\
--请求补丁\
--标题“授权:承载${TOKEN}”\
--标题“内容类型:应用程序/json”\
--数据“${data}”\
${URL}?updateMask=标签|\
jq-r.name)和&echo${name}
URL=“${ENDPOINT}/${NAME}”
而[$(curl--silent--request GET--header“Authorization:Bearer${TOKEN}”${URL}|jq-r.done)!=“true”]
做
printf“
睡眠15秒
完成
gcloud函数描述${FUNCTION}\
--项目=${project}\
--region=${region}\
--format=“yaml(标签)”

我找不到实现的
gcloud函数操作。

我没有尝试过,但您可以修补它:注意:它部署了新版本的函数(这就是为什么它是异步的),路径不应该是
PATH=”https://cloudfunctions.googleapis.com/v1/":$PATH
否则它找不到
gcloud
命令
gcloud
命令没有为我执行…下面是错误
-bash:labels::command not found
Ooh抱歉,这将教会我编写代码而不是测试它。是的,不要使用路径(更新的答案)。