다음을 통해 공유


자습서: 예약된 WebJob 빌드

WebJobs는 Azure App Service의 기능으로 웹앱과 동일한 인스턴스에서 프로그램이나 스크립트를 실행할 수 있습니다. 모든 App Service 계획은 추가 비용 없이 WebJobs를 지원합니다. 이 자습서에서는 선호하는 개발 스택을 사용하여 예약된(트리거된) WebJob을 만드는 방법을 안내합니다.

필수 조건

  • 활성 구독이 있는 Azure 계정. 무료로 계정을 만듭니다.
  • 기존 App Service .NET 9 앱입니다.
  • Always on을 앱에서 항상 사용하도록 설정해야 합니다.
  • Windows 컨테이너 및 모든 Linux 앱의 경우 앱 설정 WEBSITE_SKIP_RUNNING_KUDUAGENT 이 .로 설정되어 있는지 확인합니다 false.

로컬에서 WebJob 준비

  1. 이 단계에서는 기본 .NET WebJob 프로젝트를 만들고 프로젝트 루트로 이동합니다.

    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 디렉토리에서 webjob을 실행하여 현재 시각이 콘솔에 출력되는지 확인합니다.

    dotnet run
    

    다음과 비슷한 결과가 나타나야 합니다.

    Current time with is: 07:53:07 PM -05:00
    
  4. 앱이 작동하는지 확인되면 빌드하고 부모 디렉터리로 이동합니다.

    dotnet publish -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true
    
  5. (Linux에만 해당) 프로젝트 루트에서 다음 코드를 사용하여 run.sh 빌드된 실행 파일을 실행하도록 만듭니다.

    #!/bin/bash
    
    ./webjob
    
  6. 이제 다음 명령에 표시된 대로 파일을 .zip 패키지합니다.

    zip -j webjob.zip bin/Release/net9.0/win-x64/publish/webjob.exe
    

Azure에서 예약된 WebJob 만들기

  1. Azure Portal에서 App Service 앱의 App Service 페이지로 이동합니다.

  2. 왼쪽 창에서 WebJobs를 선택한 다음, 추가를 선택합니다.

    포털(예약된 WebJob)의 App Service 앱에서 WebJob을 추가하는 방법을 보여 주는 스크린샷.

  3. 표에 지정된 대로 WebJob 추가 설정을 입력한 다음, Webjob 만들기를 선택합니다. 파일 업로드에서 이전에 만들거나 다운로드한 .zip 파일을 선택해야 합니다.

    App Service 앱에서 예약된 WebJob을 구성하는 방법을 보여 주는 스크린샷

    설정 가치 설명
    이름 웹잡 WebJob 이름입니다. 문자 또는 숫자로 시작해야 하며 "-" 및 "_" 이외의 특수 문자를 포함해서는 안 됩니다.
    파일 업로드 webjob.zip 실행 파일 또는 스크립트 파일이 포함된 .zip 파일입니다. 지원되는 파일 형식은 지원 파일 형식 섹션에 나열되어 있습니다.
    유형 자극받음 WebJob이 실행되는 시점을 지정합니다(연속 또는 트리거됨).
    트리거 예약됨 예약 또는 수동입니다. 일정이 안정적으로 작동하도록 Always on이 활성화되어 있는지 확인합니다.
    CRON 식 0 0/1 * * * * 이 빠른 시작에서는 1분마다 실행되는 일정을 사용합니다. 구문에 대한 자세한 내용은 CRON 식을 참조하세요.
  4. 새 WebJob이 WebJobs 페이지에 표시됩니다. WebJob이 추가되었지만 표시되지 않는다는 메시지가 표시되면 새로 고침을 선택합니다.

  5. 예약된 WebJob은 CRON 식에 정의된 일정에 따라 실행됩니다.

    Azure Portal에서 수동으로 예약된 WebJob을 실행하는 방법을 보여 주는 스크린샷

WebJobs는 Azure App Service의 기능으로 웹앱과 동일한 인스턴스에서 프로그램이나 스크립트를 실행할 수 있습니다. 모든 App Service 요금제는 추가 비용 없이 WebJobs를 지원합니다. 이 샘플에서는 예약된(트리거된) WebJob을 사용하여 1분마다 한 번씩 시스템 시간을 출력합니다.

필수 조건

  • 활성 구독이 있는 Azure 계정. 무료로 계정을 만듭니다.
  • 기존 Linux Python 앱입니다.
  • Always on을 앱에서 항상 사용하도록 설정해야 합니다.
  • 앱 설정 WEBSITE_SKIP_RUNNING_KUDUAGENTfalse로 설정되어 있는지 확인합니다.

