まだ alpha 版の機能です。Document は以下にあります。
サンプル構成の作成
$ mkdir netlam
$ npm init
$ npm i babel-core babel-loader netlify-lambda
babel 関連ライブラリが必要なのはバグかなにかか。後で修正されると思う。
netlify-lamdba
は netlify で Lamdba デプロイ時にビルドしたり ローカルでエミュレートしたりしてくれる便利なコマンドです。
とりあえず以下のような構成でファイルを配置してみる。
├── README.md
├── netlify.toml
├── package.json
├── public
│ └── index.html
└── src
├── fuga.js
└── hello.js
public は netlify 静的サイトホスティングで必要な構成です。とりあえずindex.html をUPしておく。
netlify.toml には以下のような形で Lamdba ビルド構成を記述していく。
[build]
Command = "npm run build"
functions = "functions"
publish = "public"
functions には lamdba配信用のスクリプトがあるフォルダ名を記述。ここで指定したフォルダ名はビルド時に自動的に生成されるので存在しなくてOK
src/hello.js にはLamdba 用のスクリプトを記述
exports.handler = function(event, context, callback) {
callback(null, {
statusCode: 200,
body: "Hello, World"
});
}
最後にビルド用のコマンドを package.json に
{
....
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "netlify-lambda build src"
},
....
}
netlify-lambda build src
は srcをコンパイルして、netlify.toml で指定したディレクトリに展開してくれるコマンド
この状態で netlify-lambda serve src
コマンドを叩いて、エミュレートサーバをローカルで建てたれる。
Deploy
デプロイ時のビルドコマンドは指定しなくてOK
無事にUPされると、Netlify のメニューの functions タブに、配信されている API の一覧と エントリURLが表示される。
console.logや実行された履歴などがログで見れるようになっていて結構便利