Serverless Framework で AWS Lambda のローカル開発環境を整備する手順をご紹介します。
npm install --save-dev serverless-offline
serverless.yml
plugins:
- serverless-offline
functions:
test:
handler: handler.index
events:
- http:
path: testpath
method: get
上記のようなとき serverless offline start コマンドでプロジェクトを起動できます。
$ serverless offline start
Serverless: Starting Offline: undefined/undefined.
Serverless: Routes for crawling:
Serverless: GET /testpath
Serverless: (none)
Serverless: Offline listening on http://localhost:3000
curl http://localhost:3000/testpath
のようにアクセスすると handler.index を実行できます。
npm install --save-dev serverless-offline-scheduler
serverless.yml
plugins:
- serverless-offline
- serverless-offline-scheduler
functions:
test:
handler: handler.index
events:
- schedule: rate(1 minutes)
上記のようなとき events:schedule は serverless schedule コマンドで cron 形式で確認できます。
$ serverless schedule
Serverless: scheduler: scheduling test/handler with */1 * * * *
また、serverless offline start コマンドで実行できます。
$ serverless offline start
Serverless: scheduler: scheduling test/handler with */1 * * * *
Serverless: Starting Offline: undefined/undefined.
Serverless: Routes for index:
Serverless: (none)
Serverless: Offline listening on http://localhost:3000
Serverless: scheduler: running scheduled job: test
npm install --save-dev serverless-dynamodb-local
serverless.yml
plugins:
- serverless-dynamodb-local
- serverless-offline
- serverless-offline-scheduler
custom:
dynamodb:
start:
port: 8000
serverless-offline を利用している場合 serverless offline start コマンドで serverless-dynamodb-local も併せて起動できます。
serverless offline start
DynamoDB Local だけを起動したい場合 serverless dynamodb start コマンドで起動できます。
$ serverless dynamodb start
Dynamodb Local Started, Visit: http://localhost:8000/shell
http://localhost:8000/shell/ にアクセスすると DynamoDB JavaScript Shell をブラウザから操作できます。
以上、Serverless Framework で AWS Lambda のローカル開発環境を整備したい、現場からお送りしました。