Cron
caution
This is the SST v0.x Constructs doc. SST v1 is now released. If you are using v1, see the v1 Constructs doc. If you are looking to upgrade to v1, check out the migration steps.
The Cron
construct is a higher level CDK construct that makes it easy to create a cron job. You can create a cron job by handler function and specifying the schedule it needs to run on. Internally this construct uses a EventBridge Rule.
Initializer
new Cron(scope: Construct, id: string, props: CronProps)
Parameters
Examples
Using the rate expression
import { Cron } from "@serverless-stack/resources";
new Cron(this, "Cron", {
schedule: "rate(1 minute)",
job: "src/lambda.main",
});
Using the cron expression
new Cron(this, "Cron", {
schedule: "cron(15 10 * * ? *)",
job: "src/lambda.main",
});
Using Duration
import { Duration } from "aws-cdk-lib";
new Cron(this, "Cron", {
schedule: Duration.days(1),
job: "src/lambda.main",
});
Using CronOptions
new Cron(this, "Cron", {
schedule: { minute: "0", hour: "4" },
job: "src/lambda.main",
});
Giving the cron job some permissions
Allow the function to access S3.
const cron = new Cron(this, "Cron", {
schedule: "rate(1 minute)",
job: "src/lambda.main",
});
cron.attachPermissions(["s3"]);
Configuring the job
Configure the internally created CDK Event Target
.
import { RuleTargetInput } from "aws-cdk-lib/aws-events";
new Cron(this, "Cron", {
schedule: "rate(1 minute)",
job: {
function: "src/lambda.main",
jobProps: {
event: RuleTargetInput.fromObject({
key: "value"
}),
},
},
});
Properties
An instance of Cron
contains the following properties.
eventsRule
Type : cdk.aws-events.Rule
The internally created CDK EventBridge Rule
instance.
jobFunction
Type : Function
The internally created Function
instance that'll be run on schedule.
Methods
An instance of Queue
contains the following methods.
attachPermissions
attachPermissions(permissions: Permissions)
Parameters
- permissions
Permissions
Attaches the given list of permissions to the jobFunction
. This allows the function to access other AWS resources.
Internally calls Function.attachPermissions
.
CronProps
job
Type : FunctionDefinition | CronJobProps
, defaults to undefined
Takes FunctionDefinition
or CronJobProps
object used to create the function for the cron job.
schedule?
Type : string | cdk.Duration | cdk.aws-events.CronOptions
The schedule for the cron job. Can be specified as a string. The string format takes a rate expression.
"rate(_Value Unit_)"
// For example, every 5 minutes
"rate(5 minutes)"
Or as a cron expression.
"cron(Minutes Hours Day-of-month Month Day-of-week Year)"
// For example, 10:15 AM (UTC) every day
"cron(15 10 * * ? *)"
You can also use the cdk.Duration
as an alternative to defining the rate expression.
import { Duration } from "aws-cdk-lib";
// Repeat every 5 minutes
// As cdk.Duration
Duration.minutes(5)
// The equivalent rate expression
"rate(5 minutes)"
Similarly, you can specify the cron expression using cdk.aws-events.CronOptions
.
// 10:15 AM (UTC) every day
// As cdk.aws-events.CronOptions
{ minute: "15", hour: "10" }
// The equivalent cron expression
"cron(15 10 * * ? *)"
eventsRule?
Type : cdk.aws-events.RuleProps
, defaults to undefined
Or optionally pass in a CDK EventBridge RuleProps
. This allows you to override the default settings this construct uses internally to create the events rule.
CronJobProps
function
Type : FunctionDefinition
A FunctionDefinition
object that'll be used to create the job function for the cron.
jobProps?
Type : cdk.aws-events-targets.LambdaFunctionProps
, defaults to undefined
Or optionally pass in a CDK LambdaFunctionProps
. This allows you to override the default settings this construct uses internally to create the job.