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.0.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

aws_jmespath_utils-0.2.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aws_jmespath_utils-0.2.0.tar.gz
  • Upload date:
  • Size: 7.7 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.0.tar.gz
Algorithm Hash digest
SHA256 0d35f27a965d688920f5e8ff8d67dd740ea2825ce2d1653741fa8eb287577f24
MD5 25d6521f5adaed5897002c336b5a1752
BLAKE2b-256 3f358214cd575b7132c6c44a6e1c6fb8fc7386f424ae841e8e858ff2dbf87e79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aws_jmespath_utils-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bfd4f908d39d71d2a1235810c963dfaa57cec1123e3fd76c859bee68ee4f65e0
MD5 8be091679a3b2d4b7232d9c5b8346fe8
BLAKE2b-256 33781e027ad91ccd4a319ae73ac074a88a3353a3098e5b5061e896bfa686f018

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