Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Updated to release 2.8.

...

width64%

 

...

Tasks for your DevOps workflows - provision and operate Amazon Web Services resources from Bamboo build and deployment projects for development, testing and disaster recovery scenarios

...

:

Image Added

 

...

 

...

 

Panel
bgColor#eeeeee

On this page:

Table of Contents

Available Tasks

...

AWS CloudFormation

...

Panel

AWS CloudFormation Stack

...

AWS CloudFormation StackImage Added

Create, update or delete

...

CloudFormation

...

stacks defined by a template provided via URL or inline and specify template parameters and advanced options

...

Image Removed

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).

Image Removed

Amazon EC2 Image

...

.

See Using the AWS CloudFormation Stack task in Bamboo for details.

AWS CodeDeploy

Info
Deploying to AWS CodeDeploy provides an overview for continuous delivery/deployment workflows based on the following tasks:
Panel

AWS CodeDeploy Application

Image Added

Create, update or delete CodeDeploy applications on demand.

See Using the AWS CodeDeploy Application task in Bamboo for details.

Panel

AWS CodeDeploy Deployment GroupImage Added

Create, update or delete CodeDeploy deployment groups on demand.

Panel

AWS CodeDeploy DeploymentImage Added

Create, update or delete CodeDeploy deployments on demand.

AWS Elastic Beanstalk

Info
Deploying to AWS Elastic Beanstalk provides an overview for continuous delivery/deployment workflows based on the following tasks:
Panel

AWS Elastic Beanstalk Application

Image Added

Create, update or delete Elastic Beanstalk applications on demand.

See Using the AWS Elastic Beanstalk Application task in Bamboo for details.

Panel

AWS Elastic Beanstalk Application Version

Image Added

Create, update or delete Elastic Beanstalk application versions on demand.

Panel

AWS Elastic Beanstalk Environment

Image Added

Create, update, rebuild, restart, swap or terminate Elastic Beanstalk environments on demand.

AWS Lambda

Info
Deploying to AWS Lambda provides an overview for continuous delivery/deployment workflows based on the following tasks:
Panel

AWS Lambda Function

Image Added

Create, update, delete, invoke or entitle Lambda functions on demand.

See Using the AWS Lambda Function task in Bamboo for details.

Panel

AWS Lambda Event Source Mapping

Image Added

Create, update or delete Elastic Beanstalk application versions on demand.

AWS Security Token Service (STS)

Panel

AWS Credentials Variables

Image Added

Provide temporary AWS Security Credentials as Bamboo variables for use in tasks and tools not integrated with Identity Federation for AWS, for example the AWS Command Line Interface (AWS CLI).

Amazon EC2

Panel

Amazon EBS Snapshot

Amazon EBS SnapshotImage Added

Create, delete or backup snapshots of Elastic Block Store volumes; in particular, the Task provides backup management with retention handling and backup set correlation.

Image Removed

...

task in Bamboo for details.

Panel

Amazon EC2 Image

Amazon EC2 ImageImage Added

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.

See Using the Amazon EC2 Image task in Bamboo for details.

Panel

Amazon EC2 Instance

Amazon EC2 InstanceImage Added

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).

See Using the Amazon EC2 Instance task in Bamboo for details.

...

Amazon EC2 Container Service (ECS)

Info
Deploying to Amazon ECS provides an overview for continuous delivery/deployment workflows based on the following tasks:
Panel

Amazon ECS Cluster

Image AddedCreate or delete ECS clusters.

See Using the Amazon ECS Cluster task in Bamboo for details.

Panel

Amazon ECS Service

Image Added

Create, update or delete ECS services.

See Using the Amazon ECS Service task in Bamboo for details.

Panel

Amazon ECS Task

Image Added

Run, start or stop ECS task.

See Using the Amazon ECS Task task in Bamboo for details.

Panel

Amazon ECS Task Definition

Image Added

Register ECS task definitions.

See Using the Amazon ECS Task Definition task in Bamboo for details.

Amazon S3

Panel

Amazon S3 Object

...

Amazon S3 ObjectImage Added

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).

...

See Using the Amazon S3 Object task in Bamboo for details.

Bamboo Variable Substitution/Definition

Info
To empower advanced build and automation scenarios, it his highly recommended to become acquainted with Using Global, Plan or Build-specific Variables. .

All Tasks support Bamboo variables, both substituting them within parameters for AWS resource management and defining them from created AWS resources.

Image Removed

Variable Substitution

Variables are substituted in all Task configuration text fields (e.g. Stack Name, Template URL, Instance ID, Volume ID etc.).

Please note the following feature:

  • if the variable key contains the phrase "password", the value will be masked with "********" in the build logs; e.g. if the key is "password", "awsAccessKeyPassword" or "awsSecretKeyPassword" the build log will show the substituted value as "********"

Variable Definition

Variables are defined by all Tasks for reuse in subsequent Tasks as follows:

  • variables have a dedicated prefix like bamboo.custom.aws.*, with * being a task specific prefix, e.g. bamboo.custom.aws.cfn.stack
  • variables refering to a collection of resources provide their ids in a semicolon separated list (i.e. the same format available on input), e.g. ${bamboo.custom.aws.ec2.image.resources} with values ami-985b21f1;ami-9a5b21f3
  • you can refer to these variables from subsequent tasks via something like ${bamboo.custom.aws.cfn.stack.sampleStackOutputKey}
  • these variables are also available as environment variables in the Script Task for example, albeit named slightly different, e.g. $bamboo_custom_aws_cfn_stack_StringWithRegex (Unix) or %bamboo_custom_aws_cfn_stack_StringWithRegex% (Windows)

Please note the following constraints:

  • variables are only reusable in subsequent tasks and not in other jobs/stages due to the implied concurrency, see the following discussion and workaround

Available variables per Task are as follows:

  • AWS CloudFormation Stack
    • the collection of affected stack resources, e.g. bamboo.custom.aws.cfn.stack.resources=i-3280997f;vol-e1debbcd;test-stack-SecurityGroup-KZWPADIUPCL6
    • the status of each affected stack resource, e.g. bamboo.custom.aws.cfn.stack.i-3280997f=CREATE_COMPLETE
    • the collection of generated stack outputs, e.g. bamboo.custom.aws.cfn.stack.outputs=sampleStackOutputKey;StringWithRegex;...
    • the value of each generated stack output, e.g. bamboo.custom.aws.cfn.stack.StringWithRegex=Hello
      • Note: The variables with legacy naming without prefix remain available for compatibility (e.g. bamboo.StringWithRegex=Hello)
  • AWS EC2 Instance
    • the collection of affected instances, e.g. bamboo.custom.aws.ec2.instance.resources=i-fa7b4596;i-080eec64
    • the status of each affected instance, e.g. bamboo.custom.aws.ec2.instance.i-fa7b4596=started
  • AWS EC2 Image
    • the collection of affected images, e.g. bamboo.custom.aws.ec2.image.resources=ami-985b21f1;ami-9a5b21f3
    • the status of each affected instance, e.g. bamboo.custom.aws.ec2.image.ami-985b21f1=available
  • AWS EBS Snapshots
    • the collection of affected snapshots, e.g. bamboo.custom.aws.ec2.snapshots.resources=snap-f4dc35a1
    • the status of each affected snapshots, e.g. bamboo.custom.aws.ec2.snapshots.snap-f4dc35a1=completed

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 and awsSecretKeyPassword given this example) with the actual credentials, which will then be substituted on task execution accordingly

See Bamboo Variable Substitution/Definition for details.

AWS Configuration

AWS Security Credentials

See  AWS Security Credentials for details.

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)

...

.

...

 

...