Skip to content
v2.273.0

EventBridgeSchedulerTarget Class ​

The target that EventBridge Scheduler will invoke.

Example ​

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

declare const key: kms.Key;
declare const scheduleGroup: scheduler.CfnScheduleGroup;
declare const targetQueue: sqs.Queue;
declare const deadLetterQueue: sqs.Queue;

const schedulerRole = new iam.Role(this, 'SchedulerRole', {
  assumedBy: new iam.ServicePrincipal('scheduler.amazonaws.com'),
});
// To send the message to the queue
// This policy changes depending on the type of target.
schedulerRole.addToPrincipalPolicy(new iam.PolicyStatement({
  actions: ['sqs:SendMessage'],
  resources: [targetQueue.queueArn],
}));

const createScheduleTask1 = new tasks.EventBridgeSchedulerCreateScheduleTask(this, 'createSchedule', {
  scheduleName: 'TestSchedule',
  actionAfterCompletion: tasks.ActionAfterCompletion.NONE,
  clientToken: 'testToken',
  description: 'TestDescription',
  startDate: new Date(),
  endDate: new Date(new Date().getTime() + 1000 * 60 * 60),
  flexibleTimeWindow: Duration.minutes(5),
  groupName: scheduleGroup.ref,
  kmsKey: key,
  schedule: tasks.Schedule.rate(Duration.minutes(5)),
  timezone: 'UTC',
  enabled: true,
  target: new tasks.EventBridgeSchedulerTarget({
    arn: targetQueue.queueArn,
    role: schedulerRole,
    retryPolicy: {
      maximumRetryAttempts: 2,
      maximumEventAge: Duration.minutes(5),
    },
    deadLetterQueue,
  }),
});
python
import aws_cdk.aws_scheduler as scheduler
import aws_cdk.aws_kms as kms

# key: kms.Key
# schedule_group: scheduler.CfnScheduleGroup
# target_queue: sqs.Queue
# dead_letter_queue: sqs.Queue


scheduler_role = iam.Role(self, "SchedulerRole",
    assumed_by=iam.ServicePrincipal("scheduler.amazonaws.com")
)
# To send the message to the queue
# This policy changes depending on the type of target.
scheduler_role.add_to_principal_policy(iam.PolicyStatement(
    actions=["sqs:SendMessage"],
    resources=[target_queue.queue_arn]
))

create_schedule_task1 = tasks.EventBridgeSchedulerCreateScheduleTask(self, "createSchedule",
    schedule_name="TestSchedule",
    action_after_completion=tasks.ActionAfterCompletion.NONE,
    client_token="testToken",
    description="TestDescription",
    start_date=Date(),
    end_date=Date(Date().get_time() + 1000 * 60 * 60),
    flexible_time_window=Duration.minutes(5),
    group_name=schedule_group.ref,
    kms_key=key,
    schedule=tasks.Schedule.rate(Duration.minutes(5)),
    timezone="UTC",
    enabled=True,
    target=tasks.EventBridgeSchedulerTarget(
        arn=target_queue.queue_arn,
        role=scheduler_role,
        retry_policy=tasks.RetryPolicy(
            maximum_retry_attempts=2,
            maximum_event_age=Duration.minutes(5)
        ),
        dead_letter_queue=dead_letter_queue
    )
)
java
import software.amazon.awscdk.services.scheduler.*;
import software.amazon.awscdk.services.kms.*;

Key key;
CfnScheduleGroup scheduleGroup;
Queue targetQueue;
Queue deadLetterQueue;


Role schedulerRole = Role.Builder.create(this, "SchedulerRole")
        .assumedBy(new ServicePrincipal("scheduler.amazonaws.com"))
        .build();
// To send the message to the queue
// This policy changes depending on the type of target.
schedulerRole.addToPrincipalPolicy(PolicyStatement.Builder.create()
        .actions(List.of("sqs:SendMessage"))
        .resources(List.of(targetQueue.getQueueArn()))
        .build());

EventBridgeSchedulerCreateScheduleTask createScheduleTask1 = EventBridgeSchedulerCreateScheduleTask.Builder.create(this, "createSchedule")
        .scheduleName("TestSchedule")
        .actionAfterCompletion(ActionAfterCompletion.NONE)
        .clientToken("testToken")
        .description("TestDescription")
        .startDate(new Date())
        .endDate(new Date(new Date().getTime() + 1000 * 60 * 60))
        .flexibleTimeWindow(Duration.minutes(5))
        .groupName(scheduleGroup.getRef())
        .kmsKey(key)
        .schedule(Schedule.rate(Duration.minutes(5)))
        .timezone("UTC")
        .enabled(true)
        .target(EventBridgeSchedulerTarget.Builder.create()
                .arn(targetQueue.getQueueArn())
                .role(schedulerRole)
                .retryPolicy(RetryPolicy.builder()
                        .maximumRetryAttempts(2)
                        .maximumEventAge(Duration.minutes(5))
                        .build())
                .deadLetterQueue(deadLetterQueue)
                .build())
        .build();
csharp
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK.AWS.Scheduler;
using Amazon.CDK.AWS.KMS;

Key key;
CfnScheduleGroup scheduleGroup;
Queue targetQueue;
Queue deadLetterQueue;


