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

Version 1 Next »



Use the Automate with AWS if condition to evaluate remote conditions with AWS from Jira Service Desk automation rules.



On this page:

Related pages:

Configuration

To configure an Automate with AWS if condition:

  1. Follow the steps in Automating your service desk
  2. When editing the IF field, select the Automate with AWS if condition
  3. Complete the following settings:

    AWS Connector

    Select the shared Identity Federation for AWS connector.

    Action

    Select the remote AWS action – the action must return a response adhering to the action response format.

  4. Configure the selected AWS action's parameter template as documented for each action:

Entity Variables

You can inject contextual variables with workflow entities into the remote action payload templates. The applicable entities for the Jira if condition are:

Examples

The examples are currently composed to reference only core entity variables – you can also reference all Jira specific entity variables, for example ${issue.fields.summary}.


  • 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"
      }')"
    }
  • Page:
    Publish SNS Message - raw text format — This parameters template demonstrates publishing a SNS message in raw text format with the Publish SNS Message action:

    Publish SNS Message parameters example (raw text format)

    {
      "TopicArn": "arn:aws:sns:ap-southeast-2:123456789012:sample-AutomationWithAWSQuickstartSNSTopic-15EO7TT8O93XT",
      "Message": "$event.simpleName with trace ID $event.traceId triggered at $event.timestamp",
      "Subject": "Automation with AWS: $event.simpleName triggered at $event.timestamp"
    }
  • Page:
    Publish SNS Message - structured JSON format — This parameters template demonstrates publishing a SNS message in structured JSON format with the Publish SNS Message 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

    JSON Message Generator

    The AWS Management Console features a JSON Message Generator that eases composition of the required JSON message structure, refer to section Create Different Messages for Each Protocol for within Publish to a topic for details.

    Publish SNS Message parameters example (structured JSON format – escaped manually)

    {
      "TopicArn": "arn:aws:sns:ap-southeast-2:123456789012:sample-AutomationWithAWSQuickstartSNSTopic-15EO7TT8O93XT",
      "Message": "{ \"default\": \"$event.simpleName with trace ID $event.traceId triggered at $event.timestamp\"}",
      "MessageStructure": "json",
      "Subject": "Automation with AWS: $event.simpleName triggered at $event.timestamp"
    }

    Publish SNS Message parameters example (structured JSON format – escaped with utility function)

    {
      "TopicArn": "arn:aws:sns:ap-southeast-2:123456789012:sample-AutomationWithAWSQuickstartSNSTopic-15EO7TT8O93XT",
      "Message": "$util.escapeJson('{
        "default": "$event.simpleName with trace ID $event.traceId triggered at $event.timestamp"
      }')",
      "MessageStructure": "json",
      "Subject": "Automation with AWS: $event.simpleName triggered at $event.timestamp"
    }
  • Page:
    Put EventBridge/CloudWatch Events - Atlassian Workflow Event — This parameters template demonstrates the Put EventBridge/CloudWatch Events 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

    Event Patterns in CloudWatch Events

    This is an opinionated example that works well for ingesting custom events from Atlassian products – refer to Event Patterns in CloudWatch Events for details on these and other available fields.


    Put EventBridge/CloudWatch Events parameters example - Atlassian Workflow Event (escaped manually)

    {
      "Entries": [
        {
          "Source": "net.utoolity.atlassian",
          "DetailType": "Atlassian Workflow Event",
          "Detail": "{ \"event\": \"$event.simpleName\", \"traceId\": \"$event.traceId\" }"
        }
      ]
    }

    Put EventBridge/CloudWatch Events parameters example - Atlassian Workflow Event (escaped with utility function)

    {
      "Entries": [
        {
          "Time": "$event.timestamp",
          "Source": "net.utoolity.atlassian",
          "DetailType": "Atlassian Workflow Event",
          "Detail": "$util.escapeJson('{
            "event": "$event.simpleName",
            "traceID": "$event.traceId"
          }')"
        }
      ]
    }
  • Page:
    Send SMS Message — This parameters template demonstrates sending a SMS message directly to a phone number with the Publish SNS Message action:

    Send SMS Message parameters example

    {
      "PhoneNumber": "+61.1234567890",
      "Message": "Automation with AWS: $event.simpleName with trace ID $event.traceId triggered at $event.timestamp",
      "MessageAttributes": {
        "AWS.SNS.SMS.SenderID": {
          "DataType": "String",
          "StringValue": "Utoolity"
        }
      }
    }
  • Page:
    Send SQS Message - raw text payload — This parameters template demonstrates the Send SQS Message action:

    Send SQS Message parameters example (raw text payload)

    {
      "QueueUrl": "https://sqs.ap-southeast-2.amazonaws.com/123456789012/sample-AutomationWithAWSQuickstartSQSQueue-1NAIZP8U9XJ1X",
      "MessageBody": "Automation with AWS: $event.simpleName with trace ID $event.traceId triggered at $event.timestamp - see ${bamboo.resultsUrl} for details."
    }
  • Page:
    Send SQS Message - structured JSON payload — This parameters template demonstrates the Send SQS Message 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

    Send SQS Message parameters example (Atlassian Workflow Event – escaped manually)

    {
      "QueueUrl": "https://sqs.ap-southeast-2.amazonaws.com/123456789012/sample-AutomationWithAWSQuickstartSQSQueue-1NAIZP8U9XJ1X",
      "MessageBody": "{ \"event\": \"$event.simpleName\", \"timestamp\": \"$event.timestamp\", \"traceId\": \"$event.traceId\" }"
    }

    Send SQS Message parameters example (Atlassian Workflow Event – escaped with utility function)

    {
      "QueueUrl": "https://sqs.ap-southeast-2.amazonaws.com/123456789012/sample-AutomationWithAWSQuickstartSQSQueue-1NAIZP8U9XJ1X",
      "MessageBody": "$util.escapeJson('{
        "event": "$event.simpleName",
        "timestamp": "$event.timestamp",
        "traceId": "$event.traceId"
      }')"
    }
  • Page:
    Start Step Functions Execution — This parameters template demonstrates the Start Step Functions Execution 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

    Start Step Functions Execution parameters example (escaped manually)

    {
      "StateMachineArn": "arn:aws:states:ap-southeast-2:123456789012:stateMachine:sample-AutomationWithAWSQuickstartStepFunctionsStateMachine-UHDE4Y9QTDIN",
      "Input": "{ \"Event\":\"$event.simpleName\", \"Timestamp\": \"$event.timestamp\", \"TraceID\": \"$event.traceId\"}"
    }

    Start Step Functions Execution parameters example (escaped with utility function)

    {
      "StateMachineArn": "arn:aws:states:ap-southeast-2:123456789012:stateMachine:sample-AutomationWithAWSQuickstartStepFunctionsStateMachine-UHDE4Y9QTDIN",
      "Input": "$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