如何让“gcloud app deploy --format=json”仅输出 JSON?

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

在编写对

gcloud
实用程序进行一系列调用的脚本时,添加
--format=json
标志非常有帮助,以便输出易于机器读取。

问题是:

gcloud app deploy --format=json --quiet
不是机器可读的。它在输出 JSON 结果之前以明文形式输出一堆日志信息。显然,我可以将输出解析为findJSON,但我希望有一种方法可以将其限制为justJSON输出。

这是我得到的(出于隐私原因删除)

❯ gcloud app deploy --project=$PROJECT --format=json --verbosity=none --quiet
Services to deploy:

descriptor:                  [/path/to/app.yaml]
source:                      [/path/to/project]
target project:              [project-id]
target service:              [default]
target version:              [20240130t124159]
target url:                  [https://project-id.uk.r.appspot.com]
target service account:      [[email protected]]


Beginning deployment of service [default]...
╔════════════════════════════════════════════════════════════╗
╠═ Uploading 0 files to Google Cloud Storage                ═╣
╚════════════════════════════════════════════════════════════╝
File upload done.
Updating service [default]...done.                                                                                 
Setting traffic split for service [default]...done.                                                                
Stopping version [project-id/default/20240130t124016].
Sent request to stop version [project-id/default/20240130t124016]. This operation may take some time to complete. If you would like to verify that it succeeded, run:
  $ gcloud app versions describe -s default 20240130t124016
until it shows that the version has stopped.
Deployed service [default] to [https://project-id.uk.r.appspot.com]

You can stream logs from the command line by running:
  $ gcloud app logs tail -s default

To view your application in the web browser run:
  $ gcloud app browse --project=project-id
{
  "configs": [],
  "versions": [
    {
      "environment": null,
      ...

我已经使用了

--verbosity=none
标志,但没有产生任何影响。我在没有
--quiet
标志的情况下尝试了它(在这种情况下,您需要通过管道
yes
进入其中),但这没有影响。

我缺少什么吗?有人知道一些技巧吗?

google-cloud-platform command-line-interface gcloud
1个回答
0
投票

在输出中,您可以看到标准输出和标准错误。我以前遇到过这个问题,我发现有用的部分是写在标准输出中,而开销的东西写在标准错误中(我不记得我是如何发现的!)

所以,如果你使用这个命令将stderr写入NULL,你可以只保留有用的部分

gcloud app deploy --format=json 2>/dev/null
© www.soinside.com 2019 - 2024. All rights reserved.