How to query nested value in AWS Cli?

Viewed 73
"MetricAlarms": [
    {
        "AlarmName": "AWS_CPUUtilisation_Alarm",
        "MetricName": "CPUUtilization",
        "Namespace": "AWS/EC2",
        "Statistic": "Average",
        "Dimensions": [
            {
                "Name": "InstanceId",
                "Value": "i-XXXXXXXXX"
            }
        ],
        "Period": 300,
        "EvaluationPeriods": 1,
    },

From the above data how can i get only instance id by using below command I am getting name and value:

aws cloudwatch describe-alarms --query "MetricAlarms[*].{Instanceid:Dimensions}" --output table
1 Answers

You're almost there:

aws cloudwatch describe-alarms --query "MetricAlarms[*].{Instanceid:Dimensions}[*].Instanceid[*].Value"

You might find it useful to play around with a tool like jmespath terminal or jmespath tutorial.

Related