Section | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Variables are substituted in all Task task configuration text fields (e.g. Stack Name, Template URL, Instance ID, Volume ID etc.).
...
Variables are defined by most Tasks tasks for reuse in subsequent Taskstasks, see Bamboo Variable Substitution/Definition for details, and each task's documentation for example log outputs.
...
- variables have a dedicated prefix like
bamboo.custom.aws.*
, with*
being a task specific prefix, e.g.bamboo.custom.aws.cloudformation.stack
- variables 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.instance.resources}
with valuesi-a316b842;i-b4210842 (line 2)
you can refer to these variables from subsequent tasks via something like
${custom.aws.ec2.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-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-a316b842.tags: Name ... custom.aws.ec2.instance.resources.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.first.InstanceId: i-a316b842 ... custom.aws.ec2.instance.first.State: running ... custom.aws.ec2.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.tags.Name: taws-it-2.0.0
variables are also available as environment variables in the Script Task 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
...
Custom Variables
Some tasks also support the substitution of custom variables to ease composing unique names when operating multiple AWS resources at once, for example creating EBS snapshots from a set of EBS volumes, or EC2 images from a set of EC2 instances - refer to Custom Variables for details.