これまで当ブログでは Azure Web サイトに Ruby / Perl / Go など色んな言語を独自にインストールして、FastCGI や httpPlatformHandler などで動かしてきましたが、いい加減にランタイムのインストールがだるくなってきたので、インストールの処理を簡単にするためのスクリプトを作りました。
とりあえず Ruby / Perl / Go に関しては GitHub にリポジトリ作って置いてあります。
shibayan/AzureWebSitesSetupScripts · GitHub
README が中途半端で Ruby しか書いてないですが、このあたりは追い追い対応する方向で。
ぶっちゃけ、この時に作ったバッチファイルが思ったより楽だったので、色んな言語やバージョン用にちょっとずつ修正したものです。
複数バージョンや言語に対応するために、この時のスクリプトからインストールするディレクトリ名などを少し変えてあります。
例えば Ruby であれば以下のような感じに。
環境変数として RUBY_HOME とか追加するようにして、その環境変数を使って httpPlatformHandler で起動するようにすれば楽ですね。直接パスを指定すれば、同時に複数のバージョンを動かすことも出来そうです。
実際に Ruby や Perl などを使ったアプリケーションを動かすためには環境変数の追加などが必要になるので、そのあたり含めて自動的に行いたいです。なので、将来的には Site Extension としてインストーラー的なものを公開して、XHR で Kudu の REST API を叩くようにするのが、割と現実的かなと考えています。
rbenv 的なものがあった方が楽なんだろうなと思いつつ、今は特に何もしてません。
おまけ
Rails や Go を動かす時に必要な httpPlatformHandler の設定が含まれている Web.config も一緒に公開してあります。おまけで Go は revel を動かすバッチも入れてあります。
AzureWebSitesSetupScripts/Web.Rails.config at master · shibayan/AzureWebSitesSetupScripts · GitHub
AzureWebSitesSetupScripts/Web.config at master · shibayan/AzureWebSitesSetupScripts · GitHub
追い追い、Strawberry Perl を動かす時に必要なスクリプトも追加しておこうかと思ってます。