Random recipes of JMESPath for the AWS CLI tools that I might have written or stumbled upon.
- Examples
- Return listing of all available AWS regions
- Test if specific Lambda function exists?
- List all Route 53 record names and their type for a zone
- List all CloudWatch log groups
- List all CloudWatch log groups with event expiry
- Status of CloudFormation stack
- EC2 system and instance reachability status as string pair
- EC2 terminate instance ID and current state
- EC2 instance get autoscale group name by tag
- EC2 instance get autoscale group name by auto scaling API
- List EC2 marketplace AMI ID's for a given product ID
- Reference
With one per each line.
aws ec2 describe-regions \
--output text
--query "Regions[].[RegionName]"
# ap-south-1
# eu-west-2
# eu-west-1
# ap-northeast-2
# ap-northeast-1
# etc.
aws lambda list-functions \
--output text \
--query "Functions[?FunctionName=='MY_FUNCTION_NAME'].CodeSha256"
aws route53 list-resource-record-sets \
--hosted-zone-id HOSTED_ZONE_ID \
--output text \
--query "ResourceRecordSets[].[join(': ',[Name,Type])]"
aws logs describe-log-groups \
--output text \
--query "logGroups[].[logGroupName]"
aws logs describe-log-groups \
--output text \
--query "logGroups[].[join(': ',[logGroupName,to_string(retentionInDays || 'Never Expire')])]"
aws cloudformation describe-stacks \
--stack-name STACK_NAME \
--output text \
--query "Stacks[0].StackStatus"
aws ec2 describe-instance-status \
--instance-ids INSTANCE_ID \
--output text \
--query "join(':',InstanceStatuses[0].[InstanceStatus,SystemStatus][].Details[0].Status)"
Returns a value in the form of passed:passed
.
aws ec2 terminate-instances \
--instance-ids INSTANCE_ID \
--output text \
--query "TerminatingInstances[0].join(':',[InstanceId,CurrentState.Name])"
aws ec2 describe-tags \
--filters "Name=resource-id,Values=INSTANCE_ID" \
--output text \
--query "Tags[?Key=='aws:autoscaling:groupName'].Value"
aws autoscaling describe-auto-scaling-instances \
--instance-ids INSTANCE_ID \
--output text \
--query "AutoScalingInstances[*].AutoScalingGroupName"
aws ec2 describe-images \
--filters "Name=name,Values=*-PRODUCT_ID-*" \
--output text \
--query "reverse(sort_by(Images,&CreationDate))[].[join(':',[ImageId,CreationDate,Description])]"