The following macros are not currently supported in the header:
  • unmigrated-wiki-markup

Documentation for Tasks for AWS 2.11 – other releases are available in the Tasks for AWS Documentation Directory.
View

Unknown macro: {spacejump}

or visit the current documentation home.

Using the AWS Lambda Function task in Bamboo

You can use the AWS Lambda Function task to create, update, delete, invoke or entitle an AWS Lambda function (see Deploying to AWS Lambda for an overview of the Lambda component lifecycle and deployment workflow).

Configuration

To configure an AWS Lambda Function 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 Lambda Function task, or click Add Task and then AWS Lambda Function to create a new task.
  3. Complete the following settings:

    1. Common to all tasks

       Click here to expand...
      Task Description (Optional) Identify the purpose of the task.
      Disable this task

      Check, or clear, to selectively run this task.

      Action

      Each task supports one or more actions depending on the target AWS resource. Select the desired action and configure the action specific parameters below.

      RegionSelect the desired AWS Region. Alternatively, select [Use region variable ...] to supply the region dynamically via Bamboo variables (needs to be a region code such as ap-southeast-2) - refer to How to parametrize the AWS region via a Bamboo variable for details.
      ...Configure task/action specific parameters, see below ...
      AWS Security Credentials
      SourceSelect the source for the required AWS Security Credentials - can be either Inline, an IAM Role for EC2 or a shared Identity Federation for AWS Connector.
      Connector(Conditional) Select the shared Identity Federation for AWS Connector. Alternatively, select [Use connector variable ...] to supply the connector dynamically via Bamboo variables (needs to be a connector id such as f24e81bc-7aff-42db-86a2-7cf82e24d871) - refer to How to parametrize the AWS connector via a Bamboo variable for details.

    • Actions supported by this task:

      Create Function


      Publish versionCheck to publish a new function version as an atomic operation. Clear to override the $LATEST version.
      Function Name

      Specify the function name.

      Description

      (Optional) Specify a function description.

      Runtime

      Select the runtime environment for the function.

      S3 Bucket
      Specify the name of the S3 bucket where the deployment package is stored.
      S3 KeySpecify the deployment package's S3 object key.
      • (info) Maximum compressed size allowed is 50 MB.
      • (info) Maximum uncompressed size allowed is 250 MB.
      S3 Object Version(Optional) Specify the deployment package's S3 object version.
      Handler Specify the function within the code that Lambda calls to begin execution.
      Role ARN
      Specify the Amazon Resource Name (ARN) of the IAM role that Lambda assumes when it executes the function to access any other Amazon Web Services (AWS) resources.
      Memory Size (MB)

      Select the amount of memory, in MB, that Lambda allocates to the function.

      Correlation between memory allocation and amount of CPU

      Lambda uses this memory size to infer the amount of CPU and memory allocated to the function. Your use-case determines your CPU and memory requirements. For example, a database operation might need less memory compared to an image processing function.
      Timeout (s)
      Select the execution time, in seconds, at which Lambda should terminate the function.
      Advanced Options
      Environment Specify an environment configuration in JSON format.
      KMS Key ARN 

      Specify the KMS Key ARN used to encrypt your function's environment variables. If not provided, AWS Lambda will use a default service key.

      • Refer to Environment Variable Encryption for details.

        Custom Encryption for Storing Sensitive Information

        As per sub section Storing Sensitive Information, this default encryption is not necessarily sufficient for all use cases, so if you need to store sensitive information in an environment variable, we strongly suggest you encrypt that information before deploying your Lambda function.

      VPC Configuration Specify the VPC configuration in JSON format.
      Dead Letter ConfigurationSpecify a dead letter configuration in JSON format.

      Update Function Code


      Publish versionsee Create Function above
      Function Name

      see Create Function above

      S3 Bucket
      see Create Function above
      S3 Keysee Create Function above
      S3 Object Versionsee Create Function above

      Update Function Configuration


      Function Name

      see Create Function above

      Descriptionsee Create Function above
      Handler see Create Function above
      Rolesee Create Function above
      Memory (MB)
      see Create Function above
      Timeout (s)
      see Create Function above
      Advanced Options
      Environment
      see Create Function above
      KMS Key ARN see Create Function above
      VPC Configuration see Create Function above
      Dead Letter Configuration see Create Function above

      Delete Function


      Don't fail for non existing functionCheck to not fail the build, if the function does not exist (anymore). Clear to trigger a build failure otherwise.
      Function Name see Create Function above

      Publish Version

      You can also publish a version directly with the create/update function actions.
      Function Name

      see Create Function above

      Description

      see Create Function above

      Code SHA256(Optional) Specify the SHA256 hash of the deployment package to publish.

      Create Alias


      Function Name

      see Create Function above

      Function Version

      Specify the function version to create/update the alias for.

      Alias Name

      Specify the alias name.

      Description

      see Create Function above

      Update Alias


      Function Name

      see Create Function above

      Function Version

      see Update Function Alias above

      Alias Name

      see Update Function Alias above

      Description

      see Create Function above

      Delete Alias


      Function Name

      see Create Function above

      Alias Name

      see Update Function Alias above

      Add Permission


      Function Name

      see Create Function above

      Statement ID
      Specify a unique statement identifier.
      Lambda ActionSpecify the Lambda action to allow in this statement.
      Principal  Specify the principal who is granted this permission.
      Source Account(Optional) Specify the AWS account ID (without a hyphen) of the source owner.
      Source ARN

      (Optional) Specify the S3 bucket's Amazon Resource Name (ARN) to ensure that only events generated from the specified bucket can invoke the function.

      Important

      If you add a permission for the Amazon S3 principal without providing the source ARN, any AWS account that creates a mapping to your function ARN can send events to invoke your Lambda function from Amazon S3.

      Remove Permission


      Function Name

      see Create Function above

      Statement ID
      see Add Permission above

      Invoke Function


      Function Name see Create Function above
      Payload
      (Optional) Specify a JSON payload to provide to the Lambda function as input.
      Client Context(Optional) Specify client-specific JSON information to pass to the Lambda function in the context variable.
      Invocation Type

      Select the function invocation type.

      By default, the Invoke API assumes "RequestResponse" invocation type. You can optionally request asynchronous execution by specifying "Event" as the InvocationType. You can also use this parameter to request AWS Lambda to not execute the function but do some verification, such as if the caller is authorized to invoke the function and if the inputs are valid

      Log Type(Optional) Select "Tail" to return the last 4 KB of log data produced by your Lambda function.
      Don't fail on handled function errors
      Check to not fail the build, if an error has been handled by the function. Clear to trigger a build failure otherwise.

