[英]How to ftech values from nested josn via aws cli from DynamoDB
我正在尝试列出 AWS Dynamodb 表 ( DDNS
) 中的Items
和其他值,但是,如果只查找InstnaceId
,那么我能够获得我的实例的整个列表,但是我想从表是一个嵌套的 json,我不知道该怎么做。
以下是仅查找InstanceId
时的成功:
(awscliv2) $ aws dynamodb scan --table-name DDNS --query "Items[*].{InstanceId:InstanceId}" --region us-west-2
[
{
"InstanceId": {
"S": "i-03dd05693e4y43b9b"
}
},
{
"InstanceId": {
"S": "i-07b4a8yr38d89faf1"
}
},
{
"InstanceId": {
"S": "i-029340cb56eeae8a1"
}
},
从 AWS DynamoDB 控制台查看:
下面我可以看到,有两列
InstanceId
InstanceAttributes
,所有这些值仅嵌套在其中下面是嵌套的 output 的样子:
InstanceId
, RootDeviceName
, ImageId
和InstanceType
等值。抱歉,我在这里添加图片只是为了解决我的问题。 任何帮助将不胜感激。
您可能应该尝试下面的方法,这对我的测试很有效。
#!/bin/bash
# List the DynamoDB contents from table
aws dynamodb scan --table-name DDNS --region us-west-2 \
--query 'Items[*].{ "Instance IP" : InstanceAttributes.M.Reservations.L[*].M.Instances.L[*].M.PrivateIpAddress.S[]|[0],
"Instance TYPE": InstanceAttributes.M.Reservations.L[*].M.Instances.L[*].M.InstanceType.S[]|[0],
"Instance ID": InstanceAttributes.M.Reservations.L[*].M.Instances.L[*].M.InstanceId.S[]|[0],
"Image ID": InstanceAttributes.M.Reservations.L[*].M.Instances.L[*].M.ImageId.S[]|[0],
"Root Device": InstanceAttributes.M.Reservations.L[*].M.Instances.L[*].M.RootDeviceName.S[]|[0] }' \
--output table \
--no-cli-pager
结果:
----------------------------------------------------------------------------------------------------
| Scan |
+------------------------+----------------------+---------------+------------------+---------------+
| Image ID | Instance ID | Instance IP | Instance TYPE | Root Device |
+------------------------+----------------------+---------------+------------------+---------------+
| ami-0660c6f78888h2dcad | i-03dd05693e2fe3b9b | 10.0.10.200 | r6i.large | /dev/sda1 |
| ami-06811f95599jjh8126 | i-07b4a16b44d89faf1 | 10.0.10.100 | r6i.large | /dev/sda1 |
| ami-0660c6f7c9dhhg6cad | i-025830cb11llae8a1 | 10.0.10.110 | r6i.large | /dev/sda1 |
| ami-087945320da3908tf3 | i-0c3e05430176nm5db | 10.0.10.111 | r6i.large | /dev/sda1 |
----------------------------------------------------------------------------------------------------
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.