Azure Functions에서 함수를 사용하지 않도록 설정하는 방법How to disable functions in Azure Functions

이 문서에서는 Azure Functions에서 함수를 사용하지 않도록 설정하는 방법을 설명합니다.This article explains how to disable a function in Azure Functions. 함수를 사용하지 안도록 설정하는 것은 함수에 대해 정의된 자동 트리거를 런타임에서 무시하도록 하는 것입니다.To disable a function means to make the runtime ignore the automatic trigger that's defined for the function. 이렇게 하면 전체 함수 앱을 중지하지 않고도 특정 함수가 실행되지 않도록 할 수 있습니다.This lets you prevent a specific function from running without stopping the entire function app.

함수를 사용 하지 않도록 설정 하는 권장 방법은로 설정 된 형식의 앱 설정을 사용 하는 것입니다 AzureWebJobs.<FUNCTION_NAME>.Disabled true .The recommended way to disable a function is with an app setting in the format AzureWebJobs.<FUNCTION_NAME>.Disabled set to true. Azure CLI를 사용하고 Azure Portal의 함수 관리 탭에서 다양한 방법으로 이 애플리케이션 설정을 만들고 수정할 수 있습니다.You can create and modify this application setting in a number of ways, including by using the Azure CLI and from your function's Manage tab in the Azure portal.

참고

이 문서에서 설명하는 방법을 사용하여 HTTP 트리거 함수를 사용하지 않도록 설정하면 로컬 컴퓨터에서 실행 중일 때도 엔드포인트에 계속 액세스할 수 있습니다.When you disable an HTTP triggered function by using the methods described in this article, the endpoint may still by accessible when running on your local computer.

Azure CLI 사용Use the Azure CLI

Azure CLI에서 az functionapp config appsettings set 명령을 사용하여 앱 설정을 만들고 수정합니다.In the Azure CLI, you use the az functionapp config appsettings set command to create and modify the app setting. 다음 명령을 사용하여 true로 설정된 AzureWebJobs.QueueTrigger.Disabled라는 앱 설정을 만들어 QueueTrigger라는 함수를 사용하지 않도록 설정합니다.The following command disables a function named QueueTrigger by creating an app setting named AzureWebJobs.QueueTrigger.Disabled set it to true.

az functionapp config appsettings set --name <myFunctionApp> \
--resource-group <myResourceGroup> \
--settings AzureWebJobs.QueueTrigger.Disabled=true

이 함수를 다시 사용하도록 설정하려면 false 값을 사용하여 동일한 명령을 다시 실행합니다.To re-enable the function, rerun the same command with a value of false.

az functionapp config appsettings set --name <myFunctionApp> \
--resource-group <myResourceGroup> \
--settings AzureWebJobs.QueueTrigger.Disabled=false

포털 사용Use the Portal

함수의 개요 페이지에서사용사용 안 함 단추를 사용할 수도 있습니다.You can also use the Enable and Disable buttons on the function's Overview page. 이러한 단추는 앱 설정 값을 변경 하는 방식으로 작동 AzureWebJobs.<FUNCTION_NAME>.Disabled 합니다.These buttons work by changing the value of the AzureWebJobs.<FUNCTION_NAME>.Disabled app setting. 이 함수 관련 설정은 처음 사용 하지 않도록 설정할 때 생성 됩니다.This function-specific setting is created the first time it's disabled.

함수 상태 스위치

참고

포털 통합 테스트 기능은 Disabled 설정을 무시합니다.The portal-integrated testing functionality ignores the Disabled setting. 즉, 사용하지 않도록 설정한 함수는 포털의 테스트 창에서 시작할 경우 계속 실행됩니다.This means that a disabled function still runs when started from the Test window in the portal.

local.settings.jsonlocal.settings.json

함수는 로컬로 실행할 때와 동일한 방식으로 비활성화할 수 있습니다.Functions can be disabled in the same way when running locally. 이라는 함수를 사용 하지 않도록 설정 하려면 다음과 HttpExample 같이 local.settings.js파일의 Values 컬렉션에 항목을 추가 합니다.To disable a function named HttpExample, add an entry to the Values collection in the local.settings.json file, as follows:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "python",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true", 
    "AzureWebJobs.HttpExample.Disabled": "true"
  }
}

다른 방법Other methods

애플리케이션 설정 방법은 모든 언어 및 모든 런타임 버전에 권장되지만 함수를 사용하지 않도록 설정하는 몇 가지 다른 방법이 있습니다.While the application setting method is recommended for all languages and all runtime versions, there are several other ways to disable functions. 언어 및 런타임 버전에 따라 달라지는 이러한 방법은 이전 버전과의 호환성을 위해 유지 관리됩니다.These methods, which vary by language and runtime version, are maintained for backward compatibility.

C# 클래스 라이브러리C# class libraries

