Integrations
You can use the Publish SNS Message action with the following integrations:
Filter by label
There are no items with the selected labels at this time.
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
orTargetArn
.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
-
DeploymentResult — The Bamboo
${deploymentResult}
entity returns the following JSON shape:DeploymentResult shape (JSON)
{ "agentId": "<>", "deploymentVersionName": "<>", "environmentId": "<>", "executedDate": "<>", "finishedDate": "<>", "id": "<>", "queuedDate": "<>", "reasonSummary": "<>", "startedDate": "<>" }
-
-
ResultsSummary — The Bamboo
${resultsSummary}
entity returns the following JSON shape:ResultsSummary shape (JSON)
{ "buildAgentId": "<the id of the latest agent that built the result>", "buildCancelledDate": "<when the build was cancelled>", "buildCompletedDate": "<when the build finished>", "buildDate": "<>", "buildNumber": "<>", "buildTime": "<>", "changesListSummary": "<>", "duration": "<the duration of the build in milliseconds>", "durationDescription": "<the duration in a 'pretty' format>", "formatVersion": "<>", "id": "<>", "logSize": "<the size of the log file associated with this result>", "processingDuration": "<>", "processingDurationDescription": "<>", "queueTime": "<>", "reasonSummary": "<>", "relativeBuildDate": "<>", "relativeBuildStartedDate": "<the relative started time (duration) compared to current date>", "relativeQueueDate": "<>", "restartCount": "<>", "shortReasonSummary": "<>", "testSummary": "<>", "timeToFix": "<the stored version of how long (milli seconds) it took for this build to fix a failure>" }
-
-
-
-
Notification — The Bamboo
${notification}
entity returns the following JSON shape:Notification shape (JSON)
{ "description": "<a description>", "emailSubject: "<the email subject>", "htmlEmailContent": "<the HTML email content>", "imContent": "<the instant messaging content>", "textEmailContent": "<the text email content>" }
-
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
Filter by label
There are no items with the selected labels at this time.