Gcloud Run - 查找最新版本的名称



我试图找到gcloud运行服务的最新版本的名称,以便我可以在运行Jenkins管道时更改其分配的流量。我已经尝试了gcloud运行--limit,--sort-by,--format标志的修订列表,但我没有得到我所期望的。当限制只有一个结果时,会显示倒数第二个版本,而不是最新的版本。我做错什么了吗?

下面是我运行的gcloud命令以及它们的输出。

>gcloud run revisions list --service service-foo --platform managed --region europe-west4 --limit 2 --sort-by ~creationTimestamp --format="value(name,creationTimestamp)"
service-foo-00302-luq     2021-08-27T11:13:39.883161Z
service-foo-00300-san     2021-08-26T15:45:33.351646Z
>gcloud run revisions list --service service-foo --platform managed --region europe-west4 --limit 1 --sort-by ~creationTimestamp --format="value(name,creationTimestamp)"
service-foo-00300-san     2021-08-26T15:45:33.351646Z
>gcloud run revisions list --service service-foo --platform managed --region europe-west4 --limit 1 --sort-by creationTimestamp --format="value(name,creationTimestamp)"
service-foo-00300-san     2021-08-26T15:45:33.351646Z

There目前revisions子组的list命令使用谷歌云平台(GCP) SDK (gcloud):

gcloud run revisions list 
--format="value(metadata.name)" 
--platform=managed 
--region=$CLOUD_RUN_SERVICE_REGION 
--service=$CLOUD_RUN_SERVICE_NAME 
--sort-by="~metadata.creationTimestamp"
#=>
$CLOUD_RUN_LATEST_REVISION
$CLOUD_RUN_PREVIOUS_REVISION
. . .

当使用--limit标志时:

gcloud run revisions list 
--format="value(metadata.name)" 
--limit=1 
--platform=managed 
--region=$CLOUD_RUN_SERVICE_REGION 
--service=$CLOUD_RUN_SERVICE_NAME 
--sort-by="~metadata.creationTimestamp"
#=>
$CLOUD_RUN_PREVIOUS_REVISION

和GCP REST API与limit查询参数:

curl 
--location 
--request GET "https://$CLOUD_RUN_SERVICE_REGION-run.googleapis.com/apis/serving.knative.dev/v1/namespaces/$GCP_PROJECT_NAME/revisions?limit=1" 
--header "Authorization: Bearer $(gcloud auth print-access-token)"
#=>
{
. . .
"items": [
{
. . .
"metadata": {
"name": "$CLOUD_RUN_PREVIOUS_REVISION",
. . .
},
. . .
},
. . .
]
}

与最新的gcloud版本:

gcloud version
#=>
Google Cloud SDK 357.0.0
. . .
然而,使用services子组而不是revisions子组获得Cloud Run服务的最新创建准备版本的方法:
gcloud run services describe $GCLOUD_RUN_SERVICE_NAME 
--format="value(status.latestCreatedRevisionName)" 
--platform=managed 
--region=$CLOUD_RUN_SERVICE_REGION
#=>
$CLOUD_RUN_LATEST_REVISION

:

gcloud run services describe $GCLOUD_RUN_SERVICE_NAME 
--format="value(status.latestReadyRevisionName)" 
--platform=managed 
--region=$CLOUD_RUN_SERVICE_REGION
#=>
$CLOUD_RUN_LATEST_REVISION

您可以在这里阅读有关services子组的describe命令的更多信息。

相关内容

最新更新