Variables

All tasks support Bamboo Variable Substitution/Definition - this task's actions generate variables as follows:

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

Create Function

Creating common variables for 1 resources affected by task:
... bamboo.custom.aws.lambda.function.resources: arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot
Creating resource variables for function 'arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot':
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot.FunctionArn: arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot.FunctionName: TAWS-IT280-LF1-21-ubot
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot.Description:
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot.Runtime: nodejs
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot.Handler: index.handler
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot.Role: arn:aws:iam::288727192237:role/aws-lambda-basic-execution
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot.MemorySize: 128
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot.Timeout: 2
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot.CodeSize: 499
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot.LastModified: 2015-08-25T17:07:47.960+0000
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:us-east-1:288727192237:function:TAWS-IT280-LF2-21-ubot.CodeSha256: uZHeTlbOPWHDSnEpKqfPlMvJJL8LLBchpZOFaAohZhg=
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:us-east-1:288727192237:function:TAWS-IT280-LF2-21-ubot.Version: 1
Creating common variables for first resource affected by task:
Creating resource variables for function 'arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot':
... bamboo.custom.aws.lambda.function.first.FunctionArn: arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot
... bamboo.custom.aws.lambda.function.first.FunctionName: TAWS-IT280-LF1-21-ubot
... bamboo.custom.aws.lambda.function.first.Description:
... bamboo.custom.aws.lambda.function.first.Runtime: nodejs
... bamboo.custom.aws.lambda.function.first.Handler: index.handler
... bamboo.custom.aws.lambda.function.first.Role: arn:aws:iam::288727192237:role/aws-lambda-basic-execution
... bamboo.custom.aws.lambda.function.first.MemorySize: 128
... bamboo.custom.aws.lambda.function.first.Timeout: 2
... bamboo.custom.aws.lambda.function.first.CodeSize: 499
... bamboo.custom.aws.lambda.function.first.LastModified: 2015-08-25T17:07:47.960+0000
... bamboo.custom.aws.lambda.function.first.CodeSha256: uZHeTlbOPWHDSnEpKqfPlMvJJL8LLBchpZOFaAohZhg=
... bamboo.custom.aws.lambda.function.first.Version: 1

