Interface ISnsPublishProps
Properties for publishing a message to an SNS topic.
Inherited Members
Namespace: Amazon.CDK.AWS.StepFunctions.Tasks
Assembly: Amazon.CDK.AWS.StepFunctions.Tasks.dll
Syntax (csharp)
public interface ISnsPublishProps : ITaskStateBaseProps
Syntax (vb)
Public Interface ISnsPublishProps
Inherits ITaskStateBaseProps
Remarks
ExampleMetadata: infused
Examples
var convertToSeconds = new EvaluateExpression(this, "Convert to seconds", new EvaluateExpressionProps {
Expression = "$.waitMilliseconds / 1000",
ResultPath = "$.waitSeconds"
});
var createMessage = new EvaluateExpression(this, "Create message", new EvaluateExpressionProps {
// Note: this is a string inside a string.
Expression = "`Now waiting ${$.waitSeconds} seconds...`",
Runtime = Runtime.NODEJS_14_X,
ResultPath = "$.message"
});
var publishMessage = new SnsPublish(this, "Publish message", new SnsPublishProps {
Topic = new Topic(this, "cool-topic"),
Message = TaskInput.FromJsonPathAt("$.message"),
ResultPath = "$.sns"
});
var wait = new Wait(this, "Wait", new WaitProps {
Time = WaitTime.SecondsPath("$.waitSeconds")
});
new StateMachine(this, "StateMachine", new StateMachineProps {
Definition = convertToSeconds.Next(createMessage).Next(publishMessage).Next(wait)
});
Synopsis
Properties
Message | The message you want to send. |
MessageAttributes | Add message attributes when publishing. |
MessagePerSubscriptionType | Send different messages for each transport protocol. |
Subject | Used as the "Subject" line when the message is delivered to email endpoints. |
Topic | The SNS topic that the task will publish to. |
Properties
Message
The message you want to send.
TaskInput Message { get; }
Property Value
Remarks
With the exception of SMS, messages must be UTF-8 encoded strings and at most 256 KB in size. For SMS, each message can contain up to 140 characters.
MessageAttributes
Add message attributes when publishing.
virtual IDictionary<string, IMessageAttribute> MessageAttributes { get; }
Property Value
System.Collections.Generic.IDictionary<System.String, IMessageAttribute>
Remarks
These attributes carry additional metadata about the message and may be used for subscription filters.
Default: {}
See: https://docs.aws.amazon.com/sns/latest/dg/sns-message-attributes.html
MessagePerSubscriptionType
Send different messages for each transport protocol.
virtual Nullable<bool> MessagePerSubscriptionType { get; }
Property Value
System.Nullable<System.Boolean>
Remarks
For example, you might want to send a shorter message to SMS subscribers and a more verbose message to email and SQS subscribers.
Your message must be a JSON object with a top-level JSON key of "default" with a value that is a string You can define other top-level keys that define the message you want to send to a specific transport protocol (i.e. "sqs", "email", "http", etc)
Default: false
See: https://docs.aws.amazon.com/sns/latest/api/API_Publish.html#API_Publish_RequestParameters
Subject
Used as the "Subject" line when the message is delivered to email endpoints.
virtual string Subject { get; }
Property Value
System.String
Remarks
This field will also be included, if present, in the standard JSON messages delivered to other endpoints.
Default: - No subject