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 4 Next »

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"
}

  • No labels