Azure Functions HTTP 트리거 및 바인딩 개요

Azure Functions는 HTTP 요청을 통해 호출되어 서버리스 API를 빌드하고 웹후크에 응답할 수 있습니다.

작업 Type
HTTP 요청에서 함수 실행 트리거
함수에서 HTTP 응답 반환 출력 바인딩

확장 설치

설치하는 확장 NuGet 패키지는 함수 앱에서 사용 중인 C# 모드에 따라 다릅니다.

Functions는 격리된 C# 작업자 프로세스에서 실행됩니다. 자세한 내용은 격리된 작업자 프로세스에서 C# Azure Functions 실행 가이드를 참조하세요.

확장 기능의 기능은 확장 버전에 따라 다릅니다.

NuGet 패키지, 버전 3.x를 설치하여 프로젝트에 확장을 추가합니다.

참고 항목

.NET 격리의 ASP.NET Core 통합을 위해서는 추가 확장 패키지가 필요합니다.

번들 설치

Functions 버전 2.x부터 HTTP 확장은 host.json 프로젝트 파일에 지정된 확장 번들의 일부입니다. 자세한 내용은 확장 번들을 참조하세요.

이 버전의 확장은 확장 번들 버전 2.x가 있는 함수 앱에서 이미 사용할 수 있어야 합니다.

host.json 설정

이 섹션에서는 버전 2.x 이상에서 이 바인딩에 사용할 수 있는 구성 설정에 대해 설명합니다. host.json 파일의 설정은 함수 앱 인스턴스의 모든 함수에 적용됩니다. 아래 예제 host.json 파일에는 이 바인딩에 대한 버전 2.x 이상 설정만 포함되어 있습니다. 버전 2.x 이상 버전의 함수 앱 구성 설정에 대한 자세한 내용은 Azure Functions용 host.json 참조를 참조하세요.

참고 항목

Functions 1.x에서 host.json의 참조는 Azure Functions 1.x에 대한 host.json 참조를 참조하세요.

{
    "extensions": {
        "http": {
            "routePrefix": "api",
            "maxOutstandingRequests": 200,
            "maxConcurrentRequests": 100,
            "dynamicThrottlesEnabled": true,
            "hsts": {
                "isEnabled": true,
                "maxAge": "10"
            },
            "customHeaders": {
                "X-Content-Type-Options": "nosniff"
            }
        }
    }
}
속성 기본값 설명
customHeaders 없음 HTTP 응답에서 사용자 지정 헤더를 설정할 수 있습니다. 이전 예제에서는 X-Content-Type-Options 콘텐츠 형식 검색을 방지하기 위해 응답에 헤더를 추가합니다. 이 사용자 지정 헤더는 함수 앱의 모든 HTTP 트리거 함수에 적용됩니다.
dynamicThrottlesEnabled true* 이 설정을 사용하면 요청 처리 파이프라인이 시스템 성능 카운터와 같이 connections/threads/processes/memory/cpu/etc 주기적으로 검사 이러한 카운터가 기본 제공 높은 임계값(80%)을 초과하는 경우 카운터가 정상 수준으로 돌아갈 때까지 응답으로 요청이 거부 429 "Too Busy" 됩니다.
*소비 계획의 기본값은 .입니다 true. 전용 플랜의 기본값은 .입니다 false.
hsts 사용하도록 설정되지 않음 설정되면 클래스에 정의된 대로 .NET Core의 HSTS(HTTP Strict Transport Security) 동작이 HstsOptions 적용됩니다.isEnabledtrue 위의 예제에서는 속성을 10일로 설정합니다 maxAge . 지원되는 속성은 hsts 다음과 같습니다.
속성설명
excludedHostsHSTS 헤더가 추가되지 않은 호스트 이름의 문자열 배열입니다.
includeSubDo기본sStrict-Transport-Security 헤더의 includeSubDo기본 매개 변수를 사용할 수 있는지 여부를 나타내는 부울 값입니다.
maxAgeStrict-Transport-Security 헤더의 max-age 매개 변수를 정의하는 문자열입니다.
미리Strict-Transport-Security 헤더의 preload 매개 변수가 사용되었는지를 나타내는 부울입니다.
maxConcurrentRequests 100* 병렬로 실행되는 HTTP 함수의 최대 수입니다. 이 값을 사용하면 리소스 사용률을 관리하는 데 도움이 되는 동시성을 제어할 수 있습니다. 예를 들어 많은 시스템 리소스(메모리/cpu/소켓)를 사용하는 HTTP 함수가 있으면 동시성이 너무 높은 문제가 발생할 수 있습니다. 또는 타사 서비스에 대한 아웃바운드 요청을 수행하는 함수가 있을 수 있으며 이러한 호출의 속도는 제한되어야 합니다. 이러한 경우 여기에서 제한을 적용하는 것이 좋습니다.
*소비 계획의 기본값은 100입니다. 전용 계획의 기본값은 바인딩되지 않습니다(-1).
maxOutstandingRequests 200* 지정된 시간에 보유할 미해결 요청의 최대 수입니다. 이 제한에는 대기 중이지만 실행이 시작되지 않은 요청과 진행 중인 모든 실행이 포함됩니다. 이 한도를 초과하여 들어오는 요청이 있으면 429 "Too Busy" 응답으로 거부됩니다. 그러면 호출자가 시간 기반 다시 시도 전략을 사용할 수 있고 최대 요청 대기 시간을 제어할 수 있습니다. 이 옵션은 스크립트 호스트 실행 경로 내에서 발생하는 큐만을 제어합니다. ASP.NET 요청 큐와 같은 다른 큐는 여전히 적용되며 이 설정의 영향을 받지 않습니다.
*소비 계획의 기본값은 200입니다. 전용 계획의 기본값은 바인딩되지 않습니다(-1).
routePrefix api 모든 경로에 적용되는 경로 접두사입니다. 기본 접두사를 제거하려면 빈 문자열을 사용하십시오.

다음 단계