Skip to main content

Cache AWS resources

Project description

Kinghorn

Python 3 library for caching AWS resources

Purpose

This library provides caching of AWS resources, which can save development time and money making API calls, as well as reduce the chances of errors taking place from running scripts against resources in flux. I use it to cache resources such as EC2 instances, volumes, and snapshots for retrieval in later scripts. I disliked having to call an API and perform an O(n^2) operation to unwrap my instance metadata every time I did something with boto3. With Kinghorn I can easily place resources in dictionaries for constant time access.

Opinions

I've chosen to discard metadata and "unwrap" entity metadata for storage. I've used clients instead of resources for Kinghorn to make it easy to alter the library to access low level API functions if needed. The library expects appropriate credentials in ~/.aws/credentials.

Installation instructions for Mac OS X

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
brew install python curl -O http://python-distribute.org/distribute_setup.py python distribute_setup.py
curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
python get-pip.py
pip3 install boto3 python3 -m kinghorn

Configuration

Configuration is handled with environment variables, as follows:

  • KINGHORN_REGION - Which region you want to use
  • KINGHORN_ENVIRONMENT - Which environment your API credentials are for, for example factory, production, etc.
  • KINGHORN_LOGGING_OUT - Set to 1 to log to std out, useful for local testing and debugging
  • KINGHORN_LOGGING_LEVEL
  • KINGHORN_LOGGING_FILE
  • KINGHORN_CACHE_LOCATION

Files

  • kinghorn.py - The library
  • test_kinghorn.py - An example file describing some ways to use the library and testing all functions

Future feature ideas

  • Additional entities for different services in AWS as I need them
  • Automated configurable cache expiration
  • Passthrough to the AWS API on cache miss

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

kinghorn-0.0.4.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kinghorn-0.0.4-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file kinghorn-0.0.4.tar.gz.

File metadata

  • Download URL: kinghorn-0.0.4.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.11.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.16

File hashes

Hashes for kinghorn-0.0.4.tar.gz
Algorithm Hash digest
SHA256 b8d45d5264da6a19eb7a08ffc47efe3698421821b2a3a9a2d5bac69f0ffb138d
MD5 0ca37b745e12bca31c82053bd33128bf
BLAKE2b-256 c3846536ad7d1723a60b0e08fa98b0f144bb9aa83f4e4545b5e1fca22f256f68

See more details on using hashes here.

File details

Details for the file kinghorn-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: kinghorn-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.11.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.16

File hashes

Hashes for kinghorn-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1352ae93efa84966a29b081e268156bc078dfe2206768f24004629281886da86
MD5 e0b8b509a0e8ade28a37970849ad1597
BLAKE2b-256 bc3e93af497afe9596cc3f415868c25aca4a772c571a9f6508b2a6a9b981e2ce

See more details on using hashes here.

Supported by

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