Azure App Service에서 WebJobs를 사용 하 여 백그라운드 작업 실행Run background tasks with WebJobs in Azure App Service

이 문서에서는 실행 파일 또는 스크립트를 업로드하기 위해 Azure Portal을 사용하여 WebJobs를 배포하는 방법을 보여줍니다.This article shows how to deploy WebJobs by using the Azure portal to upload an executable or script. Visual Studio를 사용하여 WebJobs를 개발하고 배포하는 방법에 대한 정보는 Visual Studio를 사용하여 WebJobs 배포를 참조하세요.For information about how to develop and deploy WebJobs by using Visual Studio, see Deploy WebJobs using Visual Studio.

개요Overview

WebJobs는 웹 앱, API 앱 또는 모바일 앱과 동일한 인스턴스에서 프로그램 또는 스크립트를 실행할 수 있도록 하는 Azure App Service 기능입니다.WebJobs is a feature of Azure App Service that enables you to run a program or script in the same instance as a web app, API app, or mobile app. 웹 작업을 사용하는 데 추가 비용은 없습니다.There is no additional cost to use WebJobs.

중요

WebJobs는 Linux의 App Service에 대해서는 아직 지원되지 않습니다.WebJobs is not yet supported for App Service on Linux.

여러 프로그래밍 작업을 간소화하기 위해 Azure WebJobs SDK를 WebJobs로 사용할 수 있습니다.The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. 자세한 내용은 WebJobs SDK 정의를 참조하세요.For more information, see What is the WebJobs SDK.

Azure Functions는 프로그램 및 스크립트를 실행하는 다른 방법을 제공합니다.Azure Functions provides another way to run programs and scripts. WebJobs와 Functions 간에 비교는 Flow, Logic Apps, Functions 및 WebJobs 중에서 선택을 참조하세요.For a comparison between WebJobs and Functions, see Choose between Flow, Logic Apps, Functions, and WebJobs.

WebJob 형식WebJob types

다음 표에서는 연속트리거 WebJobs 간의 차이점을 설명합니다.The following table describes the differences between continuous and triggered WebJobs.

계속Continuous 트리거Triggered
WebJob이 만들어질 때 즉시 시작합니다.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.
웹앱이 실행되는 모든 인스턴스에서 실행됩니다.Runs on all instances that the web app runs on. 필요에 따라 WebJob을 단일 인스턴스로 제한할 수 있습니다.You can optionally restrict the WebJob to a single instance. Azure에서 부하 분산을 위해 선택한 단일 인스턴스에서 실행합니다.Runs on a single instance that Azure selects for load balancing.
원격 디버깅을 지원합니다.Supports remote debugging. 원격 디버깅을 지원하지 않습니다.Doesn't support remote debugging.

참고

웹앱이 20분 동안 작동하지 않으면 시간이 초과될 수 있습니다.A web app can time out after 20 minutes of inactivity. 실제 웹앱에 대한 요청만 타이머를 다시 설정할 수 있습니다.and only requests to the actual web app can 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) doesn't reset the timer. 연속 또는 예약된 (타이머 트리거) WebJobs를 실행하도록 웹앱을 설정한 경우 웹앱의 Azure 구성 페이지에서 Always on 설정을 사용하도록 설정하여 WebJobs가 안정적으로 실행되도록 합니다.If you set your web app to run continuous or scheduled (timer-trigger) WebJobs, enable the Always on setting on your web app's Azure Configuration page to ensure that the WebJobs run reliably. 이 기능은 기본, 표준 및 프리미엄 가격 책정 계층에서만 사용할 수 있습니다.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 사용).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)

연속 WebJob 만들기Create a continuous WebJob

중요

응용 프로그램을 사용 하 여 구성 된 소스 제어를 사용 하는 경우 소스 제어 통합의 일부로 Webjobs를 배포 해야 합니다.If you have source control configured with your application, the Webjobs should be deployed as part of the source control integration. 소스 제어가 응용 프로그램을 사용 하 여 구성 되 면 WebJob을 Azure Portal에서 추가할 수 없습니다.Once source control is configured with your application a WebJob cannot be add from the Azure Portal.

  1. Azure Portal에서 App Service 웹앱, 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. WebJobs 를 선택합니다.Select WebJobs .

    WebJobs 선택

  3. WebJobs 페이지에서 추가 를 선택합니다.In the WebJobs page, select Add .

    WebJob 페이지

  4. 표에 지정된 대로 WebJob 추가 설정을 사용합니다.Use the Add WebJob settings as specified in the table.

    구성 해야 하는 WebJob 추가 설정을 보여 주는 스크린샷

    설정Setting 샘플 값Sample value DescriptionDescription
    이름Name 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.
    형식Type 계속Continuous WebJob 형식은 이 문서의 앞부분에서 설명됩니다.The WebJob types are described earlier in this article.
    크기 조정Scale 다중 인스턴스Multi instance 연속 WebJobs에 대해서만 사용할 수 있습니다.Available only for Continuous WebJobs. 프로그램 또는 스크립트가 모든 인스턴스 또는 하나의 인스턴스에서 실행되는지를 결정합니다.Determines whether the program or script runs on all instances or just one instance. 여러 인스턴스에서 실행하는 옵션은 무료 또는 공유 가격 책정 계층에 적용되지 않습니다.The option to run on multiple instances doesn't apply to the Free or Shared pricing tiers.
  5. 확인 을 클릭합니다.Click OK .

    새 WebJob이 WebJobs 페이지에 표시됩니다.The new WebJob appears on the WebJobs page.

    WebJobs 목록

  6. 연속 WebJob을 중지하거나 시작하려면 목록에서 WebJob을 마우스 오른쪽 단추로 클릭하고 중지 또는 시작 을 클릭합니다.To stop or restart a continuous WebJob, right-click the WebJob in the list and click Stop or Start .

    연속 WebJob 중지

