AWS Lambda ローカル開発環境を整備する手順 [Serverless Framework 編]

Serverless Framework で AWS Lambda のローカル開発環境を整備する手順をご紹介します。

Serverless Framework

ローカル開発環境のための npm 一覧

serverless-offline 利用例

インストール方法

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 を実行できます。

serverless-offline-scheduler 利用例

インストール方法

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<ul>
 
{ result: 'OK' }

serverless-dynamodb-local 利用例

インストール方法

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 のローカル開発環境を整備したい、現場からお送りしました。

参考情報