Using the AWS CloudFormation Stack task in Bamboo

You can use the AWS CloudFormation Stack task to create, update or delete an AWS CloudFormation stack defined by a template provided via URL or inline and specify template parameters and advanced options (see Provisioning with AWS CloudFormation for an overview of the CloudFormation resource lifecycle and provisioning workflow).

 

Configuration

To ease common scenarios, the Create action allows to Update [the] stack, if it already exists, similarly the Update action allows to Create [the] stack, if it does not already exist.

To configure an AWS CloudFormation task:

1. Navigate to the Tasks configuration tab for the job (this will be the default job if creating a new plan).

2. Click the name of an existing AWS CloudFormation task, or click Add Task and then AWS CloudFormation Task to create a new task.

3. Complete the following settings:

a. Common to all tasks

b. Actions supported by this task:

Create Stack



Create Stack



Update stack, if it already exists

Check to apply the Update action, if the stack already exists. Clear to trigger a build failure otherwise.

Don't fail for no-op update

(Conditional) Check to not fail the build, if the update does not affect any resources. Clear to trigger a build failure otherwise.

Stack Name

Specify the stack name.

Template Source

Specify the stack template source as an S3 URL or inline in JSON or YAML format. Insert fragments from the inline Examples dialog to get started.

Parameters

(Optional) Specify parameters in JSON format. Insert fragments from the inline Examples dialog to get started.

  • Reserved JSON characters in Bamboo variable content need to be escaped at runtime!

Advanced Options

 

Tags

(Optional) Tag the stack's resources.

Role ARN

(Optional) Specify the service role ARN.

Notification ARNs

(Optional) Specify the Amazon SNS topic ARN(s) for publishing stack related events (either a single ARN, or a JSON array with up to five ARNs).

Creation Timeout (minutes)

Specify how much time can pass before the stack creation is considered failed.

On failure action

Select the action that will be taken if stack creation fails.

Stack Rollback

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.

Capabilities

(Optional) Select the capabilities needed by your stack (e.g. to access IAM resources)..

  •  Both CAPABILITY_IAM and CAPABILITY_NAMED_IAM  require the AWS Security Credentials source to be either 'Inline', or 'IAM Role for EC2 (Agent)', or a shared 'Identity Federation for AWS' connector with principal type 'Assume Role'.

Stack Policy Source

(Optional) Specify which update actions users can do and which resources they can take action on. See the Stack Policy Reference and Sample Stack Policies for details.

Update Stack

 

Create stack, if it does not already exist

Check to apply the Create action, if the stack does not already exists. Clear to trigger a build failure otherwise.

Don't fail for no-op update

Check to not fail the build, if the update does not affect any resources. Clear to trigger a build failure otherwise.

Stack Name or ID

Specify the stack name or ID.

Template Source

see Create Stack above

Parameters

see Create Stack above

Advanced Options

 

Tags

see Create Stack above

Role ARN

see Create Stack above

Notification ARNs

see Create Stack above

Capabilities

see Create Stack above

Stack Policy Source

see Update Stack above

Stack Policy During Update Source

(Optional) Override which update actions users can do and which resources they can take action on. See the Stack Policy Reference and Sample Stack Policies for details.

Delete Stack

 

Stack Name or ID

see Update Stack above

Don't fail for non existing stack

Check to not fail the build, if the stack does not exist (anymore). Clear to trigger a build failure otherwise.

Validate Template(s)

The Validate action operates on a template rather than a stack. It has been included in this task for ease of use.

Stack Template Source

see Create Stack above

Create Change Set

 

Don't fail for no-op change set

Check to not fail the build, if the change set does not affect any resources. Clear to trigger a build failure otherwise.

Stack Name or ID

see Update Stack above

Change Set Name

Specify the name of the change set. The name must be unique among all change sets that are associated with the specified stack.

Change Set Description

Specify a description to help you identify this change set.

Template Source

see Create Stack above

Parameters

see Create Stack above

Change Set Type

Select the change set type: Create new stack, update existing stack, or decide at runtime based on stack existence.

Advanced Options

 

