如何过滤命令 gcloud container operations list?语法是什么?

如何过滤命令 gcloud container operations list?语法是什么?

如果您有 20 个 GKE 集群,gcloud container operations list 会返回太多数据。

Google Cloud 的官方文档缺少如何进行过滤的良好示例:

  • 他们的文档只是提到--filter=[EXPRESSION],如果没有表达式应该是什么样子的语法,这根本就没有任何帮助......
  • gcloud container operations list --help只是提到请gcloud topic filters参阅更多信息,试图解释,但如果没有例子就很难理解。

那么问题是过滤应该是什么样的?

答案1

export PROJECT=name-of-your-project
export CLUSTER=name-of-your-cluster

gcloud container operations list \
--filter="(targetLink ~ $CLUSTER) AND (2024-01-04)" \
--sort-by=START_TIME --format=yaml --project=$PROJECT

gcloud container operations list \
--filter="(targetLink ~ $CLUSTER) AND (startTime > 2024-01-04) AND (startTime < 2024-01-08)" \
--sort-by=START_TIME --format=yaml --project=$PROJECT

gcloud container operations list \
--filter="(targetLink ~ $CLUSTER) AND (startTime > 2024-01-08T06:18:55.104-08:00) AND (startTime < 2024-01-08T15:18:55.104-08:00)" \
--sort-by=START_TIME --format=yaml --project=$PROJECT

语法解释:

  • --format=yaml最终提高了详细程度(隐藏功能),并告诉您可以过滤的键的准确名称。
    (这就是我将 targetLink 和 startTime 识别为有效键的方式)
  • --sort-by=START_TIME很方便
  • --filter需要“双引号”
  • “(真布尔表达式)AND(真)AND(真)”
  • --filter="targetLink ~ $CLUSTER"
    ~ 充当键值中的字符串
    ,因此字符串“$CLUSTER”包含在名为 targetLink 的键的长字符串值中。
    如果您有 20 个集群,这可以让您将结果过滤到单个集群:)
  • --filter="2024-01-04"
    这将检查所有键的值中的该字符串,
    让您检查某一天发生的操作。
  • --filter="(startTime < 2024-01-06)"
    如果您想查看特定日期之前的条目,这也是有效且方便的。请注意,键必须始终位于不等式的左侧,startTime 不能位于不等式的右侧。

相关内容