수동으로 트리거된 WebJob 만들기Create a manually triggered WebJob

  1. Azure Portal에서 App Service 웹앱, 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. WebJobs 를 선택합니다.Select WebJobs .

    WebJobs 선택

  3. WebJobs 페이지에서 추가 를 선택합니다.In the WebJobs page, select Add .

    WebJob 페이지

  4. 표에 지정된 대로 WebJob 추가 설정을 사용합니다.Use the Add WebJob settings as specified in the table.

    수동으로 트리거된 WebJob을 만들기 위해 설정 해야 하는 설정을 보여 주는 스크린샷

    설정Setting 샘플 값Sample value DescriptionDescription
    이름Name 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.
    형식Type 트리거Triggered WebJob 형식은 이 문서의 앞부분에서 설명됩니다.The WebJob types are described earlier in this article.
    트리거Triggers 설명서Manual
  5. 확인 을 클릭합니다.Click OK .

    새 WebJob이 WebJobs 페이지에 표시됩니다.The new WebJob appears on the WebJobs page.

    WebJobs 목록

  6. 웹 작업을 실행하려면 목록에서 해당 이름을 마우스 오른쪽 단추로 클릭하고 실행 을 클릭합니다.To run the WebJob, right-click its name in the list and click Run .

    WebJob 실행

예약된 WebJob 만들기Create a scheduled WebJob

  1. Azure Portal에서 App Service 웹앱, 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. WebJobs 를 선택합니다.Select WebJobs .

    WebJobs 선택

  3. WebJobs 페이지에서 추가 를 선택합니다.In the WebJobs page, select Add .

    WebJob 페이지

  4. 표에 지정된 대로 WebJob 추가 설정을 사용합니다.Use the Add WebJob settings as specified in the table.

    WebJob 페이지 추가

    설정Setting 샘플 값Sample value DescriptionDescription
    이름Name 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.
    형식Type 트리거Triggered WebJob 형식은 이 문서의 앞부분에서 설명됩니다.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은 기본, 표준 및 프리미엄 가격 책정 계층에서만 사용할 수 있습니다.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 .

    새 WebJob이 WebJobs 페이지에 표시됩니다.The new WebJob appears on the WebJobs page.

    WebJobs 목록

NCRONTAB 식NCRONTAB expressions

다음 예제와 같이 포털에 NCRONTAB 식을 입력 하거나 settings.job WebJob .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 * * * *"
}

자세히 알아보려면 트리거된 WebJob 예약을 참조 하세요.To learn more, see Scheduling a triggered WebJob.

참고

CRON 식을 실행하는 데 사용되는 기본 표준 시간대는 UTC(협정 세계시)입니다.The default time zone used to run CRON expressions is Coordinated Universal Time (UTC). CRON 식이 다른 표준 시간대를 기반으로 실행되도록 하려면 WEBSITE_TIME_ZONE이라는 함수 앱에 대한 앱 설정을 만듭니다.To have your CRON expression run based on another time zone, create an app setting for your function app named WEBSITE_TIME_ZONE. 자세히 알아보려면 NCRONTAB 표준 시간대를 참조하세요.To learn more, see NCRONTAB time zones.

작업 기록 보기View the job history

  1. 기록을 확인하려는 WebJob을 선택하고 로그 단추를 선택합니다.Select the WebJob you want to see history for, and then select the Logs button.

    로그 단추

  2. WebJob 세부 정보 페이지에서 하나를 실행하는 세부 내용을 확인하려면 시간을 선택합니다.In the WebJob Details page, select a time to see details for one run.

    WebJob 세부 정보

  3. WebJob 실행 세부 정보 페이지에서 토글 출력 을 선택하여 로그 내용의 텍스트를 확인합니다.In the WebJob Run Details page, select Toggle Output to see the text of the log contents.

    WebJob 실행 세부 작업

    별도의 브라우저 창에서 출력 텍스트를 보려면 다운로드 를 선택합니다.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. 페이지 맨 위에 있는 WebJobs 이동 경로 탐색 링크를 선택하여 WebJobs의 목록으로 이동합니다.Select the WebJobs breadcrumb link at the top of the page to go to a list of WebJobs.

    WebJob 이동 경로 탐색

    기록 대시보드의 작업 목록

다음 단계Next steps

여러 프로그래밍 작업을 간소화하기 위해 Azure WebJobs SDK를 WebJobs로 사용할 수 있습니다.The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. 자세한 내용은 WebJobs SDK 정의를 참조하세요.For more information, see What is the WebJobs SDK.