Tags

see Create Stack above

Role ARN

see Create Stack above

Notification ARNs

see Create Stack above

Capabilities

see Create Stack above

Execute Change Set

 

Don't fail for no-op change set

see Create Change Set above

Change Set Name or ARN

Specify the name or Amazon Resource Name (ARN) of the change set.

Stack Name or ID

(Conditional) Specify the stack name or ID (required if you provided a change set name instead of a change set ARN)

Delete Change Set

 

Change Set Name or ARN

see Execute Change Set above

Stack Name or ID

see Execute Change Set above

 

Variables

Create Stack

Creating common variables for 1 resources affected by task: ... bamboo.custom.aws.cfn.stack.resources: SampleStack-TAWS-IT230-CFN2-24 Creating resource variables for stack 'SampleStack-TAWS-IT230-CFN2-24': ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.StackId: arn:aws:cloudformation:us-east-1:309600995652:stack/SampleStack-TAWS-IT230-CFN2-24/d6620400-2ffc-11e5-b660-50e2415b5e18 ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.StackStatus: CREATE_COMPLETE ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.StackName: SampleStack-TAWS-IT230-CFN2-24 ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.CreationTime: 20150721T230428Z ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.LastUpdatedTime: 20150721T230500Z ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.tags: Environment;Cost-Centre ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.tags.Environment: Test ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.tags.Cost-Centre: Development ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.parameters: QueueName ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.parameters.QueueName: Bamboo-24 ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue: ResourceStatus;LogicalResourceId;PhysicalResourceId;Timestamp ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.ResourceStatus: CREATE_COMPLETE ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.LogicalResourceId: MyQueue ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.PhysicalResourceId: https://sqs.us-east-1.amazonaws.com/309600995652/Bamboo-24 ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.Timestamp: 20150721T230442Z ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources: MyQueue Stack 'SampleStack-TAWS-IT230-CFN2-24' generated 2 outputs: ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.outputs: QueueURL;QueueARN ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.outputs.QueueURL: https://sqs.us-east-1.amazonaws.com/309600995652/Bamboo-24 ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.outputs.QueueARN: arn:aws:sqs:us-east-1:309600995652:Bamboo-24 Creating common variables for first resource affected by task: Creating resource variables for stack 'SampleStack-TAWS-IT230-CFN2-24': ... bamboo.custom.aws.cfn.stack.first.StackId: arn:aws:cloudformation:us-east-1:309600995652:stack/SampleStack-TAWS-IT230-CFN2-24/d6620400-2ffc-11e5-b660-50e2415b5e18 ... bamboo.custom.aws.cfn.stack.first.StackStatus: CREATE_COMPLETE ... bamboo.custom.aws.cfn.stack.first.StackName: SampleStack-TAWS-IT230-CFN2-24 ... bamboo.custom.aws.cfn.stack.first.CreationTime: 20150721T230428Z ... bamboo.custom.aws.cfn.stack.first.LastUpdatedTime: 20150721T230500Z ... bamboo.custom.aws.cfn.stack.first.tags: Environment;Cost-Centre ... bamboo.custom.aws.cfn.stack.first.tags.Environment: Test ... bamboo.custom.aws.cfn.stack.first.tags.Cost-Centre: Development ... bamboo.custom.aws.cfn.stack.first.parameters: QueueName ... bamboo.custom.aws.cfn.stack.first.parameters.QueueName: Bamboo-24 ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue: ResourceStatus;LogicalResourceId;PhysicalResourceId;Timestamp ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.ResourceStatus: CREATE_COMPLETE ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.LogicalResourceId: MyQueue ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.PhysicalResourceId: https://sqs.us-east-1.amazonaws.com/309600995652/Bamboo-24 ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.Timestamp: 20150721T230442Z ... bamboo.custom.aws.cfn.stack.first.resources: MyQueue Stack 'SampleStack-TAWS-IT230-CFN2-24' generated 2 outputs: ... bamboo.custom.aws.cfn.stack.first.outputs: QueueURL;QueueARN ... bamboo.custom.aws.cfn.stack.first.outputs.QueueURL: https://sqs.us-east-1.amazonaws.com/309600995652/Bamboo-24 ... bamboo.custom.aws.cfn.stack.first.outputs.QueueARN: arn:aws:sqs:us-east-1:309600995652:Bamboo-24

