Skip to main content

A consistent API to AWS

Project description

Acky Library

Build Status

The Acky library provides a consistent interface to AWS. Based on botocore, it abstracts some of the API work involved and allows the user to interact with AWS APIs in a consistent way with minimal overhead.

Acky takes a different approach to the API from libraries like the venerable Boto <https://github.com/boto/boto>. Rather than model AWS objects as Python objects, Acky simply wraps the API to provide a more consistent interface. Most objects in AWS are represented as collections in Acky, with get(), create(), and destroy() methods. The get() method always accepts a filter map, no matter if the underlying API method does.

In cases where the API’s multitude of parameters would make for awkward method calls (as is the case with EC2’s RunInstances), Acky provides a utility class whose attributes can be set before executing the API call.

Using Acky

Acky uses a botocore-style AWS credential configuration, the same as the official AWS CLI. Before you use Acky, you’ll need to set up your config <http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html>.

Once your credentials are set up, using acky is as simple as creating an instance of the AWS object:

from acky.aws import AWS
aws = AWS(region, profile)
instances = aws.ec2.Instances.get(filters={'tag:Name': 'web-*'})
print('Found {} web servers'.format(len(instances)))
for instance in instances:
    print('  {}'.format(instance['PublicDnsName'])

Module Structure

The expected module structure for Acky follows. Many APIs are not yet implemented, but those that are can be considered stable.

  • AWS

    • username (property)

    • userinfo (property)

    • account_id (property)

    • environment (property)

    • ec2

      • regions

      • zones

      • ACEs

      • ACLs

      • ElasticIPs

      • Instances

      • IpPermissions

      • KeyPairs

      • PlacementGroups

      • SecurityGroups

      • Snapshots

      • Subnets

      • VPCs

      • Volumes

    • iam

      • Users

      • Groups

      • Keys

    • rds

      • engine_versions

      • Instances

      • Snapshots

      • EventSubscriptions

      • SecurityGroups

      • SecurityGroupRules

    • sqs

      • Queues

      • Messages

    • sts

      • GetFederationToken

      • GetSessionToken

Other services will be added in future versions.

Installing acky

acky is available in PyPI and is installable via pip:

pip install acky

You may also install acky from source, perhaps from the GitHub repo:

git clone https://github.com/RetailMeNot/acky.git
cd acky
python setup.py install

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

acky-0.2.3.tar.gz (16.6 kB view details)

Uploaded Source

Built Distributions

acky-0.2.3-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

acky-0.2.3-py2-none-any.whl (22.1 kB view details)

Uploaded Python 2

File details

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

File metadata

  • Download URL: acky-0.2.3.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for acky-0.2.3.tar.gz
Algorithm Hash digest
SHA256 3cd8576e7a6a8db597d287bdfbbad7f6046fe9b1ce774ac0ba49da4e133b518d
MD5 80e0f0242eb78f03f5a922065f604168
BLAKE2b-256 2158035abe1fc735cb649778c45a445d008a914febec8b2215283f7b2a21fda4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for acky-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 12f63f3481cf22d8bee2f3f6fd101c4ae17721aec5926b464e6951dbc074a78b
MD5 a29f8aaa311b52f0005b0b223764b2be
BLAKE2b-256 9c9a2d201280433a9719762b8d881b5b063995ac6ef69494768c4e6f372807de

See more details on using hashes here.

File details

Details for the file acky-0.2.3-py2-none-any.whl.

File metadata

File hashes

Hashes for acky-0.2.3-py2-none-any.whl
Algorithm Hash digest
SHA256 d7fc7251f626c88d2bf6c0cd221495290c954ac9b0faaab25373b8377cdf365b
MD5 73974822e1a973f2c2da8defdffd99e1
BLAKE2b-256 98c149803472e0c38420d2d53974acb46dfa37753a2940e76367be2609a00f61

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