Skip to main content

jmespath custom functions for filtering and excluding 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-1.0.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: aws_jmespath_utils-1.0.0.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-1.0.0.tar.gz
Algorithm Hash digest
SHA256 35d5b3d107464822d3647001e532e4db706c7cfee01801fc8b5edcdff733c3c7
MD5 b13307f424c682e90bea6dfc8cf50295
BLAKE2b-256 401b9e08c2b922d1bdde15307d5f62f3fb1b92d03a29c962ab8d18c65c66336c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aws_jmespath_utils-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c0c23b536555eb387fd46487acae0c859a57e56b2a54dc004125dd113020b47
MD5 d0aa58759f194591c8fe9ea9b4bd87c9
BLAKE2b-256 810963dfa93a4d2703d126d438b32c2f65a7942e1aecd091ac50aba74480979d

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