コンソールアプリ + Azure Web ジョブ で静的 Web サイトの作成
コンソールアプリで HTML ファイルを生成し、Azure Web アプリ(旧 Azure Websites)で閲覧できるものを作ってみます。定期的にアプリを実行し、その結果を Web で閲覧できるようにする、といったものを想定しています。
コンソールアプリ
コンソールアプリのコードです。Azure Web アプリのルートディレクトリ(%WEBROOT_PATH%)に HTML ファイルを保存しているところがポイントです。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
このコードでは、Web アプリのルートディレクトリに、実行時の時刻を表示する Default.html を作成します。
Azure Web ジョブの登録
Azure Web アプリに、Web ジョブとしてコンソールアプリを登録します。
Visual Studio のソリューションエクスプローラーのプロジェクトのコンテキストメニューから「Azure WebJob として発行」をクリックし、手続きをはじめます。
スケジュールなどを設定します。次の画面は、はじめて発行するときのみ表示されます(一度設定すると My Project\webjob-publish-settings.json に情報が記録されています)。
まだ、この時点では Web に発行されていません。
Azure Web アプリの発行
続いて、Web ジョブを登録する Web アプリを指定します。今回は新規に作成します。
以上まで進めると、指定した Web アプリに、作成したコンソールアプリが Web ジョブとして登録されます。スケジュールを指定した場合、その通りにアプリが実行されます。
実行結果
コンソールアプリで出力された HTML ファイルが閲覧できます。
補足: 実行とログ
とりあえず Web ジョブをすぐ実行するには、https://manage.windowsazure.com/ の Web アプリの「WEB ジョブ」タブ画面からできます。ジョブ名のリンク先から、ジョブを呼び出す URL の取得・設定も可能です。
この画面の「ログ」列のリンクから、実行履歴も閲覧できます。
補足: コンソールアプリの場所
コンソールアプリの実行ファイルは、/site/wwwroot/app_data/jobs/triggered または /site/wwwroot/app_data/jobs/continuous 以下のジョブ名のディレクトリにあります。
※ FTP クライアントで見た図