AWS job scheduler with SAM ( POC )
Budget: $240 – $2,000 HKD
# Background
Design and build a generic AWS job scheduler to automate planned and repeating tasks using Lambda.
For example, system backups, monitoring system status, sending notifications to end users or other systems, data analytics reports, deleting unnecessary resources, etc.
# Functional Requirements
## Calendar-Based Scheduling
Able to schedule Lambda tasks for specific dates using timestamp in ms.
## Cron-job
Able to schedule lambda tasks
e.g. run at 10:00 a.m. every day
## Multi-step functions
Able to trigger a sequence of AWS Lambda functions
Use case 1 : Start -> Get the weekly login records of an user at the end of week -> if login more than 5 days, send reward to the user -> End
Able to execute tasks in parallel
e.g. refer to use case 1, if there are 100000 users, need to run the multi-step functions 100000 times at the end of the week
## Management API
Able to group job by tag, one job can have multiple tags
Able to centralise manage all the scheduled job through API, metadata should be stored in DynamoDB
Able to manage scheduled job such as pause, reschedule, cancel, and execute immediately.
Job Status : Draft, Scheduled, Failed, Completed
Job Type: single-step, multi-step
Remark
1. please provide Lambda sample code in Typescript
Design and build a generic AWS job scheduler to automate planned and repeating tasks using Lambda.
For example, system backups, monitoring system status, sending notifications to end users or other systems, data analytics reports, deleting unnecessary resources, etc.
# Functional Requirements
## Calendar-Based Scheduling
Able to schedule Lambda tasks for specific dates using timestamp in ms.
## Cron-job
Able to schedule lambda tasks
e.g. run at 10:00 a.m. every day
## Multi-step functions
Able to trigger a sequence of AWS Lambda functions
Use case 1 : Start -> Get the weekly login records of an user at the end of week -> if login more than 5 days, send reward to the user -> End
Able to execute tasks in parallel
e.g. refer to use case 1, if there are 100000 users, need to run the multi-step functions 100000 times at the end of the week
## Management API
Able to group job by tag, one job can have multiple tags
Able to centralise manage all the scheduled job through API, metadata should be stored in DynamoDB
Able to manage scheduled job such as pause, reschedule, cancel, and execute immediately.
Job Status : Draft, Scheduled, Failed, Completed
Job Type: single-step, multi-step
Remark
1. please provide Lambda sample code in Typescript