Skip to content

Cron

Reference doc for the `sst.aws.Cron` component.

The Cron component lets you add cron jobs to your app. It uses Amazon Event Bus.

Minimal example

Pass in a schedule and a job function that’ll be executed.

sst.config.ts
new sst.aws.Cron("MyCronJob", {
job: "src/cron.handler",
schedule: "rate(1 minute)"
});

Customize the function

sst.config.ts
new sst.aws.Cron("MyCronJob", {
schedule: "rate(1 minute)",
job: {
handler: "src/cron.handler",
timeout: "60 seconds"
}
});

Constructor

new Cron(name, args, opts?)

Parameters

CronArgs

function?

Type Input<string | FunctionArgs | “arn:aws:lambda:${string}”>

The function that’ll be executed when the cron job runs.

{
function: "src/cron.handler"
}

You can pass in the full function props.

{
function: {
handler: "src/cron.handler",
timeout: "60 seconds"
}
}

You can also pass in a function ARN.

{
function: "arn:aws:lambda:us-east-1:000000000000:function:my-sst-app-jayair-MyFunction",
}

schedule

Type Input<rate(${string}) | cron(${string})>

The schedule for the cron job.

You can use a rate expression.

{
schedule: "rate(5 minutes)"
// schedule: "rate(1 minute)"
// schedule: "rate(5 minutes)"
// schedule: "rate(1 hour)"
// schedule: "rate(5 hours)"
// schedule: "rate(1 day)"
// schedule: "rate(5 days)"
}

Or a cron expression.

{
schedule: "cron(15 10 * * ? *)", // 10:15 AM (UTC) every day
}

task?

Type Task

The task that’ll be executed when the cron job runs.

For example, let's say you have a task.
```js title="sst.config.ts"
const myCluster = new sst.aws.Cluster("MyCluster");
const myTask = myCluster.addTask("MyTask");

You can then pass in the task to the cron job.

sst.config.ts
new sst.aws.Cron("MyCronJob", {
task: myTask,
schedule: "rate(1 minute)"
});

transform?

Type Object

Transform how this component creates its underlying resources.

transform.rule?

Type EventRuleArgs | (args: EventRuleArgs, opts: ComponentResourceOptions, name: string) => void

Transform the EventBridge Rule resource.

transform.target?

Type EventTargetArgs | (args: EventTargetArgs, opts: ComponentResourceOptions, name: string) => void

Transform the EventBridge Target resource.

Properties

nodes

Type Object

The underlying resources this component creates.

nodes.rule

Type EventRule

The EventBridge Rule resource.

nodes.target

Type EventTarget

The EventBridge Target resource.

nodes.function

Type Output<Function>

The AWS Lambda Function that’ll be invoked when the cron job runs.

nodes.job

Type Output<Function>

The AWS Lambda Function that’ll be invoked when the cron job runs.