Section |
---|
Column |
---|
| All Tasks support Bamboo variables, both substituting them within parameters for AWS resource management and defining them from created AWS resources. All Tasks support Bamboo variables, both substituting them within parameters for AWS resource management and defining them from created AWS resources.
|
|
...
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
Note |
---|
title | Sensitive Data Masking |
---|
|
Tasks may emit sensitive data like credentials which are not supposed to surface in build logs - this can be achieved as follows: - if the variable key contains the phrase
"password" , the value will be masked with "********" in the build logs;
|
...
- for example, if the key is
"password" , "awsAccessKeyPassword" or "awsSecretKeyPassword" , the build log will show the substituted value as "********"
|
Variable Definition
Variables are defined by all most Tasks for reuse in subsequent Tasks as follows, see Bamboo Variable Substitution/Definition for details, and each task's documentation for example log outputs.
- A task's generated variables might get amended with respective AWS API additions over time - a live build log will always provide the most current variable shape accordingly.
Example
This example illustrates the variable generation pattern:
- variables have a dedicated prefix like
bamboo.custom.aws.*
, with *
being a task specific prefix, e.g. bamboo.custom.aws.cfncloudformation.stack
- variables refering referring 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.imageinstance.resources}
with values amii-985b21f1a316b842;ami-9a5b21f3i-b4210842 (line 2)
you can refer to these variables from subsequent tasks via something like ${
bamboo.custom.aws.ec2.
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)
Info |
---|
title | 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 Task Variables
The following variables are available in the various tasks:
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.
instance.resources.i-a316b842.PrivateDnsName}
(line 6)
- however, given script access to such a named resource is difficult, there is a shortcut to ease reusing the first (and often only) affected resource via something like ${custom.aws.ec2.instance.first.i-a316b842.PrivateDnsName} (line 19)
:
Code Block |
---|
language | text |
---|
linenumbers | true |
---|
|
Creating common variables for 2 resources affected by task:
... custom.aws.ec2.instance.resources: i-a316b842;i-b4210842
Creating resource variables for instance 'i-a316b842':
... custom.aws.ec2.instance.resources.i-a316b842.InstanceId: i-a316b842
... custom.aws.ec2.instance.resources.i-a316b842.State: running
... custom.aws.ec2.instance.resources.i-a316b842.PrivateDnsName: ip-10-0-0-241.ec2.internal
... custom.aws.ec2.instance.resources.i-a316b842.PrivateIpAddress: 10.0.0.241
... custom.aws.ec2.instance.resources |
=i-fa7b4596;i-080eec64the status of each affected instance, e.g. bamboo..i-a316b842.PublicDnsName:
... custom.aws.ec2.instance.resources.i-a316b842.PublicIpAddress: null
... custom.aws.ec2.instance.resources.i-a316b842.LaunchTime: 20150716T080402Z
... custom.aws.ec2.instance.resources.i- |
fa7b4596=started
AWS EC2 Image
- the collection of affected images, e.g. bamboo.
a316b842.tags: Name
... custom.aws.ec2. |
image=ami-985b21f1;ami-9a5b21f3the status of each affected instance, e.g. bamboo..i-a316b842.tags.Name: taws-it-2.0.0
Creating resource variables for instance 'i-b4210842':
... <skipped>
Creating common variables for first resource affected by task:
Creating resource variables for instance 'i-a316b842':
... custom.aws.ec2.instance. |
image.ami-985b21f1=available
AWS EBS Snapshots
- the collection of affected snapshots, e.g. bamboo.
first.InstanceId: i-a316b842
... custom.aws.ec2.instance.first.State: running
... custom.aws.ec2. |
snapshots.resources=snap-f4dc35a1the status of each affected snapshots, e.g. bamboo.instance.first.PrivateDnsName: ip-10-0-0-241.ec2.internal
... custom.aws.ec2.instance.first.PrivateIpAddress: 10.0.0.241
... custom.aws.ec2.instance.first.PublicDnsName:
... custom.aws.ec2.instance.first.PublicIpAddress: null
... custom.aws.ec2.instance.first.LaunchTime: 20150716T080402Z
... custom.aws.ec2.instance.first.tags: Name
... custom.aws.ec2.instance.first. |
snapshots.snap-f4dc35a1=completed 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)
variables are locally scoped and thus only reusable in subsequent tasks and not in other jobs/stages due to the implied concurrency, see the following discussion and workaround