我试图找到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
命令的更多信息。