serverless-offline でサーバー起動時にエンドポイントをテストする

serverless-offline でサーバー起動時にスクリプトを実行する方法をメモ。 sls offline start コマンドに --exec オプションを指定する。

ヘルプから抜粋:

% yarn run sls offline --help
offline start ................. Simulates API Gateway to call your lambda functions offline using backward compatible initialization.
    --exec ............................. When provided, a shell script is executed when the server starts up, and the server will shut down after handling this command.

例えばサーバーを起動したあとに curl コマンドを叩くことができる。

yarn run sls offline start --exec "curl --fail 127.0.0.1:3000"

CircleCI の例ですが、こういう感じでエンドポイントにリクエストが通るかを雑にチェックすることができる。

- run:
    name: Check response
    command: yarn run sls offline start --exec "curl --fail 127.0.0.1:3000"
    when: always

Serverless Framework + TypeScript なプロジェクトを手っ取り早く始められるテンプレート的なプロジェクトでこの方法を使っています (宣伝)

github.com