Skip to main content

Async boto3 wrapper

Project description

Async AWS SDK for Python

https://img.shields.io/pypi/v/aioboto3.svg https://img.shields.io/travis/terrycain/aioboto3.svg Documentation Status Updates

This package is mostly just a wrapper combining the great work of boto3 and aiobotocore.

aiobotocore allows you to use near enough all of the boto3 client commands in an async manner just by prefixing the command with await.

With aioboto3 you can now usxe the higher level APIs provided by boto3 in an asynchronous manner. Mainly I developed this as I wanted to use the boto3 dynamodb Table object in some async microservices.

Whilst all resources in boto3 should work I havent tested them all, so if what your after is not in the table below then try it out, if it works drop me an issue with a simple test case and I’ll add it to the table.

Services

Status

DynamoDB Service Resource

Tested and working

DynamoDB Table

Tested and working

Example

Simple example of using aioboto3 to put items into a dynamodb table

import asyncio
import aioboto3
from boto3.dynamodb.conditions import Key


async def main():
    async with aioboto3.resource('dynamodb', region_name='eu-central-1') as dynamo_resource:
        table = dynamo_resource.Table('test_table')

        await table.put_item(
            Item={'pk': 'test1', 'col1': 'some_data'}
        )

        result = await table.query(
            KeyConditionExpression=Key('pk').eq('test1')
        )

        print(result['Items'])

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

# Outputs:
#  [{'col1': 'some_data', 'pk': 'test1'}]

Things that either dont work or have been patched

As this library literally wraps boto3, its inevitable that some things won’t magically be async.

  • s3_client.copy This is performed by the s3transfer module. I believe s3_client.copy_object performs the same function

Fixed:

  • s3_client.download_file* This is performed by the s3transfer module. – Patched with get_object

  • s3_client.upload_file* This is performed by the s3transfer module. – Patched with put_object

Documentation

Docs are here - https://aioboto3.readthedocs.io/en/latest/

Examples here - https://aioboto3.readthedocs.io/en/latest/usage.html

Features

  • Closely mimics the usage of boto3.

Todo

  • More Examples

  • Set up docs

  • Look into monkey-patching the aws xray sdk to be more async if it needs to be.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template. It also makes use of the aiobotocore and boto3 libraries. All the credit goes to them, this is mainly a wrapper with some examples.

History

2.0.0 (2017-12-30)

  • Patched most s3transfer functions

1.1.2 (2017-11-29)

  • Fixup of lingering GPL license texts

0.1.0 (2017-09-25)

  • First release on PyPI.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aioboto3-2.2.0.tar.gz (25.5 kB view details)

Uploaded Source

Built Distribution

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

aioboto3-2.2.0-py2.py3-none-any.whl (11.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file aioboto3-2.2.0.tar.gz.

File metadata

  • Download URL: aioboto3-2.2.0.tar.gz
  • Upload date:
  • Size: 25.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aioboto3-2.2.0.tar.gz
Algorithm Hash digest
SHA256 24d5ccd7d2d7e11d2d54cddbb8a970a691d402124022db110df322c4670b9e06
MD5 412677e25bfe35aa382ea13ab18e9019
BLAKE2b-256 8e32d3fe82d1a71264104324feb79ff44c144fd5f57d0b1424c28f04254e1bd4

See more details on using hashes here.

File details

Details for the file aioboto3-2.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for aioboto3-2.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 fac2a17f4e5e24c76223849c19e29f85fe8fa422cbe10b1e391f4c22a819506b
MD5 12ca8d237c303a58e01b8f66bc86507f
BLAKE2b-256 d8d90c5233a99b92af3fb3388e80afb57e16b203cf98f6ebdca521ac493a6ab6

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