샘플 웹 작업 준비

  1. 미리 빌드된 샘플 프로젝트를 다운로드 하여 빠르게 시작합니다. 샘플에는 아래와 같이 콘솔에 현재 시간을 출력하는 파일이 webjob.py포함되어 있습니다.

    import datetime 
    
    current_datetime = datetime.datetime.now() 
    print(current_datetime) # Output: 2025-03-27 10:27:21.240752
    
  2. 다운로드한 zip 파일을 추출한 다음 부모 디렉터리 없이 파일만 webjob.py 포함하는 새 zip 파일을 만듭니다. WebJobs를 사용하려면 실행 파일 또는 스크립트가 zip 파일의 루트에 있어야 합니다.

예약된 WebJob 만들기

  1. Azure Portal에서 App Service 앱의 App Service 페이지로 이동합니다.

  2. 왼쪽 창에서 WebJobs를 선택한 다음, 추가를 선택합니다.

    포털(예약된 WebJob)의 App Service 앱에서 WebJob을 추가하는 방법을 보여 주는 스크린샷.

  3. 표에 지정된 대로 WebJob 추가 설정을 입력한 다음, Webjob 만들기를 선택합니다. 파일 업로드의 경우 샘플 WebJob 준비 섹션에서 이전에 만든 .zip 파일을 선택해야 합니다.

    App Service 앱에서 예약된 WebJob을 구성하는 방법을 보여 주는 스크린샷

    설정 가치 Description
    이름 웹잡 WebJob 이름입니다. 문자 또는 숫자로 시작해야 하며 "-" 및 "_" 이외의 특수 문자를 포함해서는 안 됩니다.
    파일 업로드 webjob.zip 루트 수준에 webjob.py를 포함한 .zip 파일. 지원되는 파일 형식은 지원 파일 형식 섹션에 나열되어 있습니다.
    유형 자극받음 WebJob이 실행되는 시점을 지정합니다(연속 또는 트리거됨).
    트리거 예약됨 예약 또는 수동입니다. 일정이 안정적으로 작동하도록 Always on이 활성화되어 있는지 확인합니다.
    CRON 식 0 0/1 * * * * 이 빠른 시작에서는 1분마다 실행되는 일정을 사용합니다. 구문에 대한 자세한 내용은 CRON 식을 참조하세요.
  4. 새 WebJob이 WebJobs 페이지에 표시됩니다. WebJob이 추가되었지만 표시되지 않는다는 메시지가 표시되면 새로 고침을 선택합니다.

  5. 예약된 WebJob은 CRON 식에 정의된 일정에 따라 실행됩니다.

    Azure Portal에서 수동으로 예약된 WebJob을 실행하는 방법을 보여 주는 스크린샷

WebJobs는 Azure App Service의 기능으로 웹앱과 동일한 인스턴스에서 프로그램이나 스크립트를 실행할 수 있습니다. 모든 App Service 요금제는 추가 비용 없이 WebJobs를 지원합니다. 이 샘플에서는 예약된(트리거된) WebJob을 사용하여 1분마다 한 번씩 시스템 시간을 출력합니다.

필수 조건

  • 활성 구독이 있는 Azure 계정. 무료로 계정을 만듭니다.
  • 기존 App Service Node 앱입니다.
  • Always on을 앱에서 항상 사용하도록 설정해야 합니다.
  • Linux의 경우 앱 설정 WEBSITE_SKIP_RUNNING_KUDUAGENT 이 .로 설정되어 있는지 확인합니다 false.

