Azure Functions에서 함수를 사용하지 않도록 설정하는 방법
이 문서에서는 Azure Functions에서 함수를 사용하지 않도록 설정하는 방법을 설명합니다. 함수를 비활성화한다는 것은 런타임이 함수를 트리거하려는 이벤트를 무시하도록 만드는 것을 의미합니다. 이렇게 하면 전체 함수 앱을 수정하고 다시 게시하지 않고도 특정 함수가 실행되지 않도록 할 수 있습니다.
true
로 설정된 AzureWebJobs.<FUNCTION_NAME>.Disabled
형식으로 앱 설정을 생성하여 함수를 비활성화할 수 있습니다. Azure CLI, Azure PowerShell 및 Azure Portal의 함수 개요 탭을 사용하는 등 여러 가지 방법으로 이 애플리케이션 설정을 만들고 수정할 수 있습니다.
애플리케이션 설정을 변경하면 함수 앱이 다시 시작됩니다. 자세한 내용은 Azure Functions에 대한 앱 설정 참조를 참조하세요.
기능 사용 안 함
다음 모드 중 하나를 사용하여 QueueTrigger
라는 예시 함수를 비활성화하는 앱 설정을 만듭니다.
함수의 개요 페이지에서사용 및 사용 안 함 단추를 사용합니다. 이러한 단추는 AzureWebJobs.QueueTrigger.Disabled
앱 설정 값을 변경하는 방식으로 작동합니다. 함수 관련 앱 설정은 함수를 처음 비활성화할 때 만들어집니다.
로컬 프로젝트에서 함수 앱에 게시하는 경우에도 포털을 사용하여 함수 앱에서 함수를 사용하지 않도록 설정할 수 있습니다.
참고 항목
사용하지 않도록 설정된 함수는 마스터 키를 사용하여 REST 엔드포인트를 호출하여 계속 실행할 수 있습니다. 자세한 내용은 사용 안 함 함수 실행을 참조하세요. 즉, 사용하지 않도록 설정한 함수는 마스터(호스트 키)를 사용하여 포털의 테스트/실행 창에서 시작할 경우 계속 실행됩니다.
슬롯에서 함수 비활성화
기본적으로 앱 설정은 배포 슬롯에서 실행되는 앱에도 적용됩니다. 그러나 특정 슬롯의 앱 설정을 설정하여 슬롯에서 사용하는 앱 설정을 재정의할 수 있습니다. 예를 들어 함수가 프로덕션에서는 활성 상태이지만 배포 테스트 중에는 활성 상태가 아니기를 원할 수 있습니다. 동시 실행을 방지하기 위해 슬롯에서 타이머로 트리거되는 함수를 비활성화하는 것이 일반적입니다.
스테이징 슬롯에서만 함수를 사용하지 않도록 설정하는 방법은 다음과 같습니다.
배포아래에서 배포 슬롯을 선택하고, 슬롯을 선택하고, 슬롯 인스턴스에서 함수를 선택하여 함수 앱의 슬롯 인스턴스로 이동합니다. 기능을 선택한 다음 함수의 개요 페이지에서사용 및 사용 안 함 단추를 사용합니다. 이러한 단추는 AzureWebJobs.<FUNCTION_NAME>.Disabled
앱 설정 값을 변경하는 방식으로 작동합니다. 이 함수 관련 설정은 함수를 처음 비활성화할 때 만들어집니다.
슬롯 인스턴스의 구성 에서 값이 true
인 AzureWebJobs.<FUNCTION_NAME>.Disabled
앱 설정을 직접 추가할 수도 있습니다. 슬롯 특정 앱 설정을 추가하는 경우 배포 슬롯 설정 상자를 확인해야 합니다. 이 옵션을 선택하면 전환 중에 슬롯의 설정 값이 유지됩니다.
자세한 내용은 Azure Functions 배포 슬롯을 참조하세요.
사용 안 함 함수 실행
비활성화된 함수의 엔드포인트 URL에 대한 REST 요청에 마스터 액세스 키(_master
)를 제공하여 비활성화된 함수를 계속 실행할 수 있습니다. 이러한 방식으로 다른 사용자가 액세스할 수 없도록 하면서 비활성화된 상태에서 Azure에서 함수를 개발하고 유효성을 검사할 수 있습니다. 요청에 다른 유형의 키를 사용하면 HTTP 404 응답이 반환됩니다.
주의
함수 앱에서는 마스터 키를 통해 높은 권한이 부여되므로, 이 키를 제3자와 공유하거나 네이티브 클라이언트 애플리케이션에 배포해서는 안 됩니다. 함수 엔드포인트에 대한 관리자 HTTP 액세스 수준을 선택할 때는 주의해야 합니다.
마스터 키에 대한 자세한 내용은 키 이해를 참조하세요. HTTP 이외 트리거 함수를 호출하는 방법에 대한 자세한 내용은 HTTP 이외 트리거 함수 수동 실행을 참조하세요.
로컬에서 함수 비활성화
함수는 로컬로 실행할 때와 동일한 방식으로 비활성화할 수 있습니다. 이름이 QueueTrigger
인 함수를 사용하지 않도록 설정하려면 다음과 같이 local.settings.js파일의 Values 컬렉션에 항목을 추가합니다.
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "python",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobs.QueueTrigger.Disabled": true
}
}
고려 사항
함수를 사용하지 않도록 설정할 때 다음 고려 사항을 확인합니다.
이 문서에 설명된 방법을 사용하여 HTTP로 트리거되는 함수를 비활성화하면 로컬 컴퓨터와 포털에서 실행될 때 엔드포인트에 계속 액세스할 수 있습니다.
현재 하이픈(
-
)이 포함된 함수 이름은 Linux에서 실행될 때 비활성화할 수 없습니다. Linux에서 실행될 때 함수를 비활성화하려는 경우 함수 이름에 하이픈을 사용하지 마세요.
다음 단계
이 문서에서는 자동 트리거를 사용하지 않도록 설정하는 방법을 설명합니다. 트리거에 대한 자세한 내용은 트리거 및 바인딩을 참조하세요.