As of Tasks for AWS 2.14, you can provide JSON or YAML based task parameters as code by referencing configuration files via URLs. You can reference a configuration file from the build working directory via the file:// protocol, or from a publicly accessible web location via the http:// and https:// protocols (this also allows to reference a configuration file from a private S3 bucket via a pre-signed URL).

Limitations

Only a single file can be referenced via URL, combining multiple URLs into one parameter field is not possible. This is not yet covered by the task validation though, we are tracking a resp. improvement as https://utoolity.atlassian.net/browse/UAA-414. The issue also outlines a potential workaround:

“If you require composing configuration files at build time, you can use a Bamboo Script task to combine the various references with applicable tools like jq and yq before reusing the resulting file in a task configuration.”

Supported URL protocols

The following URL protocols are currently supported:

  1. file:// – you can reference a configuration file from the build working directory. The file:// protocol only supports absolute paths, which requires using the build-specific ${bamboo.build.working.directory} Bamboo variable to craft the URL, for example:
    file://${bamboo.build.working.directory}/cloudformation.template

  2. http:// and https:// – you can reference a configuration file from a publicly accessible HTTP/HTTPS URL, for example:

Contextual entity variables

Refer to Injecting contextual entity variables into task configurations for details.