Azure App Service で Web ジョブを使用してバックグラウンド タスクを実行するRun Background tasks with WebJobs in Azure App Service

概要Overview

Web ジョブは、Web アプリ、API アプリ、またはモバイル アプリと同じコンテキストでプログラムやスクリプトを実行できる Azure App Service の機能です。WebJobs is a feature of Azure App Service that enables you to run a program or script in the same context as a web app, API app, or mobile app. Web ジョブの使用に追加コストはかかりません。There is no additional cost to use WebJobs.

重要

Web ジョブは App Service on Linux ではまだサポートされていません。WebJobs is not yet supported for App Service on Linux.

この記事では、実行可能ファイルまたはスクリプトをアップロードする Web ジョブを Azure ポータルを使用してデプロイする方法について説明します。This article shows how to deploy WebJobs by using the Azure portal to upload an executable or script. Visual Studio を使用した Web ジョブの開発とデプロイ方法については、Visual Studio を使用した Web ジョブのデプロイに関する記事を参照してください。For information about how to develop and deploy WebJobs by using Visual Studio, see Deploy WebJobs using Visual Studio.

Azure WebJobs SDK と Web ジョブを使用して、多くのプログラミング タスクを単純化できます。The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. 詳細については、「 Azure Web ジョブ SDK とは」をご覧ください。For more information, see What is the WebJobs SDK.

Azure Functions は、プログラムとスクリプトを実行する別の方法を提供します。Azure Functions provides another way to run programs and scripts. Web ジョブと Functions の比較については、「Flow、Logic Apps、Functions、WebJobs の比較」を参照してください。For a comparison between WebJobs and Functions, see Choose between Flow, Logic Apps, Functions, and WebJobs.

Web ジョブの種類WebJob types

次の表で、継続的 Web ジョブとトリガーされる Web ジョブの違いを説明します。The following table describes the differences between continuous and triggered WebJobs.

継続的Continuous トリガーTriggered
Web ジョブが作成されるとすぐに開始します。Starts immediately when the WebJob is created. ジョブが終了しないようにするため、プログラムまたはスクリプトは、その動作を無限ループ内で実行します。To keep the job from ending, the program or script typically does its work inside an endless loop. ジョブが終了した場合でも、再開することができます。If the job does end, you can restart it. 手動またはスケジュールに従ってトリガーされたときにのみ開始します。Starts only when triggered manually or on a schedule.
Web アプリが実行されているすべてのインスタンスで実行されます。Runs on all instances that the web app runs on. 必要に応じて、Web ジョブを 1 つのインスタンスに制限できます。You can optionally restrict the WebJob to a single instance. Azure が負荷分散用に選択した 1 つのインスタンス上で実行されます。Runs on a single instance that Azure selects for load balancing.
リモート デバッグをサポートします。Supports remote debugging. リモート デバッグをサポートしません。Doesn't support remote debugging.

注意