Update Stack

Creating common variables for 1 resources affected by task: ... bamboo.custom.aws.cfn.stack.resources: SampleStack-TAWS-IT230-CFN2-24 Creating resource variables for stack 'SampleStack-TAWS-IT230-CFN2-24': ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.StackId: arn:aws:cloudformation:us-east-1:309600995652:stack/SampleStack-TAWS-IT230-CFN2-24/d6620400-2ffc-11e5-b660-50e2415b5e18 ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.StackStatus: UPDATE_COMPLETE ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.StackName: SampleStack-TAWS-IT230-CFN2-24 ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.CreationTime: 20150721T230428Z ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.LastUpdatedTime: 20150721T230501Z ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.tags: Environment;Cost-Centre ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.tags.Environment: Test ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.tags.Cost-Centre: Development ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.parameters: QueueName ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.parameters.QueueName: Bamboo-24-updated ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue: ResourceStatus;LogicalResourceId;PhysicalResourceId;Timestamp ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.ResourceStatus: UPDATE_COMPLETE ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.LogicalResourceId: MyQueue ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.PhysicalResourceId: https://sqs.us-east-1.amazonaws.com/309600995652/Bamboo-24-updated ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.Timestamp: 20150721T230511Z ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources: MyQueue Stack 'SampleStack-TAWS-IT230-CFN2-24' generated 2 outputs: ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.outputs: QueueURL;QueueARN ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.outputs.QueueURL: https://sqs.us-east-1.amazonaws.com/309600995652/Bamboo-24-updated ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.outputs.QueueARN: arn:aws:sqs:us-east-1:309600995652:Bamboo-24-updated Creating common variables for first resource affected by task: Creating resource variables for stack 'SampleStack-TAWS-IT230-CFN2-24': ... bamboo.custom.aws.cfn.stack.first.StackId: arn:aws:cloudformation:us-east-1:309600995652:stack/SampleStack-TAWS-IT230-CFN2-24/d6620400-2ffc-11e5-b660-50e2415b5e18 ... bamboo.custom.aws.cfn.stack.first.StackStatus: UPDATE_COMPLETE ... bamboo.custom.aws.cfn.stack.first.StackName: SampleStack-TAWS-IT230-CFN2-24 ... bamboo.custom.aws.cfn.stack.first.CreationTime: 20150721T230428Z ... bamboo.custom.aws.cfn.stack.first.LastUpdatedTime: 20150721T230501Z ... bamboo.custom.aws.cfn.stack.first.tags: Environment;Cost-Centre ... bamboo.custom.aws.cfn.stack.first.tags.Environment: Test ... bamboo.custom.aws.cfn.stack.first.tags.Cost-Centre: Development ... bamboo.custom.aws.cfn.stack.first.parameters: QueueName ... bamboo.custom.aws.cfn.stack.first.parameters.QueueName: Bamboo-24-updated ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue: ResourceStatus;LogicalResourceId;PhysicalResourceId;Timestamp ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.ResourceStatus: UPDATE_COMPLETE ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.LogicalResourceId: MyQueue ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.PhysicalResourceId: https://sqs.us-east-1.amazonaws.com/309600995652/Bamboo-24-updated ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.Timestamp: 20150721T230511Z ... bamboo.custom.aws.cfn.stack.first.resources: MyQueue Stack 'SampleStack-TAWS-IT230-CFN2-24' generated 2 outputs: ... bamboo.custom.aws.cfn.stack.first.outputs: QueueURL;QueueARN ... bamboo.custom.aws.cfn.stack.first.outputs.QueueURL: https://sqs.us-east-1.amazonaws.com/309600995652/Bamboo-24-updated ... bamboo.custom.aws.cfn.stack.first.outputs.QueueARN: arn:aws:sqs:us-east-1:309600995652:Bamboo-24-updated

Delete Stack

