Integrations
You can use the Publish SNS Message action with the following integrations:
Requirements
The Publish SNS Message 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 Controlling User Access to Your AWS Account for details on how to create more granular/secure policies, including a few Example Policies for Amazon SNS.
Configuration
To configure a Publish SNS Message action:
Complete the following settings:
Parameters
Specify the action parameters according to the following skeleton in JSON format – refer to sns . publish for details:
You must specify exactly one parameter out of TopicArn
, PhoneNumber
or TargetArn
.
You can inject contextual variables into the remote action payload, refer to Entity Variables for details.
Publish SNS Message skeleton
{ "TopicArn": "", "TargetArn": "", "PhoneNumber": "", "Message": "", "Subject": "", "MessageStructure": "", "MessageAttributes": { "KeyName": { "DataType": "", "StringValue": "", "BinaryValue": null } } }
Entity Variables
You can inject contextual variables with workflow entities into the remote action payload template – currently available entities are:
Examples
-
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" }
-
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:
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
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" }
-
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" } } }
How-to Articles
Frequently Asked Questions (FAQ)
Atlassian account required