Update Function Code

See Create Function above.

Update Function Configuration

See Create Function above.

Delete Function

N/A

Publish Version

See Create Function above.

Create Alias

Creating common variables for 1 resources affected by task:
... bamboo.custom.aws.lambda.function.resources: arn:aws:lambda:us-east-1:288727192237:function:TAWS-IT280-LF2-21-ubot:alias-one
Creating resource variables for alias 'arn:aws:lambda:us-east-1:288727192237:function:TAWS-IT280-LF2-31-ubot:alias-one':
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:us-east-1:288727192237:function:TAWS-IT280-LF2-21-ubot:alias-one.AliasArn: arn:aws:lambda:us-east-1:288727192237:function:TAWS-IT280-LF2-31-ubot:alias-one
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:us-east-1:288727192237:function:TAWS-IT280-LF2-21-ubot:alias-one.Description: description one
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:us-east-1:288727192237:function:TAWS-IT280-LF2-21-ubot:alias-one.FunctionVersion: 1
... bamboo.custom.aws.lambda.function.resources.arn:aws:lambda:us-east-1:288727192237:function:TAWS-IT280-LF2-21-ubot:alias-one.Name: alias-one
Creating common variables for first resource affected by task:
Creating resource variables for alias 'arn:aws:lambda:us-east-1:288727192237:function:TAWS-IT280-LF2-31-ubot:alias-one':
... bamboo.custom.aws.lambda.function.first.AliasArn: arn:aws:lambda:us-east-1:288727192237:function:TAWS-IT280-LF2-21-ubot:alias-one
... bamboo.custom.aws.lambda.function.first.Description: description one
... bamboo.custom.aws.lambda.function.first.FunctionVersion: 1
... bamboo.custom.aws.lambda.function.first.Name: alias-one

Update Alias

See Create Alias above.

Delete Alias

N/A

Add Permission

Creating add permission result variables for function 'TAWS-IT280-LF1-21-ubot':
... bamboo.custom.aws.lambda.function.policy.Statement: {"Condition":{"ArnLike":{"AWS:SourceArn":"arn:aws:s3:::taws-it280-21-ubot"}},"Action":["lambda:InvokeFunction"],"Resource":"arn:aws:lambda:eu-west-1:288727192237:function:TAWS-IT280-LF1-21-ubot","Effect":"Allow","Principal":{"Service":"s3.amazonaws.com"},"Sid":"TAWS-IT280-LF1-21"}

Remove Permission

N/A

Invoke Function

Creating invocation result variables for function 'TAWS-IT280-LF1-21-ubot':
... bamboo.custom.aws.lambda.function.result.FunctionError: null
... bamboo.custom.aws.lambda.function.result.LogResult: null
... bamboo.custom.aws.lambda.function.result.Payload:
... bamboo.	custom.aws.lambda.function.result.StatusCode: 200

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.