gcloud筛选器正则表达式不一致

gcloud筛选器正则表达式不一致,gcloud,Gcloud,当我在计算实例上运行相同风格的命令时,它可以正常工作 gcloud compute instances list --filter='name~mysql' 但是,当我运行这个命令时 gcloud dataproc clusters list --filter='clusterName ~ dev' 我得到这个错误 ERROR: (gcloud.dataproc.clusters.list) INVALID_ARGUMENT: Could not parse the filter: Pars

当我在计算实例上运行相同风格的命令时,它可以正常工作

gcloud compute instances list --filter='name~mysql'
但是,当我运行这个命令时

gcloud dataproc clusters list --filter='clusterName ~ dev'
我得到这个错误

ERROR: (gcloud.dataproc.clusters.list) INVALID_ARGUMENT: Could not parse the filter: ParserException:errors {
  line: 1
  column: 13
  message: "syntax error"
  token: "~"
}

你知道为什么过滤器会这样吗

回答您提出的问题:它为什么会这样?因为在前一种情况下,过滤是在客户端完成的(根据
gcloud topic filters
),而在后一种情况下,过滤是在服务器端完成的

我们将调查它们是否可以达成一致。

--filter
标志是一个单一的过滤标志,可以在客户端或服务器端进行解释。在

gcloud compute instances list --filter='name~mysql'
案例在客户端进行解释。如果添加
--log http
,您将看到过滤器表达式从未在任何api请求中发送。另一方面

gcloud dataproc clusters list --filter='clusterName~dev' --log-http
将显示:

==请求启动====
uri:https://dataproc.googleapis.com/v1/projects/YOUR_PROJECT/regions/global/clusters?filter=%27clusterName%7Edev%27&alt=json&pageSize=100
方法:获取
==标题开始==
…

此处的dataproc后端api无法处理相同的筛选语法。请参阅有关筛选器的dataproc api文档:

根据该文档,您可以

gcloud dataproc clusters list --filter='clusterName=dev'

不管怎样,
--filter='clusterName~dev'
语法都不应该产生错误,应该在这里报告为错误

多谢各位。我提出了一个错误。现在,我将使用grep解决这个问题。