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
The Amazon Resource Name (ARN) of the target.
deadLetterQueueIQueuedead_letter_queueIQueuedeadLetterQueueIQueueDeadLetterQueueIQueueDeadLetterQueueIQueue#Dead letter queue for failed events.
The input to the target.
retryPolicyRetryPolicyretry_policyRetryPolicyretryPolicyRetryPolicyRetryPolicyRetryPolicyRetryPolicyRetryPolicy#The retry policy settings.
Methods
renderTargetObject(): anydef render_target_object(self, ) -> Anypublic Object renderTargetObject()public object RenderTargetObject()func RenderTargetObject() interface{}#return the target object for the EventBridge Scheduler.