pambda
v0.1.0
Published
Pluggable Lambda for AWS
Downloads
8
Readme
pambda
プラグイン構成可能な Lambda.
使い方
このパッケージを使うことで、以下のように、関数合成で Lambda ハンドラーを定義できる。
const { compose, createLambda } = require('pambda');
exports.handler = createLambda(
compose(
pambda1,
pambda2,
...
)
);
定義
Pambda
プラグイン可能な Lambda として以下の関数を Pambda という名前で定義する。
type Pambda = (next: Lambda) => Lambda
この関数は Lambda を返す。 その Lambda が次に呼び出すべき Lambda を引数 next で指定する。
next で次に実行する Lambda を指定できるので、1つの大きな Lambda を複数の小さな Lambda に分割して実装することができる。
Lambda
type Lambda = (event, context, callback) | (event, context) => Promise
Lambda は callback スタイルの関数と async function の両方に対応する。
Pambda の中で Lambda を呼び出す際には、どちらの形式の関数であっても動くようにする必要がある。
API
compose(...pambdas: Pambda[]): Pambda
指定した Pambda を合成した Pambda を返す。
合成された Pambda に最後に実行する Lambda を渡すと、最初の引数で指定した Pambda の Lambda が返される。 その Lambda を実行する事で引数で指定した順に Pambda 内の Lambda が実行される。
引数 pambdas
の中に identity
Pambda があった場合、それらは合成対象としない。
falsy な値も同様に無視される。これは以下のような環境変数に依存した処理で役に立つ。
compose(
process.env.AWS_SAM_LOCAL === 'true' && localOnlyPambda,
...
)
createLambda(pambda: Pambda): Lambda
指定した Pambda から Lambda を返す。 返された Lambda をメインのハンドラーとして export して使う。
この関数は渡された Pambda の引数 next に lambda-terminator を渡す。 lambda-terminator が実行されることは、Pambda にバグがあることを意味する。
identity: Pambda
何もしない Pambda.
関連パッケージ
- create-pambda-app
- pambda-404
- pambda-aws
- pambda-binary-support
- pambda-by-env
- pambda-cache
- pambda-cookie
- pambda-cwlogs
- pambda-env
- pambda-errorhandler
- pambda-github-fetch
- pambda-headers
- pambda-json-api
- pambda-jwt-authorizer
- pambda-logger
- pambda-path
- pambda-pug
- pambda-records
- pambda-redirect
- pambda-redux
- pambda-router
- pambda-s3-fetch
- pambda-serve-static
- pambda-tap
- pambda-terminator
License
MIT