Count the numer of instance in an array using JMESPath
up vote
7
down vote
favorite
In the example JSON at the bottom of this question, how can I count the number of key/value pairs in the array "Tags"
using JMESPath?
According to the JMESPath documentation, I can do this using the count()
function -
For example, the following expression creates an array containing the total number of elements in the foo object followed by the value of foo["bar"].
However, it seems that the documentation is incorrect. Using the JMESPath website, the query Reservations.Instances.[count(@), Tags]
yeilds the result [ [ null ] ]
. I then tested via the AWS command line and an error was returned -
Unknown function: count()
Is there actually a way of doing this using JMESPath?
Example JSON -
"Reservations": [
"Instances": [
"InstanceId": "i-asdf1234",
"InstanceName": "My Instance",
"Tags": [
"Value": "Value1",
"Key": "Key1"
,
"Value": "Value2",
"Key": "Key2"
,
"Value": "Value3",
"Key": "Key3"
,
"Value": "Value4",
"Key": "Key4"
]
]
]
arrays json syntax jmespath
add a comment |
up vote
7
down vote
favorite
In the example JSON at the bottom of this question, how can I count the number of key/value pairs in the array "Tags"
using JMESPath?
According to the JMESPath documentation, I can do this using the count()
function -
For example, the following expression creates an array containing the total number of elements in the foo object followed by the value of foo["bar"].
However, it seems that the documentation is incorrect. Using the JMESPath website, the query Reservations.Instances.[count(@), Tags]
yeilds the result [ [ null ] ]
. I then tested via the AWS command line and an error was returned -
Unknown function: count()
Is there actually a way of doing this using JMESPath?
Example JSON -
"Reservations": [
"Instances": [
"InstanceId": "i-asdf1234",
"InstanceName": "My Instance",
"Tags": [
"Value": "Value1",
"Key": "Key1"
,
"Value": "Value2",
"Key": "Key2"
,
"Value": "Value3",
"Key": "Key3"
,
"Value": "Value4",
"Key": "Key4"
]
]
]
arrays json syntax jmespath
add a comment |
up vote
7
down vote
favorite
up vote
7
down vote
favorite
In the example JSON at the bottom of this question, how can I count the number of key/value pairs in the array "Tags"
using JMESPath?
According to the JMESPath documentation, I can do this using the count()
function -
For example, the following expression creates an array containing the total number of elements in the foo object followed by the value of foo["bar"].
However, it seems that the documentation is incorrect. Using the JMESPath website, the query Reservations.Instances.[count(@), Tags]
yeilds the result [ [ null ] ]
. I then tested via the AWS command line and an error was returned -
Unknown function: count()
Is there actually a way of doing this using JMESPath?
Example JSON -
"Reservations": [
"Instances": [
"InstanceId": "i-asdf1234",
"InstanceName": "My Instance",
"Tags": [
"Value": "Value1",
"Key": "Key1"
,
"Value": "Value2",
"Key": "Key2"
,
"Value": "Value3",
"Key": "Key3"
,
"Value": "Value4",
"Key": "Key4"
]
]
]
arrays json syntax jmespath
In the example JSON at the bottom of this question, how can I count the number of key/value pairs in the array "Tags"
using JMESPath?
According to the JMESPath documentation, I can do this using the count()
function -
For example, the following expression creates an array containing the total number of elements in the foo object followed by the value of foo["bar"].
However, it seems that the documentation is incorrect. Using the JMESPath website, the query Reservations.Instances.[count(@), Tags]
yeilds the result [ [ null ] ]
. I then tested via the AWS command line and an error was returned -
Unknown function: count()
Is there actually a way of doing this using JMESPath?
Example JSON -
"Reservations": [
"Instances": [
"InstanceId": "i-asdf1234",
"InstanceName": "My Instance",
"Tags": [
"Value": "Value1",
"Key": "Key1"
,
"Value": "Value2",
"Key": "Key2"
,
"Value": "Value3",
"Key": "Key3"
,
"Value": "Value4",
"Key": "Key4"
]
]
]
arrays json syntax jmespath
arrays json syntax jmespath
edited Nov 9 at 21:55
dreftymac
15.6k2187153
15.6k2187153
asked Aug 26 '16 at 8:51
David Gard
4,4571863129
4,4571863129
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
7
down vote
accepted
The answer here is that the JMESPath documentation is shocking, and for some reason I was seeing out of date documentation (check the bottom right corner of the screen to see what version you are viewing.
I can do what I need to do using the length()
function -
Reservations.Instances.Tags | length(@)
Another option:length(Reservations.Instances.Tags )
– haschdl
Feb 16 at 17:01
add a comment |
up vote
1
down vote
I managed to incorporate this usage of length length(Tags[*])
within a larger statement I think is useful and wanted to share:
aws ec2 describe-instances --region us-west-2 --query 'Reservations[*].Instances[*].id: InstanceId, ami_id: ImageId, type: InstanceType, tag_count: length(Tags[*])' --profile prod --output table;
--------------------------------------------------------------------
| DescribeInstances |
+--------------+-----------------------+------------+--------------+
| ami_id | id | tag_count | type |
+--------------+-----------------------+------------+--------------+
| ami-abc123 | i-redacted1 | 1 | m3.medium |
| ami-abc456 | i-redacted2 | 7 | m3.xlarge |
| ami-abc789 | i-redacted3 | 12 | t2.2xlarge |
+--------------+-----------------------+------------+--------------+
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
7
down vote
accepted
The answer here is that the JMESPath documentation is shocking, and for some reason I was seeing out of date documentation (check the bottom right corner of the screen to see what version you are viewing.
I can do what I need to do using the length()
function -
Reservations.Instances.Tags | length(@)
Another option:length(Reservations.Instances.Tags )
– haschdl
Feb 16 at 17:01
add a comment |
up vote
7
down vote
accepted
The answer here is that the JMESPath documentation is shocking, and for some reason I was seeing out of date documentation (check the bottom right corner of the screen to see what version you are viewing.
I can do what I need to do using the length()
function -
Reservations.Instances.Tags | length(@)
Another option:length(Reservations.Instances.Tags )
– haschdl
Feb 16 at 17:01
add a comment |
up vote
7
down vote
accepted
up vote
7
down vote
accepted
The answer here is that the JMESPath documentation is shocking, and for some reason I was seeing out of date documentation (check the bottom right corner of the screen to see what version you are viewing.
I can do what I need to do using the length()
function -
Reservations.Instances.Tags | length(@)
The answer here is that the JMESPath documentation is shocking, and for some reason I was seeing out of date documentation (check the bottom right corner of the screen to see what version you are viewing.
I can do what I need to do using the length()
function -
Reservations.Instances.Tags | length(@)
answered Aug 26 '16 at 8:54
David Gard
4,4571863129
4,4571863129
Another option:length(Reservations.Instances.Tags )
– haschdl
Feb 16 at 17:01
add a comment |
Another option:length(Reservations.Instances.Tags )
– haschdl
Feb 16 at 17:01
Another option:
length(Reservations.Instances.Tags )
– haschdl
Feb 16 at 17:01
Another option:
length(Reservations.Instances.Tags )
– haschdl
Feb 16 at 17:01
add a comment |
up vote
1
down vote
I managed to incorporate this usage of length length(Tags[*])
within a larger statement I think is useful and wanted to share:
aws ec2 describe-instances --region us-west-2 --query 'Reservations[*].Instances[*].id: InstanceId, ami_id: ImageId, type: InstanceType, tag_count: length(Tags[*])' --profile prod --output table;
--------------------------------------------------------------------
| DescribeInstances |
+--------------+-----------------------+------------+--------------+
| ami_id | id | tag_count | type |
+--------------+-----------------------+------------+--------------+
| ami-abc123 | i-redacted1 | 1 | m3.medium |
| ami-abc456 | i-redacted2 | 7 | m3.xlarge |
| ami-abc789 | i-redacted3 | 12 | t2.2xlarge |
+--------------+-----------------------+------------+--------------+
add a comment |
up vote
1
down vote
I managed to incorporate this usage of length length(Tags[*])
within a larger statement I think is useful and wanted to share:
aws ec2 describe-instances --region us-west-2 --query 'Reservations[*].Instances[*].id: InstanceId, ami_id: ImageId, type: InstanceType, tag_count: length(Tags[*])' --profile prod --output table;
--------------------------------------------------------------------
| DescribeInstances |
+--------------+-----------------------+------------+--------------+
| ami_id | id | tag_count | type |
+--------------+-----------------------+------------+--------------+
| ami-abc123 | i-redacted1 | 1 | m3.medium |
| ami-abc456 | i-redacted2 | 7 | m3.xlarge |
| ami-abc789 | i-redacted3 | 12 | t2.2xlarge |
+--------------+-----------------------+------------+--------------+
add a comment |
up vote
1
down vote
up vote
1
down vote
I managed to incorporate this usage of length length(Tags[*])
within a larger statement I think is useful and wanted to share:
aws ec2 describe-instances --region us-west-2 --query 'Reservations[*].Instances[*].id: InstanceId, ami_id: ImageId, type: InstanceType, tag_count: length(Tags[*])' --profile prod --output table;
--------------------------------------------------------------------
| DescribeInstances |
+--------------+-----------------------+------------+--------------+
| ami_id | id | tag_count | type |
+--------------+-----------------------+------------+--------------+
| ami-abc123 | i-redacted1 | 1 | m3.medium |
| ami-abc456 | i-redacted2 | 7 | m3.xlarge |
| ami-abc789 | i-redacted3 | 12 | t2.2xlarge |
+--------------+-----------------------+------------+--------------+
I managed to incorporate this usage of length length(Tags[*])
within a larger statement I think is useful and wanted to share:
aws ec2 describe-instances --region us-west-2 --query 'Reservations[*].Instances[*].id: InstanceId, ami_id: ImageId, type: InstanceType, tag_count: length(Tags[*])' --profile prod --output table;
--------------------------------------------------------------------
| DescribeInstances |
+--------------+-----------------------+------------+--------------+
| ami_id | id | tag_count | type |
+--------------+-----------------------+------------+--------------+
| ami-abc123 | i-redacted1 | 1 | m3.medium |
| ami-abc456 | i-redacted2 | 7 | m3.xlarge |
| ami-abc789 | i-redacted3 | 12 | t2.2xlarge |
+--------------+-----------------------+------------+--------------+
answered Jun 12 at 23:36
runamok
5951519
5951519
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f39162209%2fcount-the-numer-of-instance-in-an-array-using-jmespath%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown