コンソールアプリ + Azure Web ジョブ で静的 Web サイトの作成

DevelopmentAzure

コンソールアプリで HTML ファイルを生成し、Azure Web アプリ(旧 Azure Websites)で閲覧できるものを作ってみます。定期的にアプリを実行し、その結果を Web で閲覧できるようにする、といったものを想定しています。

コンソールアプリ

コンソールアプリのコードです。Azure Web アプリのルートディレクトリ(%WEBROOT_PATH%)に HTML ファイルを保存しているところがポイントです。


Module MainModule
Sub Main()
Dim path = IO.Path.Combine(Environment.ExpandEnvironmentVariables("%WEBROOT_PATH%"), "Default.html")
IO.File.WriteAllText(path, "<body>" & Now.ToString & "</body>", Text.Encoding.UTF8)
End Sub
End Module

view raw

MainModule.vb

hosted with ❤ by GitHub

このコードでは、Web アプリのルートディレクトリに、実行時の時刻を表示する Default.html を作成します。

Azure Web ジョブの登録

Azure Web アプリに、Web ジョブとしてコンソールアプリを登録します。

Visual Studio のソリューションエクスプローラーのプロジェクトのコンテキストメニューから「Azure WebJob として発行」をクリックし、手続きをはじめます。

Azure Web ジョブ

スケジュールなどを設定します。次の画面は、はじめて発行するときのみ表示されます(一度設定すると My Project\webjob-publish-settings.json に情報が記録されています)。

Azure Web ジョブ

まだ、この時点では Web に発行されていません。

Azure Web アプリの発行

続いて、Web ジョブを登録する Web アプリを指定します。今回は新規に作成します。

Azure Web ジョブ

Azure Web ジョブ

Azure Web ジョブ

Azure Web ジョブ

以上まで進めると、指定した Web アプリに、作成したコンソールアプリが Web ジョブとして登録されます。スケジュールを指定した場合、その通りにアプリが実行されます。

実行結果

コンソールアプリで出力された HTML ファイルが閲覧できます。

Azure Web ジョブ

補足: 実行とログ

とりあえず Web ジョブをすぐ実行するには、https://manage.windowsazure.com/ の Web アプリの「WEB ジョブ」タブ画面からできます。ジョブ名のリンク先から、ジョブを呼び出す URL の取得・設定も可能です。

Azure Web ジョブ

この画面の「ログ」列のリンクから、実行履歴も閲覧できます。

Azure Web ジョブ

補足: コンソールアプリの場所

コンソールアプリの実行ファイルは、/site/wwwroot/app_data/jobs/triggered または /site/wwwroot/app_data/jobs/continuous 以下のジョブ名のディレクトリにあります。

Azure Web ジョブ

※ FTP クライアントで見た図

DevelopmentAzure

Posted by jz5