Integrations
You can use the Put EventBridge/CloudWatch Events action with the following integrations:
Requirements
The Put EventBridge/CloudWatch Events 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:
Refer to Using Identity-Based Policies (IAM Policies) for EventBridge for details on how to create more granular/secure policies.
Configuration
To configure an Put EventBridge/CloudWatch Events action:
Complete the following settings:
Parameters Specify the action parameters according to the following skeleton in JSON format – refer to events . put-events for details:
You can inject contextual variables into the remote action payload, refer to Entity Variables for details.
Event Patterns in EventBridge (CloudWatch Events)
This is an opinionated brief skeleton that works well for ingesting custom events from Atlassian products – refer to Events and Event Patterns in EventBridge (CloudWatch Events) for details on these and other available fields.
Put EventBridge/CloudWatch Events skeleton - Atlassian Workflow Event{ "Entries": [ { "Time": "$event.timestamp", "Source": "", "DetailType": "", "Detail": "" } ] }
Entity Variables
Examples
-
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:
custom content needs to be escaped, which can be achieved by Composing action payloads with utility functions, specifically the $util.escapeJson() function
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" }')" } ] }
-
Put EventBridge/CloudWatch Events - Bamboo Build Notification — 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:
custom content needs to be escaped, which can be achieved by Composing action payloads with utility functions, specifically the $util.escapeJson() function
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 - Bamboo Build Notification (escaped manually)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Bamboo Build Notification", "Detail": "{ \"plan\": $plan, \"resultsSummary\": $resultsSummary }" } ] }
Put EventBridge/CloudWatch Events parameters example - Bamboo Build Notification (escaped with utility function)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Bamboo Build Notification", "Detail": "$util.escapeJson('{ "plan": $plan, "resultsSummary": $resultsSummary }')" } ] }
-
Put EventBridge/CloudWatch Events - Bamboo Build Task Execution — 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:
custom content needs to be escaped, which can be achieved by Composing action payloads with utility functions, specifically the $util.escapeJson() function
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 - Bamboo Build Task Execution (escaped manually){ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Bamboo Build Task Execution", "Detail": "{ \"agentId\": \"${bamboo.agentId}\", \"buildResultKey\": \"${bamboo.buildResultKey}\", \"resultsUrl\": \"${bamboo.resultsUrl}\" }" } ] }
Put EventBridge/CloudWatch Events parameters example - Bamboo Build Task Execution (escaped with utility function)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Bamboo Build Task Execution", "Detail": "$util.escapeJson('{ "agentId": "${bamboo.agentId}", "buildResultKey": "${bamboo.buildResultKey}", "resultsUrl": "${bamboo.resultsUrl}" }')" } ] }
-
Put EventBridge/CloudWatch Events - Bamboo Deployment Notification — 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:
custom content needs to be escaped, which can be achieved by Composing action payloads with utility functions, specifically the $util.escapeJson() function
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 - Bamboo Deployment Notification (escaped manually)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Bamboo Deployment Notification", "Detail": "{ \"plan\": $plan, \"deploymentResult\": $deploymentResult }" } ] }
Put EventBridge/CloudWatch Events parameters example - Bamboo Deployment Notification (escaped with utility function)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Bamboo Deployment Notification", "Detail": "$util.escapeJson('{ "plan": $plan, "deploymentResult": $deploymentResult }')" } ] }
-
Put EventBridge/CloudWatch Events - Bamboo Deployment Task Execution — 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:
custom content needs to be escaped, which can be achieved by Composing action payloads with utility functions, specifically the $util.escapeJson() function
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 - Bamboo Deployment Task Execution (escaped manually)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Bamboo Deployment Task Execution", "Detail": "{ \"agentId\": \"${bamboo.agentId}\", \"buildResultKey\": \"${bamboo.buildResultKey}\", \"resultsUrl\": \"${bamboo.resultsUrl}\", \"deploymentProject\": \"${bamboo.deploy.project}\", \"deploymentEnvironment\": \"${bamboo.deploy.environment}\" }" } ] }
Put EventBridge/CloudWatch Events parameters example - Bamboo Deployment Task Execution (escaped with utility function)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Bamboo Deployment Task Execution", "Detail": "$util.escapeJson('{ "agentId": "${bamboo.agentId}", "buildResultKey": "${bamboo.buildResultKey}", "resultsUrl": "${bamboo.resultsUrl}", "deploymentProject": "${bamboo.deploy.project}", "deploymentEnvironment": "${bamboo.deploy.environment}" }')" } ] }
-
Put EventBridge/CloudWatch Events - Bamboo System Notification — 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:
custom content needs to be escaped, which can be achieved by Composing action payloads with utility functions, specifically the $util.escapeJson() function
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 - Bamboo System Notification (escaped manually)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Bamboo System Notification", "Detail": "{ \"plan\": $plan }" } ] }
Put EventBridge/CloudWatch Events parameters example - Bamboo System Notification (escaped with utility function)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Bamboo System Notification", "Detail": "$util.escapeJson('{ "plan": $plan }')" } ] }
-
Put EventBridge/CloudWatch Events - Jira Core Post Function — 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:
custom content needs to be escaped, which can be achieved by Composing action payloads with utility functions, specifically the $util.escapeJson() function
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 - Jira Core Post Function (complete issue shape)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Jira Core Post Function", "Detail": "$issue" } ] }
Put EventBridge/CloudWatch Events parameters example - Jira Core Post Function (selected fields, escaped manually)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Jira Core Post Function", "Detail": "{ \"issueKey\": \"$issue.key\", \"issueUrl\": \"$issue.self\", \"issueSummary\": \"$issue.fields.summary\" }" } ] }
Put CloudWatch Events parameters example - Jira Core Post Function (selected fields, escaped with utility function)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.bamboo.automation-with-aws-bamboo", "DetailType": "Jira Core Post Function", "Detail": "$util.escapeJson('{ "issueKey": "$issue.key" "issueUrl": "$issue.self" "issueSummary": "$issue.fields.summary" }')" } ] }
-
Put EventBridge/CloudWatch Events - Jira Service Management Then Action — 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:
custom content needs to be escaped, which can be achieved by Composing action payloads with utility functions, specifically the $util.escapeJson() function
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 - Jira Service Management Then Action (complete issue shape)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.jira.automation-with-aws-jira", "DetailType": "Jira Service Management Then Action", "Detail": "$issue" } ] }
Put EventBridge/CloudWatch Events parameters example - Jira Service Management Then Action (selected fields, escaped manually)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.jira.automation-with-aws-jira", "DetailType": "Jira Service Management Then Action", "Detail": "{ \"issueKey\": \"$issue.key\", \"issueUrl\": \"$issue.self\", \"issueSummary\": \"$issue.fields.summary\" }" } ] }
Put EventBridge/CloudWatch Events parameters example - Jira Service Management Then Action (selected fields, escaped with utility function)
{ "Entries": [ { "Time": "$event.timestamp", "Source": "net.utoolity.atlassian.jira.automation-with-aws-jira", "DetailType": "Jira Service Management Then Action", "Detail": "$util.escapeJson('{ "issueKey": "$issue.key" "issueUrl": "$issue.self" "issueSummary": "$issue.fields.summary" }')" } ] }
How-to Articles
Frequently Asked Questions (FAQ)
Atlassian account required