次の方法で共有


チュートリアル: スケジュールされた Web ジョブをビルドする

WebJobs は、Web アプリと同じインスタンスでプログラムおよびスクリプトを実行できるようにする Azure App Service の機能です。 すべての App Service プランでは、追加料金なしで WebJobs がサポートされます。 このチュートリアルでは、任意の開発スタックを使用して、スケジュールされた (トリガーされた) Web ジョブを作成する手順について説明します。

[前提条件]

Web ジョブをローカルで準備する

  1. この手順では、基本的な .NET Web ジョブ プロジェクトを作成し、プロジェクト ルートに移動します。

    dotnet new console -n webjob –framework net9.0
    
    cd webjob
    
  2. 次に、Program.cs を、現在の時刻をコンソールに書き込む次のコードに置き換えます。

    using System; 
    
    class Program 
    { 
        static void Main() 
        { 
            DateTimeOffset now = DateTimeOffset.Now; 
            Console.WriteLine("Current time with is: " + now.ToString("hh:mm:ss tt zzz")); 
        } 
    }
    
  3. webjob ディレクトリから Web ジョブを実行して、現在の時刻がコンソールに出力されていることを確認します。

    dotnet run
    

    次のような出力が表示されます。

    Current time with is: 07:53:07 PM -05:00
    
  4. アプリが動作することを確認したら、アプリをビルドして親ディレクトリに移動します。

    dotnet build --self-contained
    
    cd ..
    
  5. 次に、次のコードで run.sh を作成します。

    #!/bin/bash
    
    dotnet webjob/bin/Debug/net9.0/webjob.dll 
    
  6. 今度は、次に示すようにすべてのファイルを .zip にパッケージ化します。

    zip webjob.zip run.sh webjob/bin/Debug/net9.0/*
    

スケジュールされた Web ジョブを Azure で作成する

  1. Azure portal で App Service アプリの [App Service] ページに移動します。

  2. 左側のウィンドウで [Web ジョブ] を選択し、[追加] を選択します。

    ポータルで App Service アプリに Web ジョブ (スケジュールされた Web ジョブ) を追加する方法を示すスクリーンショット。

  3. 表で指定されている [Web ジョブの追加] 設定を入力し、[Web ジョブの作成] を選択します。 [ファイルのアップロード] では、先ほど作成またはダウンロードした .zip ファイルを選択してください。

    App Service アプリでスケジュールされた Web ジョブを構成する方法を示すスクリーンショット。

    設定 価値 説明
    名前 ウェブジョブ Web ジョブ名。 文字または数字で始まる必要があり、"-" と "_" 以外の特殊文字を使用することはできません。
    ファイルのアップロード webjob.zip 実行可能ファイルまたはスクリプト ファイルを含む .zip ファイル。 サポートされているファイルの種類については、「サポートされるファイルの種類」セクションを参照してください。
    タイプ トリガー Web ジョブを実行するタイミングを指定します: [継続] または [トリガー]。
    トリガー スケジュール済み [予定] または [手動]。 スケジュールを確実に機能させるには、[Always on] が有効になっていることを確認してください。
    CRON 式 0 0/1 * * * * このクイックスタートでは、1 分ごとに実行されるスケジュールを使用します。 構文の詳細については、「CRON 式」を参照してください。
  4. [Web ジョブ] ページに新しい Web ジョブが表示されます。 Web ジョブが追加されたというメッセージが表示されても、表示されない場合は、[更新] を選択します。

  5. スケジュールされた Web ジョブは、CRON 式で定義されたスケジュールで実行されます。

    Azure portal で手動でスケジュールされた Web ジョブを実行する方法を示すスクリーンショット。

WebJobs は、Web アプリと同じインスタンスでプログラムおよびスクリプトを実行できるようにする Azure App Service の機能です。 すべての App Service プランでは、追加料金なしで WebJobs がサポートされます。 このサンプルでは、スケジュールされた (トリガーされた) Web ジョブを使用して、1 分に 1 回システム時刻を出力します。

[前提条件]

サンプル Web ジョブをダウンロードする

ビルド済みのサンプル プロジェクトをダウンロードして、すぐに開始できます。 サンプルには、webjob.pyrun.sh の 2 つのファイルが含まれています。

Python スクリプト webjob.py は、次に示すように現在の時刻をコンソールに出力します。

import datetime 

current_datetime = datetime.datetime.now() 
print(current_datetime) # Output: 2025-03-27 10:27:21.240752 

ファイル run.sh は、次に示すように WebJob.py を呼び出します。

#!/bin/bash
/opt/python/3/bin/python3.13 webjob.py

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

  1. Azure portal で App Service アプリの [App Service] ページに移動します。

  2. 左側のウィンドウで [Web ジョブ] を選択し、[追加] を選択します。

    ポータルで App Service アプリに Web ジョブ (スケジュールされた Web ジョブ) を追加する方法を示すスクリーンショット。

  3. 表で指定されている [Web ジョブの追加] 設定を入力し、[Web ジョブの作成] を選択します。 [ファイルのアップロード] では、「サンプル Web ジョブをダウンロードする」セクションで先ほどダウンロードした .zip ファイルを選択してください。

    App Service アプリでスケジュールされた Web ジョブを構成する方法を示すスクリーンショット。

    設定 価値 説明
    名前 ウェブジョブ Web ジョブ名。 文字または数字で始まる必要があり、"-" と "_" 以外の特殊文字を使用することはできません。
    ファイルのアップロード App-Service-Python-WebJobs-Quickstart-Main.zip 実行可能ファイルまたはスクリプト ファイルを含む .zip ファイル。 サポートされているファイルの種類については、「サポートされるファイルの種類」セクションを参照してください。
    タイプ トリガー Web ジョブを実行するタイミングを指定します: [継続] または [トリガー]。
    トリガー スケジュール済み [予定] または [手動]。 スケジュールを確実に機能させるには、[Always on] が有効になっていることを確認してください。
    CRON 式 0 0/1 * * * * このクイックスタートでは、1 分ごとに実行されるスケジュールを使用します。 構文の詳細については、「CRON 式」を参照してください。
  4. [Web ジョブ] ページに新しい Web ジョブが表示されます。 Web ジョブが追加されたというメッセージが表示されても、表示されない場合は、[更新] を選択します。

  5. スケジュールされた Web ジョブは、CRON 式で定義されたスケジュールで実行されます。

    Azure portal で手動でスケジュールされた Web ジョブを実行する方法を示すスクリーンショット。

WebJobs は、Web アプリと同じインスタンスでプログラムおよびスクリプトを実行できるようにする Azure App Service の機能です。 すべての App Service プランでは、追加料金なしで WebJobs がサポートされます。 このサンプルでは、スケジュールされた (トリガーされた) Web ジョブを使用して、1 分に 1 回システム時刻を出力します。

[前提条件]

サンプル Web ジョブをダウンロードする

ビルド済みのサンプル プロジェクトをダウンロードして、すぐに開始できます。 サンプルには、webjob.jsrun.sh の 2 つのファイルが含まれています。

JavaScript webjob.js は、次に示すように現在の時刻をコンソールに出力します。

// Import the 'Date' object from JavaScript
const currentTime = new Date();

// Format the time as a string
const formattedTime = currentTime.toLocaleTimeString();

// Output the formatted time to the console
console.log(`Current system time is: ${formattedTime}`);

ファイル run.sh は、次に示すように webjob.js を呼び出します。

#!/bin/bash

node webjob.js

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

  1. Azure portal で App Service アプリの [App Service] ページに移動します。

  2. 左側のウィンドウで [Web ジョブ] を選択し、[追加] を選択します。

    ポータルで App Service アプリに Web ジョブ (スケジュールされた Web ジョブ) を追加する方法を示すスクリーンショット。

  3. 表で指定されている [Web ジョブの追加] 設定を入力し、[Web ジョブの作成] を選択します。 [ファイルのアップロード] では、「サンプル Web ジョブをダウンロードする」セクションで先ほどダウンロードした .zip ファイルを選択してください。

    App Service アプリでスケジュールされた Web ジョブを構成する方法を示すスクリーンショット。

    設定 価値 説明
    名前 ウェブジョブ Web ジョブ名。 文字または数字で始まる必要があり、"-" と "_" 以外の特殊文字を使用することはできません。
    ファイルのアップロード App-Service-Node-WebJobs-Quickstart-Main.zip 実行可能ファイルまたはスクリプト ファイルを含む .zip ファイル。 サポートされているファイルの種類については、「サポートされるファイルの種類」セクションを参照してください。
    タイプ トリガー Web ジョブを実行するタイミングを指定します: [継続] または [トリガー]。
    トリガー スケジュール済み [予定] または [手動]。 スケジュールを確実に機能させるには、[Always on] が有効になっていることを確認してください。
    CRON 式 0 0/1 * * * * このクイックスタートでは、1 分ごとに実行されるスケジュールを使用します。 構文の詳細については、「CRON 式」を参照してください。
  4. [Web ジョブ] ページに新しい Web ジョブが表示されます。 Web ジョブが追加されたというメッセージが表示されても、表示されない場合は、[更新] を選択します。

  5. スケジュールされた Web ジョブは、CRON 式で定義されたスケジュールで実行されます。

    Azure portal で手動でスケジュールされた Web ジョブを実行する方法を示すスクリーンショット。

WebJobs は、Web アプリと同じインスタンスでプログラムおよびスクリプトを実行できるようにする Azure App Service の機能です。 すべての App Service プランでは、追加料金なしで WebJobs がサポートされます。 このサンプルでは、スケジュールされた (トリガーされた) Web ジョブを使用して、1 分に 1 回システム時刻を出力します。

[前提条件]

Web ジョブを準備する

サンプルの Java Web ジョブが作成されました。 このセクションでは、サンプルを確認し、Maven を使用して .JAR ファイルをビルドします。

サンプルを確認する

project/src/main/java/webjob/HelloWorld.java にある Java プロジェクトは、メッセージと現在の時刻をコンソールに出力します。

import java.time.LocalDateTime; 

public class HelloWorld { 

    public static void main(String[] args) { 

        System.out.println("------------------------------------------------------------"); 
        System.out.println("Hello World from WebJob: " + LocalDateTime.now()); 
        System.out.println("------------------------------------------------------------"); 
    } 
} 

Java Web ジョブをビルドする

  1. run.sh スクリプトは、Maven 構成で設定された名前の jar を実行します。 このスクリプトは、Web ジョブがトリガーされたときに実行されます。

    java -jar webjob-artifact-1.0.0.jar
    
  2. 次に、Java プロジェクトをコンパイルして実行可能ファイル .jar を生成します。 これを行う方法は複数ありますが、この例では Maven を使用します。 project/ ディレクトリから次のコマンドを実行します。

    mvn install 
    mvn package 
    

    ビルドが成功すると、jar ファイルは project/target/webjob-artifact-1.0.0.jar に配置されます。

  3. mv project/target/webjob-artifact-1.0.0.jar . を実行して、jar ファイルを git リポジトリのルートに移動します。次に、アプリケーションを .zip ファイルとしてパッケージ化します。

    zip webjob.zip run.sh webjob-artifact-1.0.0.jar 
    

スケジュールされた Web ジョブを Azure で作成する

  1. Azure portal で App Service アプリの [App Service] ページに移動します。

  2. 左側のウィンドウで [Web ジョブ] を選択し、[追加] を選択します。

    ポータルで App Service アプリに Web ジョブ (スケジュールされた Web ジョブ) を追加する方法を示すスクリーンショット。

  3. 表で指定されている [Web ジョブの追加] 設定を入力し、[Web ジョブの作成] を選択します。 [ファイルのアップロード] では、「サンプル Web ジョブをダウンロードする」セクションで先ほどダウンロードした .zip ファイルを選択してください。

    App Service アプリでスケジュールされた Web ジョブを構成する方法を示すスクリーンショット。

    設定 価値 説明
    名前 ウェブジョブ Web ジョブ名。 文字または数字で始まる必要があり、"-" と "_" 以外の特殊文字を使用することはできません。
    ファイルのアップロード webjob.zip 実行可能ファイルまたはスクリプト ファイルを含む .zip ファイル。 サポートされているファイルの種類については、「サポートされるファイルの種類」セクションを参照してください。
    タイプ トリガー Web ジョブを実行するタイミングを指定します: [継続] または [トリガー]。
    トリガー スケジュール済み [予定] または [手動]。 スケジュールを確実に機能させるには、[Always on] が有効になっていることを確認してください。
    CRON 式 0 0/1 * * * * このクイックスタートでは、1 分ごとに実行されるスケジュールを使用します。 構文の詳細については、「CRON 式」を参照してください。
  4. [Web ジョブ] ページに新しい Web ジョブが表示されます。 Web ジョブが追加されたというメッセージが表示されても、表示されない場合は、[更新] を選択します。

  5. スケジュールされた Web ジョブは、CRON 式で定義されたスケジュールで実行されます。

    Azure portal で手動でスケジュールされた Web ジョブを実行する方法を示すスクリーンショット。

WebJobs は、Web アプリと同じインスタンスでプログラムおよびスクリプトを実行できるようにする Azure App Service の機能です。 すべての App Service プランでは、追加料金なしで WebJobs がサポートされます。 このサンプルでは、スケジュールされた (トリガーされた) Web ジョブを使用して、1 分に 1 回システム時刻を出力します。

[前提条件]

  • アクティブなサブスクリプションを持つ Azure アカウント。 無料でアカウントを作成できます
  • Linux 上の既存の App Service PHP アプリ。 このクイック スタートでは、PHP アプリを使用します。
  • アプリで [Always on] を有効にする必要があります。
  • アプリ設定 WEBSITE_SKIP_RUNNING_KUDUAGENTfalse に設定されていることを確認します。

サンプル Web ジョブをダウンロードする

ビルド済みのサンプル プロジェクトをダウンロードして、すぐに開始できます。 サンプルには、webjob.phprun.sh の 2 つのファイルが含まれています。

PHP スクリプト webjob.php は、次に示すように現在の時刻をコンソールに出力します。

<?php
// Get the current time
$current_time = date("Y-m-d H:i:s");

// Display the current time
echo "The current time is: " . $current_time;
?>

ファイル run.sh は、次に示すように webjob.php を呼び出します。

#!/bin/bash

php -f webjob.php

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

  1. Azure portal で App Service アプリの [App Service] ページに移動します。

  2. 左側のウィンドウで [Web ジョブ] を選択し、[追加] を選択します。

    ポータルで App Service アプリに Web ジョブ (スケジュールされた Web ジョブ) を追加する方法を示すスクリーンショット。

  3. 表で指定されている [Web ジョブの追加] 設定を入力し、[Web ジョブの作成] を選択します。 [ファイルのアップロード] では、「サンプル Web ジョブをダウンロードする」セクションで先ほどダウンロードした .zip ファイルを選択してください。

    App Service アプリでスケジュールされた Web ジョブを構成する方法を示すスクリーンショット。

    設定 価値 説明
    名前 ウェブジョブ Web ジョブ名。 文字または数字で始まる必要があり、"-" と "_" 以外の特殊文字を使用することはできません。
    ファイルのアップロード App-Service-PHP-WebJobs-Quickstart-Main.zip 実行可能ファイルまたはスクリプト ファイルを含む .zip ファイル。 サポートされているファイルの種類については、「サポートされるファイルの種類」セクションを参照してください。
    タイプ トリガー Web ジョブを実行するタイミングを指定します: [継続] または [トリガー]。
    トリガー スケジュール済み [予定] または [手動]。 スケジュールを確実に機能させるには、[Always on] が有効になっていることを確認してください。
    CRON 式 0 0/1 * * * * このクイックスタートでは、1 分ごとに実行されるスケジュールを使用します。 構文の詳細については、「CRON 式」を参照してください。
  4. [Web ジョブ] ページに新しい Web ジョブが表示されます。 Web ジョブが追加されたというメッセージが表示されても、表示されない場合は、[更新] を選択します。

  5. スケジュールされた Web ジョブは、CRON 式で定義されたスケジュールで実行されます。

    Azure portal で手動でスケジュールされた Web ジョブを実行する方法を示すスクリーンショット。

CRON 式の実行に使用される既定のタイム ゾーンは、協定世界時 (UTC) です。 別のタイム ゾーンに基づいて CRON 式を実行するには、ご使用の関数アプリ用に WEBSITE_TIME_ZONE という名前のアプリ設定を作成します。 詳細については、「NCRONTAB タイムゾーン」を参照してください。

Web ジョブのログを確認する

先ほど作成した Web ジョブのログを選択します。

ポータル内の App Service アプリで Web ジョブ (スケジュールされた Web ジョブ) のログを表示する方法を示すスクリーンショット。

出力は次のようになります。

Web ジョブのログの出力を示すスクリーンショット。

クリーンアップ

Web ジョブを削除するには、ポータルで Web ジョブを選択し、[ Delete] を選択します。

ポータルで Web ジョブを削除する方法を示すスクリーンショット。

次のステップ

トリガーや展開オプションなど、より高度な WebJob シナリオを探索する