Skip to main content

A consistent API to AWS

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Acky Library

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['PublicDNSAddress'])

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

Uploaded Source

Built Distributions

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

acky-0.1.2-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

acky-0.1.2-py2-none-any.whl (13.0 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for acky-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b32459fa9418a599b92ab7fa8e46b390800207afd2fec7eb4ff082b606750a24
MD5 28dcc3dbe6b7118bae1c3cd3bf75f02b
BLAKE2b-256 efe034f76e536f09b1395fcb80dffae246a9ee31348463c4b9d6eab2316343ca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: acky-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for acky-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 52e9f5059cc8637e3b0da140f4a7daccc24d7d5b6e96c12150c8d3680b46ddaa
MD5 019be7c53a0b59d807ed49780c876541
BLAKE2b-256 e0eb243bb176c31e4e90b75b2df2ce5d533e5f5e9db785bcb333c1d7621e03c6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: acky-0.1.2-py2-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for acky-0.1.2-py2-none-any.whl
Algorithm Hash digest
SHA256 0205c7f391a7371448de0856e0af1d491acdf557c2d9719cb3cbd240982e6d69
MD5 1a1aa106b7038aa502532f5bbb733ce3
BLAKE2b-256 f2412f18e3245cbf62369873389ebadf9e3e56baaebfa27bac7ba3d961352e3f

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