클래스 라이브러리 함수에서 Disable 특성을 사용하여 함수가 트리거되지 않도록 할 수도 있습니다.In a class library function, you can also use the Disable attribute to prevent the function from being triggered. 다음 예제에 표시된 것처럼 생성자 매개 변수 없이도 이 특성을 사용할 수 있습니다.You can use the attribute without a constructor parameter, as shown in the following example:

public static class QueueFunctions
{
    [Disable]
    [FunctionName("QueueTrigger")]
    public static void QueueTrigger(
        [QueueTrigger("myqueue-items")] string myQueueItem, 
        TraceWriter log)
    {
        log.Info($"C# function processed: {myQueueItem}");
    }
}

생성자 매개 변수 없는 특성은 함수의 사용 안 함 상태를 변경하려면 프로젝트를 다시 컴파일하고 다시 배포해야 합니다.The attribute without a constructor parameter requires that you recompile and redeploy the project to change the function's disabled state. 특성을 사용하는 보다 유연한 방법은 다음 예제에 표시된 대로 부울 앱 설정을 참조하는 생성자 매개 변수를 포함하는 것입니다.A more flexible way to use the attribute is to include a constructor parameter that refers to a Boolean app setting, as shown in the following example:

public static class QueueFunctions
{
    [Disable("MY_TIMER_DISABLED")]
    [FunctionName("QueueTrigger")]
    public static void QueueTrigger(
        [QueueTrigger("myqueue-items")] string myQueueItem, 
        TraceWriter log)
    {
        log.Info($"C# function processed: {myQueueItem}");
    }
}

이 메서드를 사용하면 다시 컴파일하거나 다시 배포하지 않고 앱 설정을 변경하여 함수를 사용하지 않도록 설정할 수 있습니다.This method lets you enable and disable the function by changing the app setting, without recompiling or redeploying. 앱 설정을 바꾸면 사용 안 함 상태 변경을 즉시 인식할 수 있도록 함수 앱이 다시 시작하게 됩니다.Changing an app setting causes the function app to restart, so the disabled state change is recognized immediately.

중요

Disabled 특성은 클래스 라이브러리 함수를 사용하지 않도록 설정하는 유일한 방법입니다.The Disabled attribute is the only way to disable a class library function. 클래스 라이브러리 함수에 대해 생성된 function.json 파일은 직접 편집할 수 없게 되어 있습니다.The generated function.json file for a class library function is not meant to be edited directly. 해당 파일을 편집하는 경우 무엇을 하든지 disabled 속성에 영향을 주지 않습니다.If you edit that file, whatever you do to the disabled property will have no effect.

함수 상태 스위치는 function.json 파일을 변경하여 작동하므로 관리 탭의 해당 스위치에도 동일하게 적용됩니다.The same goes for the Function state switch on the Manage tab, since it works by changing the function.json file.

또한 포털은 함수가 사용 안 함이 아닌 경우 사용 안 함으로 나타낼 수 있습니다.Also, note that the portal may indicate the function is disabled when it isn't.

Functions 1.x - 스크립팅 언어Functions 1.x - scripting languages

버전 1.x에서는 function.json 파일의 disabled 속성을 사용하여 런타임에서 함수를 트리거하지 않도록 지시할 수도 있습니다.In version 1.x, you can also use the disabled property of the function.json file to tell the runtime not to trigger a function. 이 방법은 C# 스크립트 및 JavaScript와 같은 스크립트 언어에 대해서만 작동합니다.This method only works for scripting languages such as C# script and JavaScript. disabled 속성은 true 또는 앱 설정 이름으로 설정할 수 있습니다.The disabled property can be set to true or to the name of an app setting:

{
    "bindings": [
        {
            "type": "queueTrigger",
            "direction": "in",
            "name": "myQueueItem",
            "queueName": "myqueue-items",
            "connection":"MyStorageConnectionAppSetting"
        }
    ],
    "disabled": true
}

또는or

    "bindings": [
        ...
    ],
    "disabled": "IS_DISABLED"

두 번째 예제에서는 IS_DISABLED라고 명명되고 true 또는 1로 설정된 앱 설정이 있는 경우 함수가 사용하지 않도록 설정됩니다.In the second example, the function is disabled when there is an app setting that is named IS_DISABLED and is set to true or 1.

중요

이제 포털에서 애플리케이션 설정을 사용하여 v1.x 함수를 사용하지 않도록 설정합니다.The portal now uses application settings to disable v1.x functions. 애플리케이션 설정이 function.json 파일과 충돌하면 오류가 발생할 수 있습니다.When an application setting conflicts with the function.json file, an error can occur. 오류를 방지하려면 function.json 파일에서 disabled 속성을 제거해야 합니다.You should remove the disabled property from the function.json file to prevent errors.

다음 단계Next steps

이 문서에서는 자동 트리거를 사용하지 않도록 설정하는 방법을 설명합니다.This article is about disabling automatic triggers. 트리거에 대한 자세한 내용은 트리거 및 바인딩을 참조하세요.For more information about triggers, see Triggers and bindings.