Skip to content
v2.273.0

SnsPublish Class ​

Use an Amazon SNS topic as a target for AWS EventBridge Scheduler.

Example ​

ts
import * as sns from 'aws-cdk-lib/aws-sns';

const topic = new sns.Topic(this, 'Topic');

const payload = {
  message: 'Hello scheduler!',
};

const target = new targets.SnsPublish(topic, {
  input: ScheduleTargetInput.fromObject(payload),
});

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(Duration.hours(1)),
  target,
});
python
import aws_cdk.aws_sns as sns


topic = sns.Topic(self, "Topic")

payload = {
    "message": "Hello scheduler!"
}

target = targets.SnsPublish(topic,
    input=ScheduleTargetInput.from_object(payload)
)

Schedule(self, "Schedule",
    schedule=ScheduleExpression.rate(Duration.hours(1)),
    target=target
)
java
import software.amazon.awscdk.services.sns.*;


Topic topic = new Topic(this, "Topic");

Map<String, String> payload = Map.of(
        "message", "Hello scheduler!");

SnsPublish target = SnsPublish.Builder.create(topic)
        .input(ScheduleTargetInput.fromObject(payload))
        .build();

Schedule.Builder.create(this, "Schedule")
        .schedule(ScheduleExpression.rate(Duration.hours(1)))
        .target(target)
        .build();
csharp
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK.AWS.SNS;


var topic = new Topic(this, "Topic");

IDictionary<string, string> payload = new Dictionary<string, string> {
    { "message", "Hello scheduler!" }
};

var target = new SnsPublish(topic, new ScheduleTargetBaseProps {
    Input = ScheduleTargetInput.FromObject(payload)
});

new Schedule(this, "Schedule", new ScheduleProps {
    Schedule = ScheduleExpression.Rate(Duration.Hours(1)),
    Target = target
});
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import sns "github.com/aws/aws-cdk-go/awscdk"


topic := sns.NewTopic(this, jsii.String("Topic"))

payload := map[string]*string{
	"message": jsii.String("Hello scheduler!"),
}

target := targets.NewSnsPublish(topic, &ScheduleTargetBaseProps{
	Input: awscdk.ScheduleTargetInput_FromObject(payload),
})

awscdk.NewSchedule(this, jsii.String("Schedule"), &ScheduleProps{
	Schedule: awscdk.ScheduleExpression_Rate(awscdk.Duration_Hours(jsii.Number(1))),
	Target: Target,
})

Initializer ​

ts
new SnsPublish(topic: ITopic, props?: ScheduleTargetBaseProps)
python
SnsPublish(topic: ITopic, props: typing.Optional[ScheduleTargetBaseProps] = None)
java
new SnsPublish(ITopic topic, ScheduleTargetBaseProps props)
csharp
new SnsPublish(ITopic topic, ScheduleTargetBaseProps? props = null)
go
NewSnsPublish(Topic ITopic, Props ScheduleTargetBaseProps)

Methods ​

bind(schedule: ISchedule): ScheduleTargetConfigdef bind(self, schedule: ISchedule) -> ScheduleTargetConfigpublic ScheduleTargetConfig bind(ISchedule schedule)public ScheduleTargetConfig Bind(ISchedule schedule)func Bind(Schedule ISchedule) ScheduleTargetConfig#
Create a return a Schedule Target Configuration for the given schedule.
returns

Returns: a Schedule Target Configuration