正确使用 gcloud --sort-by 与 --limit 结合使用

问题描述 投票:0回答:1

我正在使用 Google Cloud KMS,并尝试使用

gcloud cli
(v492.0) 获取特定非对称密钥的最新版本。看来
--limit
标志没有考虑
--sort-by
提供的排序方向。排序是在限制之后应用的,在我看来这是错误的,排序应该先进行,然后是限制。

我目前有 3 个版本的

my-key
。要获取特定密钥的最新版本,我使用以下命令:

gcloud kms keys versions list \
  --key my-key \
  --keyring my-keyring \
  --location global \
  --filter "state:ENABLED" \
  --sort-by "~createTime" \
  --limit 1

但是,此命令始终会生成指定密钥的第一个版本。

NAME                                                           STATE
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/1  ENABLED

我本来希望在这里看到

cryptoKeyVersions/3
,但我却得到了
cryptoKeyVersions/1

省略

--limit
标志会给出以下结果:

NAME                                                           STATE
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/3  ENABLED
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/2  ENABLED
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/1  ENABLED

因此排序已正确应用。

当我发出相同的命令但使用

--limit 2
:

gcloud kms keys versions list \
  --key my-key \
  --keyring my-keyring \
  --location global \
  --filter "state:ENABLED" \
  --sort-by "~createTime" \
  --limit 2

它返回两条记录:

NAME                                                           STATE
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/2  ENABLED
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/1  ENABLED

虽然我希望看到密钥版本

3
2
。所以明显的原因是限制发生在先排序之后。

我的问题是:这是预期的工作方式吗?我弄错了还是这是一个错误?

gcloud google-cloud-sdk google-cloud-kms
1个回答
0
投票

在此

问题跟踪器
中存在一个持续的 GCP 问题,其应用
--limit=
--sort-by的顺序,这是一个仍在继续的老问题,如果您想创建一个新的问题跟踪器线程来描述您的问题问题。如果您已付费支持,请尝试创建一个问题

您可以使用

--format flag
尝试另一种解决方法来获取最新版本,请尝试以下命令,该命令给出了启用的最新版本:

gcloud kms keys versions list \
  --key demo1 \
  --keyring demo-1 \
  --location global \
  --filter "state:ENABLED" \
  --sort-by "~createTime" \
  --format="value(name)" | \
head -n 2

输出:

projects/………../keyRings/demo-1/cryptoKeys/demo1/cryptoKeyVersions/4
projects/………../keyRings/demo-1/cryptoKeys/demo1/cryptoKeyVersions/2
© www.soinside.com 2019 - 2024. All rights reserved.