Netlify Functions の Zero configuration と Netlify CLI
Netlify Functions は AWS Lambda を基盤とした API のプラットフォームです。
利用は非常に簡単ですが、最近さらに Zero configuration という仕組みが導入されました。規定のディレクトリ (netlify/functions) にコードを配置するだけで、コミットしたら Netlify が自動的に Functions をビルド・デプロイしてくれます。
これまでは、netlify-lambda を devDependencies に追加して、netlify.toml で build command や functions のディレクトリなどを指定していました。
[build] command = "npm run build" functions = "resource/api"
試しに functions のコードを netlify/functions に移動し、netlify.toml を消し、package.json の build script は 文字列を echo するだけのものにして git commit / push してみました。
npm run build は実行されますが、これとは別に Functions bundling が開始され、netlify/functions 配下の hello.js が検出され bundle されました。

ちゃんとデプロイされました。

これで、Zero configuration の動作は確認できました。
これまで、Functions のローカル開発は netlify-lambda serve <dir> を実行することで行っていました。しかしこの実行には netlify.toml の作成が必須であり、Zero configuration と矛盾します。*1
netlify-lambda のドキュメントを読んでみました。
netlify-lambda serve (legacy command)
This command is pretty much superceded by Netlify Dev. We only keep it around for legacy/backward compatibility support reasons.
どうやら serve は legacy command という位置付けのようです(create-react-app などと共に使用するようなユースケースのため)。
そして Netlify Dev に置き換えられるとのことです。
Netlify Dev ってなんぞっていうところですが、文字通り Netlify を使った開発をローカルで行うための環境でした。
Netlify CLI をインストールして Netlify にログインした状態で使います。
インストール
% npm install netlify-cli -g
ログイン
% netlify login
ブラウザが開くので Authorize をクリックするとログイン状態になります。

プロジェクトディレクトリで netlify dev を叩くと

localhost:8888 でプロジェクトのコンテンツが Serving されているようです。Netlify Functions の規定のパスは、.netlify/functions/ なので、API を呼び出してみると結果が取得できました。

Netlify CLI には他にも多くのサブコマンドが実装されています。package.json に何も書かなくてもよいので、まさに Zero configuration です。
Vue を使う開発でも、Vue の開発用サーバと netlify dev を別 port で動かし proxy の設定だけしておけば、netlify-lambda は要らないだろうなと思っています。
*1:netlify/functions 以外のディレクトリに配置したい場合飲み netlify.toml を作成することになっています。