Web アプリは、20 分間アクティビティがないとタイムアウトする可能性があります。A web app can time out after 20 minutes of inactivity. タイマーがリセットされるのは、実際の Web アプリに要求があった場合のみです。Only requests to the actual web app reset the timer. Azure portal でアプリの構成を表示したり、高度なツールのサイト (https://<app_name>.scm.azurewebsites.net) に対して要求を行っても、タイマーはリセットされません。Viewing the app's configuration in the Azure portal or making requests to the advanced tools site (https://<app_name>.scm.azurewebsites.net) don't reset the timer. アプリが継続的またはスケジュールに従って (タイマー トリガー) Web ジョブを実行する場合は、Always On を有効にして、Web ジョブが確実に実行されるようにします。If your app runs continuous or scheduled (Timer trigger) WebJobs, enable Always On to ensure that the WebJobs run reliably. この機能は、Basic、Standard、および Premium の価格レベルでのみ利用できます。This feature is available only in the Basic, Standard, and Premium pricing tiers.

スクリプトまたはプログラムでサポートされるファイルの種類Supported file types for scripts or programs

次のファイルの種類がサポートされます。The following file types are supported:

  • .cmd、.bat、.exe (Windows コマンドを使用).cmd, .bat, .exe (using Windows cmd)
  • .ps1 (PowerShell を使用).ps1 (using PowerShell)
  • .sh (Bash を使用).sh (using Bash)
  • .php (PHP を使用).php (using PHP)
  • .py (Python を使用).py (using Python)
  • .js (Node.js を使用).js (using Node.js)
  • .jar (Java を使用).jar (using Java)

継続的 Web ジョブを作成するCreate a continuous WebJob

  1. Azure ポータルで、App Service Web アプリ、API アプリ、またはモバイル アプリの App Service ページに移動します。In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. [Web ジョブ] を選択します。Select WebJobs.

    Web ジョブを選択する

  3. [Web ジョブ] ページで、 [追加] を選択します。In the WebJobs page, select Add.

    [Web ジョブ] ページ

  4. [Web ジョブの追加] 設定を、次の表に示されているように使用します。Use the Add WebJob settings as specified in the table.

    [Web ジョブの追加] ページ

    SettingSetting 値の例Sample value 説明Description  
    NameName myContinuousWebJobmyContinuousWebJob App Service アプリ内で一意の名前。A name that is unique within an App Service app. 名前は文字または数字で始まる必要があり、"-" と "" 以外の特殊文字を使用することはできません。Must start with a letter or a number and cannot contain special characters other than "-" and "".
    ファイルのアップロードFile Upload ConsoleApp.zipConsoleApp.zip 実行可能ファイルまたはスクリプト ファイルと、プログラムまたはスクリプトを実行するために必要な関連ファイルを含む .zip ファイル。A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. サポートされている実行可能ファイルまたはスクリプト ファイルの種類については、「サポートされるファイルの種類」セクションを参照してください。The supported executable or script file types are listed in the Supported file types section.
    TypeType 継続的Continuous Web ジョブの種類については、この記事の中で既に説明しています。The WebJob types are described earlier in this article.
    スケールScale 複数のインスタンスMulti instance 継続的 Web ジョブでのみ使用できます。Available only for Continuous WebJobs. プログラムまたはスクリプトがすべてのインスタンスで実行されるか、1 つのインスタンスだけで実行されるかどうかを決定します。Determines whether the program or script runs on all instances or just one instance. 複数のインスタンスで実行するオプションは、Free または Shared 価格レベルには適用されません。The option to run on multiple instances doesn't apply to the Free or Shared pricing tiers.
  5. Click OK.Click OK.

    [Web ジョブ] ページに新しい Web ジョブが表示されます。The new WebJob appears on the WebJobs page.

    Web ジョブの一覧

  6. 継続的 Web ジョブを開始または停止するには、一覧の Web ジョブを右クリックし、 [停止] または [開始] をクリックします。To stop or restart a continuous WebJob, right-click the WebJob in the list and click Stop or Start.

    継続的 Web ジョブを停止する

手動でトリガーされる Web ジョブを作成するCreate a manually triggered WebJob

  1. Azure ポータルで、App Service Web アプリ、API アプリ、またはモバイル アプリの App Service ページに移動します。In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. [Web ジョブ] を選択します。Select WebJobs.

    Web ジョブを選択する

  3. [Web ジョブ] ページで、 [追加] を選択します。In the WebJobs page, select Add.

    [Web ジョブ] ページ

  4. [Web ジョブの追加] 設定を、次の表に示されているように使用します。Use the Add WebJob settings as specified in the table.

    [Web ジョブの追加] ページ

    SettingSetting 値の例Sample value 説明Description  
    NameName myTriggeredWebJobmyTriggeredWebJob App Service アプリ内で一意の名前。A name that is unique within an App Service app. 名前は文字または数字で始まる必要があり、"-" と "" 以外の特殊文字を使用することはできません。Must start with a letter or a number and cannot contain special characters other than "-" and "".
    ファイルのアップロードFile Upload ConsoleApp.zipConsoleApp.zip 実行可能ファイルまたはスクリプト ファイルと、プログラムまたはスクリプトを実行するために必要な関連ファイルを含む .zip ファイル。A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. サポートされている実行可能ファイルまたはスクリプト ファイルの種類については、「サポートされるファイルの種類」セクションを参照してください。The supported executable or script file types are listed in the Supported file types section.
    TypeType トリガーTriggered Web ジョブの種類については、この記事の中で既に説明しています。The WebJob types are described earlier in this article.
    トリガーTriggers マニュアルManual
  5. Click OK.Click OK.

    [Web ジョブ] ページに新しい Web ジョブが表示されます。The new WebJob appears on the WebJobs page.

    Web ジョブの一覧

  6. Web ジョブを実行するには、一覧でその名前を右クリックし、 [実行] をクリックします。To run the WebJob, right-click its name in the list and click Run.

    Web ジョブの実行

スケジュールされた Web ジョブを作成するCreate a scheduled WebJob

  1. Azure ポータルで、App Service Web アプリ、API アプリ、またはモバイル アプリの App Service ページに移動します。In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. [Web ジョブ] を選択します。Select WebJobs.

    Web ジョブを選択する

  3. [Web ジョブ] ページで、 [追加] を選択します。In the WebJobs page, select Add.

    [Web ジョブ] ページ

  4. [Web ジョブの追加] 設定を、次の表に示されているように使用します。Use the Add WebJob settings as specified in the table.

    [Web ジョブの追加] ページ

    SettingSetting 値の例Sample value 説明Description  
    NameName myScheduledWebJobmyScheduledWebJob App Service アプリ内で一意の名前。A name that is unique within an App Service app. 名前は文字または数字で始まる必要があり、"-" と "" 以外の特殊文字を使用することはできません。Must start with a letter or a number and cannot contain special characters other than "-" and "".
    ファイルのアップロードFile Upload ConsoleApp.zipConsoleApp.zip 実行可能ファイルまたはスクリプト ファイルと、プログラムまたはスクリプトを実行するために必要な関連ファイルを含む .zip ファイル。A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. サポートされている実行可能ファイルまたはスクリプト ファイルの種類については、「サポートされるファイルの種類」セクションを参照してください。The supported executable or script file types are listed in the Supported file types section.
    TypeType トリガーTriggered Web ジョブの種類については、この記事の中で既に説明しています。The WebJob types are described earlier in this article.
    トリガーTriggers スケジュールScheduled スケジュールを確実に動作させるために、Always On 機能を有効にします。For the scheduling to work reliably, enable the Always On feature. Always On 機能は、Basic、Standard、および Premium の価格レベルでのみ利用できます。Always On is available only in the Basic, Standard, and Premium pricing tiers.
    CRON 式CRON Expression 0 0/20 * * * *0 0/20 * * * * CRON 式については、次のセクションで説明します。CRON expressions are described in the following section.
  5. Click OK.Click OK.

    [Web ジョブ] ページに新しい Web ジョブが表示されます。The new WebJob appears on the WebJobs page.

    Web ジョブの一覧

NCRONTAB 式NCRONTAB expressions

NCRONTAB 式は、ポータルで入力するか、settings.job ファイルを Web ジョブの .zip ファイルのルートに含めることができます。例を以下に示します。You can enter a NCRONTAB expression in the portal or include a settings.job file at the root of your WebJob .zip file, as in the following example:

{
    "schedule": "0 */15 * * * *"
}

詳細については、「Scheduling a triggered WebJob (トリガーされる Web ジョブのスケジュール設定)」を参照してください。To learn more, see Scheduling a triggered WebJob.

ジョブ履歴を表示するView the job history

  1. 履歴を表示する Web ジョブを選択し、 [ログ] ボタンを選択します。Select the WebJob you want to see history for, and then select the Logs button.

    [ログ] ボタン

  2. [WebJob Details](Web ジョブの詳細) ページで、詳細を確認する実行時間を選択します。In the WebJob Details page, select a time to see details for one run.

    Web ジョブの詳細

  3. [WebJob Run Details](Web ジョブの実行の詳細) ページで、 [出力の切り替え] を選択すると、ログの内容のテキストが表示されます。In the WebJob Run Details page, select Toggle Output to see the text of the log contents.

    Web ジョブ実行の詳細

    出力されるテキストを別のブラウザー ウィンドウに表示するには、 [ダウンロード] を選択します。To see the output text in a separate browser window, select download. テキスト自体をダウンロードするには、 [ダウンロード] を右クリックし、ブラウザーのオプションを使用してファイルの内容を保存します。To download the text itself, right-click download and use your browser options to save the file contents.

  4. Web ジョブの一覧に移動するには、ページの上部にある [Web ジョブ] 階層リンクを選択します。Select the WebJobs breadcrumb link at the top of the page to go to a list of WebJobs.

    [Web ジョブ] 階層リンク

    履歴ダッシュボードに表示された Web ジョブの一覧

次のステップNext steps

Azure WebJobs SDK と Web ジョブを使用して、多くのプログラミング タスクを単純化できます。The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. 詳細については、「 Azure Web ジョブ SDK とは」をご覧ください。For more information, see What is the WebJobs SDK.