|
4 | 4 |  |
5 | 5 |
|
6 | 6 | **LambdaCron** is a serverless cron tool. It provides a way to run scheduled tasks |
7 | | -on the AWS cloud, all managed by a command line tool ([LambdaCron CLI](#lambdacron-cli)). |
8 | | - |
9 | | -Tasks are scheduled using the same syntax for expressions as Linux |
10 | | -[crontab](https://help.ubuntu.com/community/CronHowto). |
11 | | - |
12 | | -**LambdaCron** offers 4 different types of tasks: |
| 7 | +on the AWS cloud, tasks defined in YAML and all managed by a command line tool |
| 8 | +([LambdaCron CLI](#lambdacron-cli)). Tasks are scheduled using the same syntax for |
| 9 | +expressions as Linux [crontab](https://help.ubuntu.com/community/CronHowto). |
| 10 | + |
| 11 | +Traditionally, to run scheduled tasks you need set up cron jobs in the server where |
| 12 | +you want them to run. Nonetheless this doesn't make sense anymore when building a |
| 13 | +serverless architecture, where servers are transparent to users. In order to solve this |
| 14 | +AWS provide [CloudWatch Events](http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html), |
| 15 | +which allow you to run scheduled events (called rules) to invoke some others AWS services in |
| 16 | +a cron-like way. It is useful tool but it is detached from the traditional way to manage |
| 17 | +and run cron jobs and it has some [limitations](http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/cloudwatch_limits_cwe.html) |
| 18 | + |
| 19 | +LambdaCron is trying to fill in the gap providing a tool to define cron jobs in a |
| 20 | +user friendly manner and manage them how developers are used to. With LambdaCron you |
| 21 | +define each of your tasks in an independent YAML file including the cron expression. |
| 22 | +Once you tasks are defined you will manage them using a command line tool, from your |
| 23 | +terminal without the need to access to the AWS console. |
| 24 | + |
| 25 | +LambdaCron offers 4 different types of tasks: |
13 | 26 |
|
14 | 27 | * **Queue task**: send message to AWS SQS queue. |
15 | 28 | * **Lambda task**: invoke AWS Lambda function. |
16 | 29 | * **Batch task**: submit AWS Batch job. |
17 | 30 | * **HTTP task**: send HTTP requests (GET & POST). |
18 | 31 |
|
19 | | -Tasks are defined in YAML files and are stored in a S3 bucket. |
| 32 | +Currently it provides as target 3 AWS services and HTTP requests, but what is most |
| 33 | +important is that it is ready be extended for other services and, in general, it is |
| 34 | +ready to reach any service available by an API. |
20 | 35 |
|
21 | 36 | ## LambdaCron CLI |
22 | 37 |
|
@@ -243,8 +258,8 @@ Parameters: |
243 | 258 |
|
244 | 259 | ## Tasks |
245 | 260 |
|
246 | | -Tasks are defined in YAML files, with each task in an independent file. A task must follow |
247 | | -the JSON schema provided in this repo: [schema](./lambda_cron/schema.json). |
| 261 | +Tasks are defined in YAML files (each task in an independent file) and stored in S3. |
| 262 | +A task must follow the JSON schema provided in this repo: [schema](./lambda_cron/schema.json). |
248 | 263 |
|
249 | 264 | All tasks must contain the following keys and values: |
250 | 265 |
|
@@ -328,7 +343,8 @@ All parameters for the method can be set in the task definition. |
328 | 343 |
|
329 | 344 | ### HTTP task |
330 | 345 |
|
331 | | -It sends an HTTP request (GET or POST). |
| 346 | +It sends an HTTP request (GET or POST). This task allows to reach any service |
| 347 | +that provides an API. |
332 | 348 | The task definition must contain the following keys: |
333 | 349 |
|
334 | 350 | * **type**: *http* |
|
0 commit comments