Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

Use the Invoke Lambda Function action to process Bamboo tasks and notifications, Jira workflow transitions and Jira Service Management automation rule executions with AWS Lambda, which lets you run code without provisioning or managing servers:

You pay only for the compute time you consume - there is no charge when your code is not running. With Lambda, you can run code for virtually any type of application or backend service - all with zero administration. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to automatically trigger from other AWS services or call it directly from any web or mobile app.

Integrations

You can use the Invoke Lambda Function action with the following integrations:

Requirements

The Invoke Lambda Function action requires sufficient IAM permissions - an adequate IAM policy similar to the one provisioned by the Automation with AWS (Core) CloudFormation template might look as follows:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "lambda:GetAlias",
                "lambda:GetFunctionConfiguration",
                "lambda:GetPolicy",
                "lambda:InvokeFunction",
                "lambda:ListAliases",
                "lambda:ListFunctions",
                "lambda:ListVersionsByFunction"
            ],
            "Resource": "*",
            "Effect": "Allow",
            "Sid": "LambdaInvokeFunctionAndDiscoverFunctions"
        }
    ]
}

(lightbulb) Refer to Overview of Managing Access Permissions to Your AWS Lambda Resources for details on how to create more granular/secure policies.

Configuration

To configure an Invoke Lambda Function action:

  1. Complete the following settings:

    Parameters

    Specify the action parameters according to the following skeleton in JSON format – refer to lambda . invoke for details:

    You typically only specify the FunctionName and Payload parameters, and not all parameters documented for lambda . invoke are applicable here (invocation-type and log-type are not meaningful, and outfile is not supported).

    You can inject contextual variables into the remote action payload, refer to Entity Variables for details.

    Invoke Lambda Function skeleton
    {
        "FunctionName": "",
        "Payload": {},
        "Qualifier": "",
        "ClientContext": {}
    }

Entity Variables

You can inject contextual workflow variables with workflow entities into the remote action payload template – currently available entities are:

Examples

  • Page:
    Invoke Lambda Function — This parameters template demonstrates the Invoke Lambda Function action:

    JSON escaping requirements

    If a parameter within the JSON formatted parameters template is a JSON structure in itself (e.g. the Lambda function payload), it needs to be escaped before adding it as a value - this has two implications:

    • (tick) custom content needs to be escaped, which can be achieved by Composing action payloads with utility functions, specifically the $util.escapeJson() function

    • (warning) variables with conflicting content (e.g. multi line variables like JIRA's $issue.fields.description or Bamboo's $notification.textEmailContent or JSON structures retrieved via JSONPath) need to be escaped twice, via $util.escapeJson($util.escapeJson(...)) - we are exploring options on how to make this easier in a future release

    Invoke Lambda Function parameters example (escaped manually)

    {
      "FunctionName": "arn:aws:lambda:ap-southeast-2:123456789012:function:sample-AutomationWithAWSQuickstartLamb-1RRX37PWXZXLS",
      "Payload": "{ \"Event\":\"$event.simpleName\", \"Timestamp\": \"$event.timestamp\", \"TraceID\": \"$event.traceId\"}"
    }

    Invoke Lambda Function parameters example (escaped with utility function)

    {
      "FunctionName": "arn:aws:lambda:ap-southeast-2:123456789012:function:sample-AutomationWithAWSQuickstartLamb-1RRX37PWXZXLS",
      "Payload": "$util.escapeJson('{
        "Event": "$event.simpleName",
        "Timestamp": "$event.timestamp",
        "TraceID": "$event.traceId"
      }')"
    }

How-to Articles

Filter by label

There are no items with the selected labels at this time.

Frequently Asked Questions (FAQ)

Atlassian account required

Due to a regression within Questions for Confluence Cloud, you need to log in with your Atlassian ID (or sign up for a new account) to access these automatically curated FAQs (refer to UAA-312 for the background).

  • No labels