Tasks for AWS adds several Amazon Web Services (AWS) related Tasks to deploy and operate AWS resources on demand. Furthermore, you can enable various development, testing and disaster recovery scenarios by operating backup schedules for EBS volumes and EC2 instances:
On this page:
AWS CloudFormation Stack
This Task enables you to create, update or delete a CloudFormation stack defined by a template provided via URL or inline and specify template parameters and advanced options.
Amazon EC2 Instance
This Task enables you to start, stop or reboot provisioned Elastic Compute Cloud instances on demand, e.g. only when needed by the build itself (development) or at specific times of the day (operations).
Amazon EC2 Image
This Task enables you to create, delete or backup images of EBS backed Elastic Compute Cloud instances; in particular, the Task provides backup management with retention handling and backup set correlation.
Amazon EBS Snapshot
This Task enables you to create, delete or backup snapshots of Elastic Block Store volumes; in particular, the Task provides backup management with retention handling and backup set correlation.
Amazon S3 Object
This Task enables you to upload, download, delete or copy Structured Storage Service objects (files); in particular you can upload your Bamboo job's build artifacts or select local files and directories (optionally via Ant Patterns) - when addressing S3 objects (files), it matches those by key prefix, which allows to operate on multiple objects at once (virtual directories resp. folder hierarchies).
Bamboo Variable Substitution/Definition
See Bamboo Variable Substitution/Definition for details.
AWS Credentials
The AWS credentials need to be specified for each task currently, which can be cumbersome quickly. Pending a more generic solution, it is already possible to ease this a bit via variable substitution as follows:
- configure Access Key and Secret Key as e.g.
${bamboo.awsAccessKeyPassword}
and${bamboo.awsSecretKeyPassword}
- define plan and/or global variables for the configured variable names (i.e.
awsAccessKeyPassword
andawsSecretKeyPassword
given this example) with the actual credentials, which will then be substituted on task execution accordingly
AWS Client Configuration
See AWS Client Configuration for details.
Limitations
You should be aware of the following limitations regarding AWS API coverage and integration:
AWS CloudFormation
- We have focused on API coverage so far and usability is not up to speed yet accordingly, there is obviously room for improvements, e.g.:
- Some configuration screen polish should get us a long way already.
- Fetching existing AWS resources for selection during configuration would avoid manual copying of information.
- Offering several samples/defaults to ease getting started.
- ...
- Stack rollback is currently handled as follows, hopefully covering the majority of use cases (please let us know otherwise):
- A stack rolled back successfully by CloudFormation is treated as a failed build by Bamboo.
- A stack not rolled back due to rollback being disabled explicitly is still treated as a failed build by Bamboo.
Amazon Elastic Compute Cloud (EC2)
- We currently consider instance lifecycle goals (i.e. create/terminate) to be sufficiently addressed by the CloudFormation Task, hopefully covering the majority of use cases (please let us know otherwise).