Amazon web services 用JMESpath构造对象
我正在尝试使用AWS CLI构建一个JMESpath查询,该查询打印一个表,将一些选定的属性显示为行。我可以使用Amazon web services 用JMESpath构造对象,amazon-web-services,aws-cli,jmespath,Amazon Web Services,Aws Cli,Jmespath,我正在尝试使用AWS CLI构建一个JMESpath查询,该查询打印一个表,将一些选定的属性显示为行。我可以使用jq获得我想要的,但我只想使用awscli来实现,这样它就可以格式化为一个表。这可能吗?下面是我想要的输出,使用jqobjectconstruction语法: % aws --output json ec2 describe-instances --instance-id $id --query 'Reservations[].Instances[0]' | jq '.[0] | {I
jq
获得我想要的,但我只想使用awscli
来实现,这样它就可以格式化为一个表。这可能吗?下面是我想要的输出,使用jq
objectconstruction语法:
% aws --output json ec2 describe-instances --instance-id $id --query 'Reservations[].Instances[0]' | jq '.[0] | {InstanceType,PrivateIpAddress,LaunchTime}'
{
"InstanceType": "g4dn.4xlarge",
"PrivateIpAddress": "172.31.15.37",
"LaunchTime": "2021-02-17T14:49:30+00:00"
}
最接近我的方法是使用多选散列,但这会使每个项都成为一列,因此如果有多个项,则效果不佳
% aws --output table ec2 describe-instances --instance-id $id --query 'Reservations[].Instances[0].{size: InstanceType, PrivateIP: PrivateIpAddress, LaunchTime: LaunchTime}'
---------------------------------------------------------------
| DescribeInstances |
+---------------------------+----------------+----------------+
| LaunchTime | PrivateIP | size |
+---------------------------+----------------+----------------+
| 2021-02-17T14:49:30+00:00| 172.31.15.37 | g4dn.4xlarge |
+---------------------------+----------------+----------------+
< > >代码>表>代码>输出将把不同的JSON对象看作不同的行。
如果确实希望每行有一个属性,则可以使用JMESPath查询为每个属性创建一个对象,如下所示:
Reservations[]实例[0]。[{Property:`LaunchTime`,Value:LaunchTime},{Property:`Size`,Value:InstanceType},{Property:`PrivateIP`,Value:PrivateIpAddress}]
在JSON结构上,例如:
{
“保留”:[
{
“实例”:[
{
“InstanceType”:“g4dn.4XL”,
“PrivateIP地址”:“172.31.15.37”,
“启动时间”:“2021-02-17T14:49:30+00:00”
}
]
}
]
}
这将为您提供此JSON的结果:
[
[
{
“属性”:“启动时间”,
“值”:“2021-02-17T14:49:30+00:00”
},
{
“属性”:“大小”,
“值”:“g4dn.4XL”
},
{
“财产”:“私有财产”,
“价值”:“172.31.15.37”
}
]
]
然后,该表应该如下所示:
----------------------------------------------
|描述说明|
+--------------+-----------------------------+
|财产价值|
+--------------+-----------------------------+
|发射时间| 2021-02-17T14:49:30+00:00|
+--------------+-----------------------------+
|尺寸| g4dn.4XL|
+--------------+-----------------------------+
|私有财产| 172.31.15.37|
+--------------+-----------------------------+
但这会使每个项目都成为一列,因此如果有多个项目,看起来就不太好。您可以举一个例子,因为您的实际示例只显示了表中的一个项目,因此只有一个实例。我在示例中只包含了3个属性,但我将使用大约10个属性,这使得表非常宽。哦,所以您希望每个属性都有一行,对吗?非常好,谢谢!