在编写对
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
进入其中),但这没有影响。
我缺少什么吗?有人知道一些技巧吗?
在输出中,您可以看到标准输出和标准错误。我以前遇到过这个问题,我发现有用的部分是写在标准输出中,而开销的东西写在标准错误中(我不记得我是如何发现的!)
所以,如果你使用这个命令将stderr写入NULL,你可以只保留有用的部分
gcloud app deploy --format=json 2>/dev/null