Gcloud 运行 - 查找最新版本的名称
Gcloud Run - Find latest revision's name
我正在尝试查找 gcloud 运行 服务的最新版本的名称,以便我可以在 运行 连接 Jenkins 管道时更改其分配的流量。我已经尝试使用 gcloud run revisions list 和 --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
目前 似乎是 revisions
子组的 list
命令同时使用 Google 云平台 (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
和带有 limit
查询参数的 GCP REST API:
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
. . .
但是,是一种获取最新created和ready修订的方法使用 services
子组而不是 revisions
子组的 Cloud 运行 服务:
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
子组 here 的 describe
命令的更多信息。
我正在尝试查找 gcloud 运行 服务的最新版本的名称,以便我可以在 运行 连接 Jenkins 管道时更改其分配的流量。我已经尝试使用 gcloud run revisions list 和 --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
目前 似乎是 revisions
子组的 list
命令同时使用 Google 云平台 (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
和带有 limit
查询参数的 GCP REST API:
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
. . .
但是,是一种获取最新created和ready修订的方法使用 services
子组而不是 revisions
子组的 Cloud 运行 服务:
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
子组 here 的 describe
命令的更多信息。