Boto is a Python package that provides interfaces to Amazon Web Services. Currently, all features work with Python 2.6 and 2.7. Work is under way to support Python 3.3+ in the same codebase. Modules are being ported one at a time with the help of the open source community, so please check below for compatibility with Python 3.3+.
To port a module to Python 3.3+, please view our Contributing Guidelines and the Porting Guide. If you would like, you can open an issue to let others know about your work in progress. Tests must pass on Python 2.6, 2.7, 3.3, and 3.4 for pull requests to be accepted.
At the moment, boto supports:
- Amazon Elastic Compute Cloud (EC2) (Python 3)
- Amazon Elastic Map Reduce (EMR) (Python 3)
- AutoScaling (Python 3)
- Amazon Kinesis (Python 3)
- Content Delivery
- Amazon CloudFront (Python 3)
- Amazon Relational Data Service (RDS)
- Amazon DynamoDB (Python 3)
- Amazon SimpleDB (Python 3)
- Amazon ElastiCache (Python 3)
- Amazon Redshift (Python 3)
- Deployment and Management
- AWS Elastic Beanstalk (Python 3)
- AWS CloudFormation (Python 3)
- AWS Data Pipeline (Python 3)
- AWS Opsworks (Python 3)
- AWS CloudTrail (Python 3)
- Identity & Access
- AWS Identity and Access Management (IAM) (Python 3)
- Application Services
- Amazon CloudSearch (Python 3)
- Amazon Elastic Transcoder (Python 3)
- Amazon Simple Workflow Service (SWF) (Python 3)
- Amazon Simple Queue Service (SQS) (Python 3)
- Amazon Simple Notification Server (SNS) (Python 3)
- Amazon Simple Email Service (SES) (Python 3)
- Amazon Cognito Identity (Python 3)
- Amazon Cognito Sync (Python 3)
- Amazon CloudWatch (EC2 Only) (Python 3)
- Amazon CloudWatch Logs (Python 3)
- Amazon Route53 (Python 3)
- Amazon Route 53 Domains (Python 3)
- Amazon Virtual Private Cloud (VPC) (Python 3)
- Elastic Load Balancing (ELB) (Python 3)
- AWS Direct Connect (Python 3)
- Payments and Billing
- Amazon Flexible Payment Service (FPS)
- Amazon Simple Storage Service (S3) (Python 3)
- Amazon Glacier (Python 3)
- Amazon Elastic Block Store (EBS)
- Google Cloud Storage
- Amazon Mechanical Turk
- Marketplace Web Services (Python 3)
- AWS Support (Python 3)
The goal of boto is to support the full breadth and depth of Amazon Web Services. In addition, boto provides support for other public services such as Google Storage in addition to private cloud systems like Eucalyptus, OpenStack and Open Nebula.
Boto is developed mainly using Python 2.6.6 and Python 2.7.3 on Mac OSX and Ubuntu Maverick. It is known to work on other Linux distributions and on Windows. Most of Boto requires no additional libraries or packages other than those that are distributed with Python. Efforts are made to keep boto compatible with Python 2.5.x but no guarantees are made.
Install via pip:
$ pip install boto
Install from source:
$ git clone git://github.com/boto/boto.git $ cd boto $ python setup.py install
To see what has changed over time in boto, you can check out the release notes at http://docs.pythonboto.org/en/latest/#release-notes
Finding Out More About Boto
Online documentation is also available. The online documentation includes full API documentation as well as Getting Started Guides for many of the boto modules.
Boto releases can be found on the Python Cheese Shop.
Join our IRC channel #boto on FreeNode. Webchat IRC channel: http://webchat.freenode.net/?channels=boto
Join the boto-users Google Group.
Getting Started with Boto
Your credentials can be passed into the methods that create connections. Alternatively, boto will check for the existence of the following environment variables to ascertain your credentials:
AWS_ACCESS_KEY_ID - Your AWS Access Key ID
AWS_SECRET_ACCESS_KEY - Your AWS Secret Access Key
Credentials and other boto-related settings can also be stored in a boto config file. See this for details.