Alt Text
Alt Text

Create Cron Jobs on AWS Lambda with cloudwatch event

⚡ $ chalice new-project lambda-cron
⚡ $ cd lambda-cron/

app,py

from datetime import datetime
from chalice import Chalice


app = Chalice(app_name='lambda-cron')
app.debug = True


#@app.schedule('cron(0 18 ? * MON-FRI *)')
@app.schedule('cron(* * ? * * *)')
def cron_tab(event):
print(f"{datetime.now()}: I'm running!")
  • Here is just config lambda timeout
⚡ $ cat .chalice/config.json 
{
"version": "2.0",
"app_name": "lambda-cron",
"stages": {
"dev": {
"lambda_timeout": 300
}
}
}
⚡ $ chalice deploy
Creating deployment package.
Creating IAM role: lambda-cron-dev
Creating lambda function: lambda-cron-dev-cron_tab
Resources deployed:
- Lambda ARN: arn:aws:lambda:ap-northeast-2:111111111111:function:lambda-cron-dev-cron_tab
  • Note: Chalice auto create IAM role lambda-cron-dev base on the need of the function, we can disable by adding "manage_iam_role": false but you must provide the IAM ARN in config.json eg. "iam_role_arn": "arn:aws:iam::111111111111:role/lambda-cron-dev"
  • Lambda function with Event Bridge trigger
Alt Text
Alt Text
Alt Text
  • Cloudwatch event rule
Alt Text
Alt Text
Alt Text
  • Cloudwatch log group
Alt Text
Alt Text
Alt Text
⚡ $ chalice delete
Deleting function: arn:aws:lambda:ap-northeast-2:111111111111:function:lambda-cron-dev-cron_tab
Deleting IAM role: lambda-cron-dev

Awesome Devops || CloudOpz