mightycpa
mightycpa

Reputation: 155

AWSCLI aggregate results from multiple cli invocations

I'm using AWSCLI on Windows to start, query and connect to instances via RDP. I have three values I want to return in a single query, but I can't figure out how to do it.

Can you demonstrate how to do it?

Here are the three values returned in three queries:

aws ec2 describe-instance-status --instance-id i-xxxxxxxx --query InstanceStatuses[*].InstanceState.Code
aws ec2 describe-instance-status --instance-id i-xxxxxxxx --query InstanceStatuses[*].SystemStatus.Status
aws ec2 describe-instance-status --instance-id i-xxxxxxxx --query InstanceStatuses[*].InstanceStatus.Status

The output looks like this:

{
"InstanceStatuses": [
    {
        "InstanceId": "i-1234567890abcdef0",
        "InstanceState": {
            "Code": 16,
            "Name": "running"
        },
        "AvailabilityZone": "us-east-1d",
        "SystemStatus": {
            "Status": "ok",
            "Details": [
                {
                    "Status": "passed",
                    "Name": "reachability"
                }
            ]
        },
        "InstanceStatus": {
            "Status": "ok",
            "Details": [
                {
                    "Status": "passed",
                    "Name": "reachability"
                }
            ]
        }
    }
]
}

and is documented here: describe-instance-status

Thanks

Upvotes: 2

Views: 140

Answers (1)

jarmod
jarmod

Reputation: 78803

You can request more than one attribute in the --query parameter. For example:

aws ec2 describe-instance-status \
    --instance-id i-01122233344455566 \
    --query "InstanceStatuses[0].{code:InstanceState.Code,sstatus:SystemStatus.Status,istatus:InstanceStatus.Status}"

This will result in something like:

{
   "istatus": "ok",
   "code": 16,
   "sstatus": "ok"
}

Note the following changes:

  • retrieving InstanceStatuses[0] rather than InstanceStatuses[*]
  • multiple values requested within braces
  • use of aliases istatus, code, sstatus (feel free to change these)

Upvotes: 2

Related Questions