from aws_cdk import ( aws_events as events, aws_lambda as lambda_, aws_events_targets as targets, App, Duration, Stack ) class LambdaCronStack(Stack): def __init__(self, app: App, id: str) -> None: super().__init__(app, id) with open("lambda-handler.py", encoding="utf8") as fp: handler_code = fp.read() lambdaFn = lambda_.Function( self, "Singleton", code=lambda_.InlineCode(handler_code), handler="index.main", timeout=Duration.seconds(300), runtime=lambda_.Runtime.PYTHON_3_7, ) # Run every day at 6PM UTC # See https://docs.aws.amazon.com/lambda/latest/dg/tutorial-scheduled-events-schedule-expressions.html rule = events.Rule( self, "Rule", schedule=events.Schedule.cron( minute='0', hour='18', month='*', week_day='MON-FRI', year='*'), ) rule.add_target(targets.LambdaFunction(lambdaFn)) app = App() LambdaCronStack(app, "LambdaCronExample") app.synth()