import * as events from 'aws-cdk-lib/aws-events';
import * as targets from 'aws-cdk-lib/aws-events-targets';
new events.Rule(this, 'MonthEndRule', {
schedule: events.Schedule.expression('cron(0 0 L * ? *)'),
targets: [new targets.LambdaFunction(monthEndLambda)],
});For the newer EventBridge Scheduler with timezone support:
import * as scheduler from 'aws-cdk-lib/aws-scheduler';
new scheduler.CfnSchedule(this, 'MonthEndSchedule', {
scheduleExpression: 'cron(0 0 L * ? *)',
scheduleExpressionTimezone: 'America/New_York',
flexibleTimeWindow: { mode: 'OFF' },
target: { arn: monthEndLambda.functionArn, roleArn: schedulerRole.roleArn },
});