如何在gcloud中使用——format=table输出资源的每个可能字段



根据Cloud SDK - gcloud主题格式的文档,它提供了一个选项--format,可以有效地控制输出的方式。

我注意到,当我使用--format=json--format=yaml没有额外的参数时,gcloud产生的输出总结了每个可用的字段要用这个API检索,但是,我无法弄清楚,如何达到与--table相同的行为,而不需要枚举每个服务字段。

考虑下面的例子:

gcloud app regions list --format=json --limit 1
[
{
"flexible": true,
"region": "asia-east1",
"search_api": false,
"standard": true
}
]

它显示了AppEngine区域资源可用字段的详尽枚举,但是当我想要输出几乎相同的信息时,特别是当我不确切地知道字段的完整范围或确切的命名时,我应该像下面这样单独枚举每个字段。

gcloud app regions list 
--format="table[box,all-box,title='AppEngine APAC regions'](region,standard,flexible,search_api)" 
--limit 9
┌────────────────────────────────────────────────────────────────────────────────────┐
│                               AppEngine APAC regions                               │
├──────────────────────┬───────────────────┬───────────────────┬─────────────────────┤
│        REGION        │ SUPPORTS STANDARD │ SUPPORTS FLEXIBLE │ SUPPORTS GAE SEARCH │
├──────────────────────┼───────────────────┼───────────────────┼─────────────────────┤
│ asia-east1           │ YES               │ YES               │ NO                  │
├──────────────────────┼───────────────────┼───────────────────┼─────────────────────┤
│ asia-east2           │ YES               │ YES               │ YES                 │
├──────────────────────┼───────────────────┼───────────────────┼─────────────────────┤
│ asia-northeast1      │ YES               │ YES               │ YES                 │
├──────────────────────┼───────────────────┼───────────────────┼─────────────────────┤
│ asia-northeast2      │ YES               │ YES               │ YES                 │
├──────────────────────┼───────────────────┼───────────────────┼─────────────────────┤
│ asia-northeast3      │ YES               │ YES               │ YES                 │
├──────────────────────┼───────────────────┼───────────────────┼─────────────────────┤
│ asia-south1          │ YES               │ YES               │ YES                 │
├──────────────────────┼───────────────────┼───────────────────┼─────────────────────┤
│ asia-southeast1      │ YES               │ YES               │ NO                  │
├──────────────────────┼───────────────────┼───────────────────┼─────────────────────┤
│ asia-southeast2      │ YES               │ YES               │ YES                 │
├──────────────────────┼───────────────────┼───────────────────┼─────────────────────┤
│ australia-southeast1 │ YES               │ YES               │ YES                 │
总之,有没有一种更简单的方法来实现--table格式的上述行为,就像这样
gcloud app regions list --format="table" --limit 9 # Won't work

作为参考,下面是一个根据AWS表输出格式使用表格视图表示的示例,没有提供额外的参数

aws iam list-users --output table

产生以下输出

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
|                                                                                 ListUsers                                                                     |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
||                                                                                  Users                                                                      ||
|+----------------------------------------------------+---------------------------+---------------------------+----------+-----------------------+-------------+|
||                         Arn                        |       CreateDate          |    PasswordLastUsed       |   Path   |        UserId         |   UserName  ||
|+----------------------------------------------------+---------------------------+---------------------------+----------+-----------------------+-------------+|
||  arn:aws:iam::123456789012:user/Admin              | 2014-10-16T16:03:09+00:00 | 2016-06-03T18:37:29+00:00 | /        | AIDA1111111111EXAMPLE | Admin       ||
||  arn:aws:iam::123456789012:user/backup/backup-user | 2019-09-17T19:30:40+00:00 |                           | /backup/ | AIDA2222222222EXAMPLE | backup-user ||
||  arn:aws:iam::123456789012:user/cli-user           | 2019-09-17T19:11:39+00:00 |                           | /        | AIDA3333333333EXAMPLE | cli-user    ||
+---------------------------------------------------------------------------------------------------------------------------------------------------------------+

No.

--table的文档解释了"这种格式需要一个投影来定义表列"。

这不是一个不合理的请求,但我怀疑原因是表更适合于平面非分层数据。嵌套类型可以作为嵌套表输出,但这可能会变得混乱。

你想要达到的目标是什么?

您可以通过附加标志--log-http来确定任何gcloud命令底层的API调用。

然后,使用API资源管理器,你可以找到这些方法,例如App Engine Admin API,这里是apps.locations.list和…最后……响应类型。本例中为ListLocationsResponse.

此类型对应于例如gcloud app regions list的输出。

相关内容

  • 没有找到相关文章

最新更新