gpt4 book ai didi

google-cloud-platform - 如何检查最新的 Cloud Run 修订版是否已准备好提供服务

转载 作者:行者123 更新时间:2023-12-04 08:30:06 25 4
gpt4 key购买 nike

我已经使用 Cloud Run 一段时间了,整个用户体验简直太棒了!

目前我正在使用 Cloud Build 部署容器镜像,将镜像推送到 GCR,然后创建新的 Cloud Run 修订版。现在我想在最新版本成功部署到 Cloud Run 后调用脚本从 CDN 清除缓存,但是 $ gcloud run deploy 命令无法告诉您流量是否开始指向最新修订。

是否有任何我可以订阅的命令或事件来确保没有流量指向旧版本,以便我可以安全地清除所有缓存?

最佳答案

@Dustin 的回答是正确的,但是“状态”消息是 Route 配置的间接结果,因为这些内容是单独更新的(您可能会看到它们之间有几秒钟的延迟)。如果您不介意,状态消息仍会告诉您修订已停止轮换。

要直接使用 API 对象回答这个特定问题(强调我的问题):

Is there any command or the event that I can subscribe to to make sure no traffic is pointing to the old revision?

您需要查看 API 上的 Route 对象。这是一个 Knative API(它在 Cloud Run 上可用)但它没有 gcloud 命令:https://cloud.google.com/run/docs/reference/rest/v1/namespaces.routes

例如,假设您对 Cloud Run 服务进行了 50%-50% 的流量拆分。执行此操作时,您会发现您的 Service 对象(您可以在 Cloud Console → Cloud Run → YAML 选项卡上看到)具有以下 spec.traffic 字段:

spec:
traffic:
- revisionName: hello-00002-mob
percent: 50
- revisionName: hello-00001-vat
percent: 50

这是“所需的配置”,但它实际上可能无法明确反射(reflect)状态。更改此字段将更新 Route 对象——它决定了流量的分配方式。

要查看隐藏的 Route 对象(遗憾的是,我必须在这里使用 curl,因为没有 gcloud 命令:)

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

curl -vH "Authorization: Bearer $TOKEN" \
https://us-central1-run.googleapis.com/apis/serving.knative.dev/v1/namespaces/GCP_PROJECT/routes/SERVICE_NAME

此命令将显示输出:

  "spec": {
"traffic": [
{
"revisionName": "hello-00002-mob",
"percent": 50
},
{
"revisionName": "hello-00001-vat",
"percent": 50
}
]
},

(您可能会注意到它与服务的 spec.traffic 相同——因为它是从那里复制的)可以明确地告诉您哪些修订当前正在为该特定服务提供流量。

关于google-cloud-platform - 如何检查最新的 Cloud Run 修订版是否已准备好提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61657875/

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