var schedulerRole = new Role(this, "SchedulerRole", new RoleProps {
    AssumedBy = new ServicePrincipal("scheduler.amazonaws.com")
});
// To send the message to the queue
// This policy changes depending on the type of target.
schedulerRole.AddToPrincipalPolicy(new PolicyStatement(new PolicyStatementProps {
    Actions = new [] { "sqs:SendMessage" },
    Resources = new [] { targetQueue.QueueArn }
}));

var createScheduleTask1 = new EventBridgeSchedulerCreateScheduleTask(this, "createSchedule", new EventBridgeSchedulerCreateScheduleTaskProps {
    ScheduleName = "TestSchedule",
    ActionAfterCompletion = ActionAfterCompletion.NONE,
    ClientToken = "testToken",
    Description = "TestDescription",
    StartDate = new Date(),
    EndDate = new Date(new Date().GetTime() + 1000 * 60 * 60),
    FlexibleTimeWindow = Duration.Minutes(5),
    GroupName = scheduleGroup.Ref,
    KmsKey = key,
    Schedule = Schedule.Rate(Duration.Minutes(5)),
    Timezone = "UTC",
    Enabled = true,
    Target = new EventBridgeSchedulerTarget(new EventBridgeSchedulerTargetProps {
        Arn = targetQueue.QueueArn,
        Role = schedulerRole,
        RetryPolicy = new RetryPolicy {
            MaximumRetryAttempts = 2,
            MaximumEventAge = Duration.Minutes(5)
        },
        DeadLetterQueue = deadLetterQueue
    })
});
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import scheduler "github.com/aws/aws-cdk-go/awscdk"
import kms "github.com/aws/aws-cdk-go/awscdk"

var key Key
var scheduleGroup CfnScheduleGroup
var targetQueue Queue
var deadLetterQueue Queue


schedulerRole := iam.NewRole(this, jsii.String("SchedulerRole"), &RoleProps{
	AssumedBy: iam.NewServicePrincipal(jsii.String("scheduler.amazonaws.com")),
})
// To send the message to the queue
// This policy changes depending on the type of target.
schedulerRole.AddToPrincipalPolicy(iam.NewPolicyStatement(&PolicyStatementProps{
	Actions: []*string{
		jsii.String("sqs:SendMessage"),
	},
	Resources: []*string{
		targetQueue.queueArn,
	},
}))

createScheduleTask1 := tasks.NewEventBridgeSchedulerCreateScheduleTask(this, jsii.String("createSchedule"), &EventBridgeSchedulerCreateScheduleTaskProps{
	ScheduleName: jsii.String("TestSchedule"),
	ActionAfterCompletion: tasks.ActionAfterCompletion_NONE,
	ClientToken: jsii.String("testToken"),
	Description: jsii.String("TestDescription"),
	StartDate: NewDate(),
	EndDate: NewDate(NewDate().getTime() + 1000 * 60 * 60),
	FlexibleTimeWindow: awscdk.Duration_Minutes(jsii.Number(5)),
	GroupName: scheduleGroup.ref,
	KmsKey: key,
	Schedule: tasks.Schedule_Rate(awscdk.Duration_*Minutes(jsii.Number(5))),
	Timezone: jsii.String("UTC"),
	Enabled: jsii.Boolean(true),
	Target: tasks.NewEventBridgeSchedulerTarget(&EventBridgeSchedulerTargetProps{
		Arn: targetQueue.queueArn,
		Role: schedulerRole,
		RetryPolicy: &RetryPolicy{
			MaximumRetryAttempts: jsii.Number(2),
			MaximumEventAge: awscdk.Duration_*Minutes(jsii.Number(5)),
		},
		DeadLetterQueue: *DeadLetterQueue,
	}),
})

Initializer ​

ts
new EventBridgeSchedulerTarget(props: EventBridgeSchedulerTargetProps)
python
EventBridgeSchedulerTarget(props: EventBridgeSchedulerTargetProps)
java
new EventBridgeSchedulerTarget(EventBridgeSchedulerTargetProps props)
csharp
new EventBridgeSchedulerTarget(EventBridgeSchedulerTargetProps props)
go
NewEventBridgeSchedulerTarget(Props EventBridgeSchedulerTargetProps)

Properties ​

arnstringarnstrarnStringArnstringArn*stringrequired#
The Amazon Resource Name (ARN) of the target.
deadLetterQueueIQueuedead_letter_queueIQueuedeadLetterQueueIQueueDeadLetterQueueIQueueDeadLetterQueueIQueue#
Dead letter queue for failed events.
inputstringinputstrinputStringInputstringInput*string#
The input to the target.
retryPolicyRetryPolicyretry_policyRetryPolicyretryPolicyRetryPolicyRetryPolicyRetryPolicyRetryPolicyRetryPolicy#
The retry policy settings.
roleIRoleroleIRoleroleIRoleRoleIRoleRoleIRolerequired#
The IAM role that EventBridge Scheduler will use for this target when the schedule is invoked.

Methods ​

renderTargetObject(): anydef render_target_object(self, ) -> Anypublic Object renderTargetObject()public object RenderTargetObject()func RenderTargetObject() interface{}#
return the target object for the EventBridge Scheduler.