gpt4 book ai didi

google-cloud-platform - 更改现有 GCP Cloud 功能的标签

转载 作者:行者123 更新时间:2023-12-03 08:40:44 25 4
gpt4 key购买 nike

我正在使用以下命令来更新已部署的 GCP Cloud 功能的标签。

   $ 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]]
REGION=[[YOUR-REGION]]
FUNCTION=[[YOUR-FUNCTION]]
ENDPOINT="https://cloudfunctions.googleapis.com/v1"
NAME="projects/${PROJECT}/locations/${REGION}/functions/${FUNCTION}"
URL="${ENDPOINT}/${NAME}"

gcloud functions describe ${FUNCTION} \
--project=${PROJECT} \
--region=${REGION} \
--format="yaml(labels)"
labels:
app: myapp
deployment-tool: cli-gcloud
env: dev

curl \
--request PATCH \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"labels\":{\"env\":\"testing\"}}" \
${URL}?updateMask=labels


gcloud functions describe ${FUNCTION} \
--project=${PROJECT} \
--region=${REGION} \
--format="yaml(labels)"
labels:
env: testing

NOTE You need to duplicate labels that you wish to preserve. In my example, I did not duplicate app and it is deleted by the PATCH.

NOTE The response body is an async Operation so you'll need to check on its completion.

更新:操作

如果你有最优秀的jq安装(或类似的 JSON 解析器),然后您可以轮询操作的状态,直到完成(更好的是,也为读者设置超时...)。

ENDPOINT="https://cloudfunctions.googleapis.com/v1"
NAME="projects/${PROJECT}/locations/${REGION}/functions/${FUNCTION}"
URL="${ENDPOINT}/${NAME}"

TOKEN=$(gcloud auth print-access-token)

VALUE="full-testing"
DATA="{\"labels\":{\"env\":\"${VALUE}\"}}"

NAME=$(curl \
--silent \
--request PATCH \
--header "Authorization: Bearer ${TOKEN}" \
--header "content-type: application/json" \
--data "${DATA}" \
${URL}?updateMask=labels |\
jq -r .name) && echo ${NAME}

URL="${ENDPOINT}/${NAME}"

while [ $(curl --silent --request GET --header "Authorization: Bearer ${TOKEN}" ${URL} | jq -r .done) != "true" ]
do
printf "."
sleep 15s
done

gcloud functions describe ${FUNCTION} \
--project=${PROJECT} \
--region=${REGION} \
--format="yaml(labels)"

我无法找到已实现的 gcloud 函数操作

关于google-cloud-platform - 更改现有 GCP Cloud 功能的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62880081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com