샘플 WebJob 준비

  1. 미리 빌드된 샘플 프로젝트를 다운로드 하여 빠르게 시작합니다. 샘플에는 아래와 같이 콘솔에 현재 시간을 출력하는 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}`);
    
  2. 다운로드한 zip 파일을 추출한 다음 부모 디렉터리 없이 파일만 webjob.js 포함하는 새 zip 파일을 만듭니다. WebJobs를 사용하려면 실행 파일 또는 스크립트가 zip 파일의 루트에 있어야 합니다.

예약된 WebJob 만들기

  1. Azure Portal에서 App Service 앱의 App Service 페이지로 이동합니다.

  2. 왼쪽 창에서 WebJobs를 선택한 다음, 추가를 선택합니다.

    포털(예약된 WebJob)의 App Service 앱에서 WebJob을 추가하는 방법을 보여 주는 스크린샷.

  3. 표에 지정된 대로 WebJob 추가 설정을 입력한 다음, Webjob 만들기를 선택합니다. 파일 업로드의 경우 샘플 WebJob 준비 섹션에서 이전에 만든 .zip 파일을 선택해야 합니다.

    App Service 앱에서 예약된 WebJob을 구성하는 방법을 보여 주는 스크린샷

    설정 가치 Description
    이름 웹잡 WebJob 이름입니다. 문자 또는 숫자로 시작해야 하며 "-" 및 "_" 이외의 특수 문자를 포함해서는 안 됩니다.
    파일 업로드 webjob.zip 루트 수준에 webjob.js이 포함된 .zip 파일입니다. 지원되는 파일 형식은 지원 파일 형식 섹션에 나열되어 있습니다.
    유형 자극받음 WebJob이 실행되는 시점을 지정합니다(연속 또는 트리거됨).
    트리거 예약됨 예약 또는 수동입니다. 일정이 안정적으로 작동하도록 Always on이 활성화되어 있는지 확인합니다.
    CRON 식 0 0/1 * * * * 이 빠른 시작에서는 1분마다 실행되는 일정을 사용합니다. 구문에 대한 자세한 내용은 CRON 식을 참조하세요.
  4. 새 WebJob이 WebJobs 페이지에 표시됩니다. WebJob이 추가되었지만 표시되지 않는다는 메시지가 표시되면 새로 고침을 선택합니다.

  5. 예약된 WebJob은 CRON 식에 정의된 일정에 따라 실행됩니다.

    Azure Portal에서 수동으로 예약된 WebJob을 실행하는 방법을 보여 주는 스크린샷

WebJobs는 Azure App Service의 기능으로 웹앱과 동일한 인스턴스에서 프로그램이나 스크립트를 실행할 수 있습니다. 모든 App Service 요금제는 추가 비용 없이 WebJobs를 지원합니다. 이 샘플에서는 예약된(트리거된) WebJob을 사용하여 1분마다 한 번씩 시스템 시간을 출력합니다.

중요합니다

WebJobs는 Java 8 및 Java 11 런타임 스택을 사용하는 Linux 앱을 포함하여 Alpine Linux 기반의 사용자 지정 Linux 컨테이너에서는 지원되지 않습니다. Java 17 Linux 앱부터 Azure App Service는 WebJobs와 호환되는 Alpine이 아닌 기반 이미지를 사용합니다.

필수 조건

WebJob 준비

  1. 샘플 Java WebJob을 다운로드합니다. ** .JAR 파일을 Maven을 사용하여 빌드합니다. 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("------------------------------------------------------------"); 
        } 
    } 
    
  2. project/ 디렉터리에서 다음 명령을 실행하여 실행 파일 .jar을 생성하도록 Java 프로젝트를 빌드하고 패키지합니다.

    mvn install 
    mvn package 
    

    jar 파일은 빌드가 성공적으로 완료된 후 project/target/webjob-artifact-1.0.0.jar에 위치합니다.

  3. project/target/webjob-artifact-1.0.0.jar.zip 파일로 패키지합니다.

    zip webjob.zip project/target/webjob-artifact-1.0.0.jar
    

Azure에서 예약된 WebJob 만들기

  1. Azure Portal에서 App Service 앱의 App Service 페이지로 이동합니다.

  2. 왼쪽 창에서 WebJobs를 선택한 다음, 추가를 선택합니다.

    포털(예약된 WebJob)의 App Service 앱에서 WebJob을 추가하는 방법을 보여 주는 스크린샷.

  3. 표에 지정된 대로 WebJob 추가 설정을 입력한 다음, Webjob 만들기를 선택합니다. 파일 업로드의 경우 이전 섹션에서 만든 .zip 파일을 선택해야 합니다.

    App Service 앱에서 예약된 WebJob을 구성하는 방법을 보여 주는 스크린샷

    설정 가치 설명
    이름 웹잡 WebJob 이름입니다. 문자 또는 숫자로 시작해야 하며 "-" 및 "_" 이외의 특수 문자를 포함해서는 안 됩니다.
    파일 업로드 webjob.zip .zip 파일에는 webjob-artifact-1.0.0.jar가 포함되어 있습니다. 지원되는 파일 형식은 지원 파일 형식 섹션에 나열되어 있습니다.
    유형 자극받음 WebJob이 실행되는 시점을 지정합니다(연속 또는 트리거됨).
    트리거 예약됨 예약 또는 수동입니다. 일정이 안정적으로 작동하도록 Always on이 활성화되어 있는지 확인합니다.
    CRON 식 0 0/1 * * * * 이 빠른 시작에서는 1분마다 실행되는 일정을 사용합니다. 구문에 대한 자세한 내용은 CRON 식을 참조하세요.
  4. 새 WebJob이 WebJobs 페이지에 표시됩니다. WebJob이 추가되었지만 표시되지 않는다는 메시지가 표시되면 새로 고침을 선택합니다.

  5. 예약된 WebJob은 CRON 식에 정의된 일정에 따라 실행됩니다.

    Azure Portal에서 수동으로 예약된 WebJob을 실행하는 방법을 보여 주는 스크린샷

WebJobs는 Azure App Service의 기능으로 웹앱과 동일한 인스턴스에서 프로그램이나 스크립트를 실행할 수 있습니다. 모든 App Service 요금제는 추가 비용 없이 WebJobs를 지원합니다. 이 샘플에서는 예약된(트리거된) WebJob을 사용하여 1분마다 한 번씩 시스템 시간을 출력합니다.

필수 조건

  • 활성 구독이 있는 Azure 계정. 무료로 계정을 만듭니다.
  • Linux의 기존 App Service PHP 앱입니다. 이 빠른 시작에서는 PHP 앱이 사용됩니다.
  • Always on을 앱에서 항상 사용하도록 설정해야 합니다.
  • 앱 설정 WEBSITE_SKIP_RUNNING_KUDUAGENTfalse로 설정되어 있는지 확인합니다.

샘플 WebJob 준비

  1. 미리 빌드된 샘플 프로젝트를 다운로드 하여 빠르게 시작합니다. 샘플에는 아래와 같이 콘솔에 현재 시간을 출력하는 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;
    ?>
    
  2. 다운로드한 zip 파일을 추출한 다음 부모 디렉터리 없이 파일만 webjob.php 포함하는 새 zip 파일을 만듭니다. WebJobs를 사용하려면 실행 파일 또는 스크립트가 zip 파일의 루트에 있어야 합니다.

예약된 WebJob 만들기

  1. Azure Portal에서 App Service 앱의 App Service 페이지로 이동합니다.

  2. 왼쪽 창에서 WebJobs를 선택한 다음, 추가를 선택합니다.

    포털(예약된 WebJob)의 App Service 앱에서 WebJob을 추가하는 방법을 보여 주는 스크린샷.

  3. 표에 지정된 대로 WebJob 추가 설정을 입력한 다음, Webjob 만들기를 선택합니다. 파일 업로드의 경우 샘플 WebJob 준비 섹션에서 이전에 만든 .zip 파일을 선택해야 합니다.

    App Service 앱에서 예약된 WebJob을 구성하는 방법을 보여 주는 스크린샷

    설정 가치 Description
    이름 웹잡 WebJob 이름입니다. 문자 또는 숫자로 시작해야 하며 "-" 및 "_" 이외의 특수 문자를 포함해서는 안 됩니다.
    파일 업로드 webjob.zip 루트 수준에 webjob.php가 포함된 .zip 파일입니다. 지원되는 파일 형식은 지원 파일 형식 섹션에 나열되어 있습니다.
    유형 자극받음 WebJob이 실행되는 시점을 지정합니다(연속 또는 트리거됨).
    트리거 예약됨 예약 또는 수동입니다. 일정이 안정적으로 작동하도록 Always on이 활성화되어 있는지 확인합니다.
    CRON 식 0 0/1 * * * * 이 빠른 시작에서는 1분마다 실행되는 일정을 사용합니다. 구문에 대한 자세한 내용은 CRON 식을 참조하세요.
  4. 새 WebJob이 WebJobs 페이지에 표시됩니다. WebJob이 추가되었지만 표시되지 않는다는 메시지가 표시되면 새로 고침을 선택합니다.

  5. 예약된 WebJob은 CRON 식에 정의된 일정에 따라 실행됩니다.

    Azure Portal에서 수동으로 예약된 WebJob을 실행하는 방법을 보여 주는 스크린샷

비고

CRON 식을 실행하는 데 사용되는 기본 표준 시간대는 UTC(협정 세계시)입니다. CRON 식이 다른 표준 시간대를 기반으로 실행되도록 하려면 WEBSITE_TIME_ZONE이라는 함수 앱에 대한 앱 설정을 만듭니다. 자세히 알아보려면 NCRONTAB 표준 시간대를 참조하세요.

WebJob 로그 검토

이전에 만든 WebJob에 대한 로그를 선택합니다.

포털의 App Service 앱에서 WebJob 로그를 보는 방법을 보여 주는 스크린샷(예약된 WebJob)

출력은 다음과 비슷하게 표시됩니다.

WebJobs 로그 출력을 보여 주는 스크린샷

정리

WebJob을 제거하려면 포털에서 WebJob을 선택하고 Delete을(를) 선택합니다.

포털에서 WebJob을 삭제하는 방법을 보여 주는 스크린샷

다음 단계

트리거 및 배포 옵션을 포함한 고급 WebJob 시나리오 살펴보기