@serverless/schedule

 

Usage no npm install needed!

<script type="module">
  import serverlessSchedule from 'https://cdn.skypack.dev/@serverless/schedule';
</script>

README

serverless scheduled task aws lambda

schedule

 

Instantly run scheduled cron jobs on AWS Lambda using Serverless Components.

 

  1. Install
  2. Create
  3. Configure
  4. Deploy

 

1. Install

$ npm install -g serverless

2. Create

$ mkdir schedule && cd schedule

The directory should look something like this:

|- index.js
|- serverless.yml
|- package.json # optional
|- .env         # your AWS api keys

the .env file should look like this

AWS_ACCESS_KEY_ID=XXX
AWS_SECRET_ACCESS_KEY=XXX

The index.js file should contain your scheduling code. It must export a module named task:

module.exports.task = async (e, ctx, cb) => {
  console.log('running in schedule')
}

3. Configure

All the following inputs are optional. However, they allow you to configure your Lambda compute instance and pass environment variables.

# serverless.yml

mySchedule:
  component: "@serverless/schedule"
  inputs:
    code:
      src: ./code # The root folder containing the index.js file
      build: build # The folder within your 'src' directory containing your built artifacts
      hook: npm run build # A hook to build/test/do anything

    handler: foo.bar # optional - specifies handler file & function. eg: foo.js instead of index.js and bar instead of task
    runtime: nodejs10.x # default

    # you can provide a rate either as rate with
    # this format <amount><unit-character> (e.g. 1s, 5m, 2h)
    # or a cron expresion  
    rate: 5m
    enabled: true # this is the default value
    region: us-east-1
    memory: 128
    timeout: 10
    env:
      TABLE_NAME: my-table

4. Deploy

$ serverless

 

New to Components?

Checkout the Serverless Components repo for more information.