Skip to main content

jmespath custom functions for filtering AWS resources by tag

Project description

aws-jmespath-utils

Installation

pip3 install aws_jmespath_utils

Examples

Check out the example code:

Usage

Find resources with 'Name' tag set

jmespath.search(  # it's important that your expression array must be inside `` backticks
    '[] | filter_tags(`["Name=*"]`, @)', data_list, options=jmespath_options
)

Find tag values starting with 123

jmespath.search(  # it's important that your expression array must be inside `` backticks
    '[].filter_tags(`["=123*"]`, @)', data_list, options=jmespath_options
)

Find Many tag values

jmespath.search(  # it's important that your expression array must be inside `` backticks
    '[].filter_tags(`["=123*", "=jmespath*"]`, @)', data_list, options=jmespath_options
)

Exclude Tags

jmespath.search(  # it's important that your expression array must be inside `` backticks
    '[].exclude_tags(`["map-migrated=*"]`, @)', data_list, options=jmespath_options
)

Setting log levels

# set log level as you wish
export AWS_JMESPATH_UTILS_LOG_LEVEL="DEBUG"   
export AWS_JMESPATH_UTILS_LOG_LEVEL="INFO"  # default   

Complete Usage Example

import jmespath
from aws_jmespath_utils import jmespath_options
import json
data_list = [    
    {"a": "a", "Tags": [{"Key": "Name", "Value": "jmespath-utils"}, ]},
    {"b": "b", "Tags": [{"Key": "Nam", "Value": "jmespath-utils-nam"}]},
    {"c": "c", "Tags": [{"Key": "map-migrated", "Value": "234"}]}
]

print(
    json.dumps(
        jmespath.search('[] | filter_tags(`["Name=*"]`, @)', data_list, options=jmespath_options),
        indent=2
    )
)

print(
    json.dumps(
        jmespath.search('[] | exclude_tags(`["Nam*="]`, @)', data_list, options=jmespath_options),
        indent=2
    )
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws_jmespath_utils-0.2.3.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

aws_jmespath_utils-0.2.3-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file aws_jmespath_utils-0.2.3.tar.gz.

File metadata

  • Download URL: aws_jmespath_utils-0.2.3.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.1 CPython/3.10.12 Darwin/23.5.0

File hashes

Hashes for aws_jmespath_utils-0.2.3.tar.gz
Algorithm Hash digest
SHA256 4f6efbcd14f3c098d02334cafa80a4fc61924ecbd4e468fe332c690becff830a
MD5 6aa3e3e5fdbec2d8644b702c06c43018
BLAKE2b-256 ef6e74e7f6c32e193de2607d9e38cd9dd3967848eacedc9be925bc3b054d51af

See more details on using hashes here.

File details

Details for the file aws_jmespath_utils-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for aws_jmespath_utils-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 eca8cd082a072d719d179b33bd1d88b4c3c677077e9f90133c2529150c560cad
MD5 985ff89b59cb2ab4b7e830f93fcfc96f
BLAKE2b-256 e4f1896269efd74630b147184759824c5048acb1279de2fd3ce88d3011e531eb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page