Creating common variables for 1 resources affected by task: ... bamboo.custom.aws.cfn.stack.resources: SampleStack-TAWS-IT230-CFN2-24 Creating resource variables for stack 'SampleStack-TAWS-IT230-CFN2-24': ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.StackId: arn:aws:cloudformation:us-east-1:309600995652:stack/SampleStack-TAWS-IT230-CFN2-24/d6620400-2ffc-11e5-b660-50e2415b5e18 ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.StackStatus: DELETE_COMPLETE ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.StackName: SampleStack-TAWS-IT230-CFN2-24 ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.CreationTime: 20150721T230428Z ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.LastUpdatedTime: 20150721T230501Z ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.tags: Environment;Cost-Centre ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.tags.Environment: Test ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.tags.Cost-Centre: Development ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.parameters: QueueName ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.parameters.QueueName: Bamboo-24-updated ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue:ResourceStatus;LogicalResourceId;PhysicalResourceId;Timestamp ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.ResourceStatus: DELETE_COMPLETE ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.LogicalResourceId: MyQueue ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.PhysicalResourceId: https://sqs.us-east-1.amazonaws.com/309600995652/Bamboo-24-updated ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources.MyQueue.Timestamp: 20150721T230557Z ... bamboo.custom.aws.cfn.stack.resources.SampleStack-TAWS-IT230-CFN2-24.resources: MyQueue Creating common variables for first resource affected by task: Creating resource variables for stack 'SampleStack-TAWS-IT230-CFN2-24': ... bamboo.custom.aws.cfn.stack.first.StackId: arn:aws:cloudformation:us-east-1:309600995652:stack/SampleStack-TAWS-IT230-CFN2-24/d6620400-2ffc-11e5-b660-50e2415b5e18 ... bamboo.custom.aws.cfn.stack.first.StackStatus: DELETE_COMPLETE ... bamboo.custom.aws.cfn.stack.first.StackName: SampleStack-TAWS-IT230-CFN2-24 ... bamboo.custom.aws.cfn.stack.first.CreationTime: 20150721T230428Z ... bamboo.custom.aws.cfn.stack.first.LastUpdatedTime: 20150721T230501Z ... bamboo.custom.aws.cfn.stack.first.tags: Environment;Cost-Centre ... bamboo.custom.aws.cfn.stack.first.tags.Environment: Test ... bamboo.custom.aws.cfn.stack.first.tags.Cost-Centre: Development ... bamboo.custom.aws.cfn.stack.first.parameters: QueueName ... bamboo.custom.aws.cfn.stack.first.parameters.QueueName: Bamboo-24-updated ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue: ResourceStatus;LogicalResourceId;PhysicalResourceId;Timestamp ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.ResourceStatus: DELETE_COMPLETE ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.LogicalResourceId: MyQueue ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.PhysicalResourceId: https://sqs.us-east-1.amazonaws.com/309600995652/Bamboo-24-updated ... bamboo.custom.aws.cfn.stack.first.resources.MyQueue.Timestamp: 20150721T230557Z ... bamboo.custom.aws.cfn.stack.first.resources: MyQueue

Validate Template(s)

N/A

Create Change Set

Execute Change Set

Delete Change Set

N/A

Legacy Variable Naming

CloudFormation Variables had been named inconsistently in previous versions of this app - the following names are deprecated, but remain available for compatibility reasons for the time being:

  • 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

    • variables with legacy naming without prefix remain available for compatibility (e.g. bamboo.StringWithRegex=Hello)

How-to Articles

Frequently Asked Questions (FAQ)

Atlassian®, Atlassian Bamboo®, Bitbucket®, Atlassian Crowd®, Confluence®, Jira®, Jira Service Management™, Opsgenie®, and Statuspage™ are registered trademarks of Atlassian.
Amazon Web Services™, AWS™ and the “Powered by Amazon Web Services” logo are trademarks of Amazon.com, Inc. or its affiliates in the United States and/or other countries.

Utoolity® is a registered trademark of Utoolity GmbH.
© 2024 Utoolity GmbH. All rights reserved.