やりました!
Azure Functions でオフィシャル サポート言語 (C#, Javascript, Java, Python, PowerShell, F#) 以外の言語 (以下 custom handler) が (プレビューながら) 使えるようになりました!
Announcing the preview of custom handlers! You can now bring your own language to Azure Functions!https://t.co/VplVDAAyPL
— Azure Functions (@AzureFunctions) 2020年3月18日
まだ試していないですけど、誤解を恐れず書いていきます。
大まかな理解
# 個人の見解です。
コチラが公式ドキュメント。 docs.microsoft.com
上のドキュメントやサンプル プロジェクトを読み解く (主に、図を眺める) と、
custom handler は Web サーバーとして動作し、Function Host から トリガー/入力バインディング を HTTP リクエストとして受け取り、レスポンスで返したものが戻り値/出力バインディングになる、という感じのようです。
Serverless かどうかは微妙ではありますが。
# Azure Functions には App Service Plan でのホスティングがあるので、FaaS ではあっても Serverless とは一致しないのかもしれません。
サンプル プロジェクト
サンプルのプロジェクトには、R, Rust, go の実装例があります。
他にも公式サポートされている Javascript や C# 、Python も、なぜかあります。
正直 node.js しか読めないので、それをベースにしての理解ですが、ルートに host.json と Web サーバーになるアプリケーションがあり、各関数のディレクトリーとその中に function.json があります。
Web サーバー アプリケーション内に関数処理の実装が含まれているので、各関数名のディレクトリーとその中の function.json は Azure Functions のプラットフォームに関数の宣言のようなものかもしれません。
もちろん、各言語の import の仕組みなどを使えば、関数処理と Web サーバー アプリケーションを分離して、関数のディレクトリー内に処理の実態も書くことも可能でしょう。
やりたいこと
とりあえずサンプルにない言語で試してみたいですね。