Azure Functions에 대한 앱 설정 참조
함수 앱의 애플리케이션 설정에는 해당 함수 앱의 모든 함수에 영향을 주는 구성 옵션이 포함됩니다. 이러한 설정은 환경 변수로 액세스됩니다. 이 문서에는 함수 앱에서 사용할 수 있는 앱 설정이 나열되어 있습니다.
함수 앱 설정을 추가, 업데이트 및 삭제할 수 있는 여러 가지 방법이 있습니다.
함수 앱 설정을 변경하려면 함수 앱을 다시 시작해야 합니다.
이 문서에서는 예 연결 문자열 값이 가독성을 위해 잘렸습니다.
Azure Functions는 호스팅에 Azure 앱 Service 플랫폼을 활용하므로 Azure 앱 Service의 환경 변수 및 앱 설정에 설명된 함수 앱 호스팅과 관련된 일부 설정을 찾을 수 있습니다.
앱 설정 고려 사항
앱 설정을 사용할 때 다음 고려 사항을 알고 있어야 합니다.
함수 앱 설정을 변경하려면 함수 앱을 다시 시작해야 합니다.
이름을 설정할 때 이중 밑줄(
__
) 및 콜론(:
)은 예약된 값으로 간주됩니다. 이중 밑줄은 Windows와 Linux 모두에서 계층 구분 기호로 해석되며 콜론은 Linux에서만 동일한 방식으로 해석됩니다. 예를 들어,AzureFunctionsWebHost__hostid=somehost_123456
설정은 다음 JSON 개체로 해석됩니다."AzureFunctionsWebHost": { "hostid": "somehost_123456" }
이 문서에서는 두 운영 체제에서 모두 지원되므로 이중 밑줄만 사용합니다. 관리 ID 연결을 지원하는 대부분의 설정은 이중 밑줄을 사용합니다.
Functions가 로컬에서 실행될 때 앱 설정은 local.settings.json의
Values
컬렉션에 지정됩니다.host.json 파일 및 local.settings.json 파일에는 다른 함수 앱 구성 옵션이 있습니다.
애플리케이션 설정을 사용하여 host.json 파일 자체를 변경할 필요 없이 host.json 설정 값을 재정의할 수 있습니다. 이 기능은 특정 환경에 대한 특정 host.json 설정을 구성하거나 수정해야 하는 경우에 유용합니다. 이렇게 하면 프로젝트를 다시 게시하지 않고도 host.json 설정을 변경할 수 있습니다. 자세한 내용은 host.json 참조 문서를 참조하세요.
이 문서에서는 함수 앱과 가장 관련된 설정을 문서화합니다. Azure Functions는 App Service에서 실행되기 때문에 다른 애플리케이션 설정도 지원됩니다. 자세한 내용은 Azure App Service에서 환경 변수 및 앱 설정을 참조하세요.
일부 시나리오에서는 App Service 사이트 설정에 설명된 설정으로 작업해야 합니다.
읽기 전용 App Service 애플리케이션 설정을 변경하면 함수 앱이 응답하지 않는 상태가 될 수 있습니다.
ARM 템플릿을 포함하여 REST API를 사용하여 애플리케이션 설정을 업데이트할 때 주의합니다. 이러한 API는 기존 애플리케이션 설정을 바꾸므로 REST API 또는 ARM 템플릿을 사용하여 설정을 추가하거나 수정할 때 기존 설정을 모두 포함해야 합니다. 가능한 경우 Azure CLI 또는 Azure PowerShell을 사용하여 프로그래밍 방식으로 애플리케이션 설정을 사용합니다. 자세한 내용은 애플리케이션 설정 작업을 참조하세요.
APPINSIGHTS_INSTRUMENTATIONKEY
Application Insights에 대한 계측 키입니다. APPINSIGHTS_INSTRUMENTATIONKEY
와 APPLICATIONINSIGHTS_CONNECTION_STRING
을 같이 사용하지 마세요. 가능하면 APPLICATIONINSIGHTS_CONNECTION_STRING
을 사용합니다. Application Insights가 독립 클라우드에서 실행되는 경우 APPLICATIONINSIGHTS_CONNECTION_STRING
을 사용해야 합니다. 자세한 내용은 Azure Functions에 대한 모니터링을 구성하는 방법을 참조하세요.
키 | 샘플 값 |
---|---|
APPINSIGHTS_INSTRUMENTATIONKEY | 55555555-af77-484b-9032-64f83bb83bb |
APPINSIGHTS_INSTRUMENTATIONKEY
와 APPLICATIONINSIGHTS_CONNECTION_STRING
을 같이 사용하지 마세요. APPLICATIONINSIGHTS_CONNECTION_STRING
을 사용하는 것이 좋습니다.
APPLICATIONINSIGHTS_AUTHENTICATION_STRING
Microsoft Entra 인증을 사용하여 Application Insights에 액세스할 수 있습니다. Microsoft Entra 인증을 사용하여 Application Insights 작업 영역에 연결해야 하는 경우 이 설정을 사용하세요. 자세한 내용은 Application Insights에 대한 Microsoft Entra 인증을 참조하세요.
사용하는 APPLICATIONINSIGHTS_AUTHENTICATION_STRING
경우 설정하는 특정 값은 관리 ID 유형에 따라 달라집니다.
관리 ID | 설정 값 |
---|---|
시스템 할당 | Authorization=AAD |
사용자 할당 | Authorization=AAD;ClientId=<USER_ASSIGNED_CLIENT_ID> |
이 인증 요구 사항은 Functions 호스트, 스냅샷 디버거, 프로파일러 및 언어별 에이전트의 연결에 적용됩니다. 이 설정을 사용하려면 관리 ID를 모니터링 메트릭 게시자에 해당하는 할당된 역할과 함께 함수 앱에서 이미 사용할 수 있어야 합니다.
참고 항목
Microsoft Entra 인증을 사용하여 Application Insights에 연결하기 위해 APPLICATIONINSIGHTS_AUTHENTICATION_STRING
을 사용하는 경우 Application Insights에 대한 로컬 인증을 사용하지 않도록 설정해야 합니다. 이 구성에서는 원격 분석을 작업 영역에 수집하려면 Microsoft Entra 인증이 필요합니다.
APPLICATIONINSIGHTS_CONNECTION_STRING
Application Insights에 대한 연결 문자열입니다. APPINSIGHTS_INSTRUMENTATIONKEY
와 APPLICATIONINSIGHTS_CONNECTION_STRING
을 같이 사용하지 마세요. 모든 경우에 APPLICATIONINSIGHTS_CONNECTION_STRING
을 사용하는 것이 좋지만 다음과 같은 경우에는 필수입니다.
- 함수 앱에 연결 문자열을 사용하여 지원되는 추가된 사용자 지정이 필요한 경우
- Application Insights 인스턴스가 소버린 클라우드에서 실행되며 사용자 지정 엔드포인트가 필요한 경우
자세한 내용은 연결 문자열을 참조하세요.
키 | 샘플 값 |
---|---|
APPLICATIONINSIGHTS_CONNECTION_STRING | InstrumentationKey=... |
Microsoft Entra 인증 APPLICATIONINSIGHTS_AUTHENTICATION_STRING
을 사용하여 Application Insights에 연결하려면 .
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL
Important
Azure Functions 프록시는 Azure Functions 런타임 버전 1.x~3.x의 레거시 함수입니다. 버전 4.x의 레거시 지원에 대한 자세한 내용은 Functions 프록시를 참조하세요.
기본적으로 Functions 프록시는 바로 가기를 사용하여 프록시에서 동일한 함수 앱의 함수로 API 호출을 직접 보냅니다. 이 바로 가기는 새 HTTP 요청을 만드는 대신 사용됩니다. 이 설정을 사용하면 바로 가기 동작을 사용하지 않도록 설정할 수 있습니다.
키 | 값 | 설명 |
---|---|---|
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL | true |
로컬 함수 앱에서 함수를 가리키는 백 엔드 URL을 사용하는 호출은 해당 함수로 직접 전달되지 않습니다. 대신, 요청은 함수 앱에 대한 HTTP 프런트 엔드로 다시 전달됩니다. |
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL | false |
로컬 함수 앱에서 함수를 가리키는 백 엔드 URL을 사용하는 호출은 해당 함수로 직접 전달됩니다. 기본값은 false 입니다. |
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES
Important
Azure Functions 프록시는 Azure Functions 런타임 버전 1.x~3.x의 레거시 함수입니다. 버전 4.x의 레거시 지원에 대한 자세한 내용은 Functions 프록시를 참조하세요.
이 설정은 백 엔드 URL로 삽입될 때 %2F
문자가 경로 매개 변수에서 슬래시로 디코딩되는지 여부를 제어합니다.
키 | 값 | 설명 |
---|---|---|
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES | true |
인코딩된 슬래시를 사용하는 경로 매개 변수는 디코딩됩니다. |
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES | false |
모든 경로 매개 변수는 기본 동작인 변경되지 않은 상태로 전달됩니다. |
예를 들어 myfunction.com
도메인의 함수 앱에 대한 proxies.json 파일을 살펴보겠습니다.
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"root": {
"matchCondition": {
"route": "/{*all}"
},
"backendUri": "example.com/{all}"
}
}
}
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES
가 true
로 설정되면 URL은 example.com/api%2ftest
를 example.com/api/test
로 확인합니다. 기본적으로 URL은 변경되지 않고 example.com/test%2fapi
그대로 유지됩니다. 자세한 내용은 함수 프록시를 참조하세요.
AZURE_FUNCTIONS_ENVIRONMENT
Azure에서 실행할 때 함수 앱의 런타임 호스팅 환경을 구성합니다. 이 값은 초기화 중에 읽혀지고 런타임에서는 이러한 값만 적용됩니다.
값 | 설명 |
---|---|
Production |
로깅 감소 및 전체 성능 최적화가 구현된 프로덕션 환경을 나타냅니다. AZURE_FUNCTIONS_ENVIRONMENT 를 설정하지 않았거나 지원되지 않는 값으로 설정한 경우 이것이 기본값입니다. |
Staging |
스테이징 슬롯에서 실행할 때와 같은 스테이징 환경을 나타냅니다. |
Development |
개발 환경은 더 자세한 로깅 및 감소된 성능 최적화를 지원합니다. Azure Functions Core Tools는 로컬 컴퓨터에서 실행할 때 AZURE_FUNCTIONS_ENVIRONMENT 를 Development 로 설정합니다. 이 설정은 local.settings.json 파일에서 재정의할 수 없습니다. |
Azure의 런타임 환경을 Production
이외의 항목으로 변경해야 하는 경우 ASPNETCORE_ENVIRONMENT
대신 이 설정을 사용합니다. 자세한 내용은 환경 기반 시작 클래스 및 메서드를 참조하세요.
이 설정은 Functions 런타임 버전 1.x에서 사용할 수 없습니다.
AzureFunctionsJobHost__*
버전 2.x 이상 버전의 Functions 런타임에서는 애플리케이션 설정이 현재 환경의 host.json 설정을 재정의할 수 있습니다. 이러한 재정의는 AzureFunctionsJobHost__path__to__setting
이라는 애플리케이션 설정으로 표현됩니다. 자세한 내용은 host.json 값 재정의를 참조하세요.
AzureFunctionsWebHost__hostid
고유한 ID여야 하는 지정된 함수 앱의 호스트 ID를 설정합니다. 이 설정은 앱에 대해 자동으로 생성된 호스트 ID 값을 재정의합니다. 동일한 스토리지 계정을 공유하는 함수 앱 간의 호스트 ID 충돌을 방지해야 하는 경우에만 이 설정을 사용합니다.
호스트 ID는 다음 요구 사항을 충족해야 합니다.
- 1자에서 32자 사이여야 함
- 소문자, 숫자 및 대시만 포함
- 대시로 시작하거나 끝나지 않음
- 연속 대시를 포함하지 않음
ID를 생성하는 쉬운 방법은 GUID를 가져와서 대시를 제거하고 GUID 1835D7B5-5C98-4790-815D-072CC94C6F71
을 값 1835d7b55c984790815d072cc94c6f71
로 변환하는 것과 같이 소문자로 만드는 것입니다.
키 | 샘플 값 |
---|---|
AzureFunctionsWebHost__hostid | myuniquefunctionappname123456789 |
자세한 내용은 호스트 ID 고려 사항을 참조하세요.
AzureWebJobsDashboard
이 설정은 더 이상 사용되지 않으며 Azure Functions 런타임 버전 1.x에서 실행되는 경우에만 지원됩니다.
로그를 저장하고 포털의 모니터 탭에 표시하기 위한 선택적인 스토리지 계정 연결 문자열입니다. 스토리지 계정은 Blob, 큐 및 테이블을 지원하는 범용 계정이어야 합니다. 자세한 내용은 스토리지 계정 요구 사항을 참조하세요.
키 | 샘플 값 |
---|---|
AzureWebJobsDashboard | DefaultEndpointsProtocol=https;AccountName=... |
AzureWebJobsDisableHomepage
true
값은 함수 앱의 루트 URL에 대해 표시되는 기본 방문 페이지를 사용하지 않도록 설정합니다. 기본값은 false
입니다.
키 | 샘플 값 |
---|---|
AzureWebJobsDisableHomepage | true |
이 앱 설정이 생략되거나 false
로 설정되면 URL <functionappname>.azurewebsites.net
에 대한 응답으로 다음 예와 유사한 페이지가 표시됩니다.
AzureWebJobsDotNetReleaseCompilation
true
는 .NET 코드를 컴파일할 때 릴리스 모드 사용을 의미합니다. false
는 디버그 모드 사용을 의미합니다. 기본값은 true
입니다.
키 | 샘플 값 |
---|---|
AzureWebJobsDotNetReleaseCompilation | true |
AzureWebJobsFeatureFlags
사용하도록 설정할 쉼표로 구분된 베타 기능 목록입니다. 이 플래그로 사용할 수 있는 베타 기능은 프로덕션 준비가 되지 않았지만 실제로 사용하기 전에 실험적 용도로 사용할 수 있습니다.
키 | 샘플 값 |
---|---|
AzureWebJobsFeatureFlags | feature1,feature2,EnableProxies |
Azure API Management로의 마이그레이션을 계획하는 동안 Functions 런타임 버전 4.x에서 프록시를 다시 사용하도록 설정하려면 이 목록에 EnableProxies
를 추가합니다. 자세한 내용은 Functions v4.x에서 프록시를 다시 사용하도록 설정를 참조하세요.
AzureWebJobsKubernetesSecretName
키를 저장하는 데 사용되는 Kubernetes 비밀 리소스를 나타냅니다. Kubernetes에서 실행되는 경우에만 지원됩니다. 이 설정을 사용하려면 AzureWebJobsSecretStorageType
을 kubernetes
로 설정해야 합니다. AzureWebJobsKubernetesSecretName
이(가) 설정되지 않은 경우, 리포지토리는 읽기 전용으로 간주됩니다. 이 경우, 배포 전에 값이 생성되어야 합니다. Azure Functions Core Tools는 Kubernetes에 배포할 때 값을 자동으로 생성합니다.
키 | 샘플 값 |
---|---|
AzureWebJobsKubernetesSecretName | <SECRETS_RESOURCE> |
자세한 내용은 키 스토리지 관리를 참조하세요.
AzureWebJobsSecretStorageKeyVaultClientId
키가 저장된 자격 증명 모음에 액세스하는 데 사용되는 사용자가 할당한 관리 ID 또는 앱 등록의 클라이언트 ID입니다. 이 설정을 사용하려면 AzureWebJobsSecretStorageType
을 keyvault
로 설정해야 합니다. Functions 런타임 버전 4.x 이상에서 지원됩니다.
키 | 샘플 값 |
---|---|
AzureWebJobsSecretStorageKeyVaultClientId | <CLIENT_ID> |
자세한 내용은 키 스토리지 관리를 참조하세요.
AzureWebJobsSecretStorageKeyVaultClientSecret
키가 저장된 자격 증명 모음에 액세스하는 데 사용되는 사용자가 할당한 관리 ID 또는 앱 등록의 클라이언트 ID에 대한 비밀입니다. 이 설정을 사용하려면 AzureWebJobsSecretStorageType
을 keyvault
로 설정해야 합니다. Functions 런타임 버전 4.x 이상에서 지원됩니다.
키 | 샘플 값 |
---|---|
AzureWebJobsSecretStorageKeyVaultClientSecret | <CLIENT_SECRET> |
자세한 내용은 키 스토리지 관리를 참조하세요.
AzureWebJobsSecretStorageKeyVaultName
이 설정은 더 이상 사용되지 않으며 Azure Functions 런타임 버전 3.x에서 실행될 때만 사용되었습니다.
키를 저장하는 데 사용되는 키 자격 증명 모음 인스턴스의 이름입니다. 이 설정은 더 이상 지원되지 않는 Functions 런타임 버전 3.x에서만 사용되었습니다. 버전 4.x의 경우 AzureWebJobsSecretStorageKeyVaultUri
를 대신 사용합니다. 이 설정을 사용하려면 AzureWebJobsSecretStorageType
을 keyvault
로 설정해야 합니다.
자격 증명 모음에는 반드시 호스팅 리소스의 시스템 할당 관리 ID에 해당하는 액세스 정책이 있어야 합니다. 액세스 정책은 ID에 Get
,Set
, List
, Delete
의 비밀 권한을 부여하도록 합니다.
함수가 로컬에서 실행될 때 개발자 ID가 사용되며 설정은 local.settings.json 파일에 있어야 합니다.
키 | 샘플 값 |
---|---|
AzureWebJobsSecretStorageKeyVaultName | <VAULT_NAME> |
자세한 내용은 키 스토리지 관리를 참조하세요.
AzureWebJobsSecretStorageKeyVaultTenantId
키가 저장된 자격 증명 모음에 액세스하는 데 사용되는 앱 등록의 테넌트 ID입니다. 이 설정을 사용하려면 AzureWebJobsSecretStorageType
을 keyvault
로 설정해야 합니다. Functions 런타임 버전 4.x 이상에서 지원됩니다. 자세한 내용은 키 스토리지 관리를 참조하세요.
키 | 샘플 값 |
---|---|
AzureWebJobsSecretStorageKeyVaultTenantId | <TENANT_ID> |
AzureWebJobsSecretStorageKeyVaultUri
키를 저장하는 데 사용되는 키 자격 증명 모음 인스턴스의 URI입니다. Functions 런타임 버전 4.x 이상에서 지원됩니다. 키 자격 증명 모음 인스턴스를 키 스토리지에 사용하는 데 권장되는 설정입니다. 이 설정을 사용하려면 AzureWebJobsSecretStorageType
을 keyvault
로 설정해야 합니다.
AzureWebJobsSecretStorageKeyVaultUri
값은 https://
를 포함하여 Key Vault 개요 탭에 표시된 자격 증명 모음 URI의 전체 값이어야 합니다.
자격 증명 모음에는 반드시 호스팅 리소스의 시스템 할당 관리 ID에 해당하는 액세스 정책이 있어야 합니다. 액세스 정책은 ID에 Get
,Set
, List
, Delete
의 비밀 권한을 부여하도록 합니다.
함수가 로컬에서 실행될 때 개발자 ID가 사용되며 설정은 local.settings.json 파일에 있어야 합니다.
키 | 샘플 값 |
---|---|
AzureWebJobsSecretStorageKeyVaultUri | https://<VAULT_NAME>.vault.azure.net |
자세한 내용은 Azure Functions용 Key Vault 참조 사용을 참조하세요.
AzureWebJobsSecretStorageSas
키 스토리지에 사용되는 두 번째 스토리지 계정에 대한 Blob Storage SAS URL입니다. 기본적으로 Functions는 AzureWebJobsStorage
에 설정된 계정을 사용합니다. 이 비밀 스토리지 옵션을 사용하는 경우 AzureWebJobsSecretStorageType
이 명시적으로 설정되어 있지 않거나 blob
으로 설정되어 있는지 확인합니다. 자세한 내용은 키 스토리지 관리를 참조하세요.
키 | 샘플 값 |
---|---|
AzureWebJobsSecretStorageSas | <BLOB_SAS_URL> |
AzureWebJobsSecretStorageType
키 스토리지에 사용할 리포지토리 또는 공급자를 지정합니다. 키는 함수 앱에 고유한 비밀을 사용하여 저장되기 전에 항상 암호화됩니다.
키 | 값 | 설명 |
---|---|---|
AzureWebJobsSecretStorageType | blob |
키는 AzureWebJobsStorage 설정에서 제공하는 계정의 Blob Storage 컨테이너에 저장됩니다. Blob Storage는 AzureWebJobsSecretStorageType 이 설정되지 않은 경우의 기본 동작입니다.다른 스토리지 계정을 지정하려면 AzureWebJobsSecretStorageSas 설정을 사용하여 두 번째 스토리지 계정의 SAS URL을 나타냅니다. |
AzureWebJobsSecretStorageType | files |
키는 파일 시스템에서 유지됩니다. 이는 Functions v1.x의 기본 동작입니다. |
AzureWebJobsSecretStorageType | keyvault |
키는 AzureWebJobsSecretStorageKeyVaultName 에서 설정한 키 자격 증명 모음 인스턴스에 저장됩니다. |
AzureWebJobsSecretStorageType | kubernetes |
Kubernetes에서 함수 런타임을 실행하는 경우에만 지원됩니다. AzureWebJobsKubernetesSecretName 이(가) 설정되지 않은 경우, 리포지토리는 읽기 전용으로 간주됩니다. 이 경우, 배포 전에 값이 생성되어야 합니다. Azure Functions Core Tools는 Kubernetes에 배포할 때 값을 자동으로 생성합니다. |
자세한 내용은 키 스토리지 관리를 참조하세요.
AzureWebJobsStorage
Functions 런타임이 일반 작업에 사용하는 Azure Storage 계정에 대한 연결 문자열을 지정합니다. Functions에서 이 스토리지 계정이 사용되는 경우에는 키 관리, 타이머 트리거 관리 및 Event Hubs 검사점 등이 있습니다. 스토리지 계정은 Blob, 큐 및 테이블을 지원하는 범용 계정이어야 합니다. 자세한 내용은 스토리지 계정 요구 사항을 참조하세요.
키 | 샘플 값 |
---|---|
AzureWebJobsStorage | DefaultEndpointsProtocol=https;AccountName=... |
연결 문자열 대신 이 스토리지 계정에 대해 ID 기반 연결을 사용할 수 있습니다. 자세한 내용은 ID로 호스트 스토리지에 연결을 참조하세요.
AzureWebJobsStorage__accountName
ID 기반 스토리지 연결을 사용하는 경우 AzureWebJobsStorage
에서 연결 문자열을 사용하는 대신 스토리지 계정의 계정 이름을 설정합니다. 이 구문은 AzureWebJobsStorage
에 고유하며 다른 ID 기반 연결에는 사용할 수 없습니다.
키 | 샘플 값 |
---|---|
AzureWebJobsStorage__accountName | <STORAGE_ACCOUNT_NAME> |
소버린 클라우드의 경우나 사용자 지정 DNS를 사용하는 경우에는 대신 서비스별 AzureWebJobsStorage__*ServiceUri
설정을 사용해야 합니다.
AzureWebJobsStorage__blobServiceUri
ID 기반 스토리지 연결을 사용하는 경우 스토리지 계정의 Blob 서비스에 대한 데이터 평면 URI를 설정합니다.
키 | 샘플 값 |
---|---|
AzureWebJobsStorage__blobServiceUri | https://<STORAGE_ACCOUNT_NAME>.blob.core.windows.net |
소버린 클라우드에서 또는 사용자 지정 DNS를 사용하는 경우 AzureWebJobsStorage__accountName
대신 이 설정을 사용합니다. 자세한 내용은 ID로 호스트 스토리지에 연결을 참조하세요.
AzureWebJobsStorage__queueServiceUri
ID 기반 스토리지 연결을 사용하는 경우 스토리지 계정의 큐 서비스에 대한 데이터 평면 URI를 설정합니다.
키 | 샘플 값 |
---|---|
AzureWebJobsStorage__queueServiceUri | https://<STORAGE_ACCOUNT_NAME>.queue.core.windows.net |
소버린 클라우드에서 또는 사용자 지정 DNS를 사용하는 경우 AzureWebJobsStorage__accountName
대신 이 설정을 사용합니다. 자세한 내용은 ID로 호스트 스토리지에 연결을 참조하세요.
AzureWebJobsStorage__tableServiceUri
ID 기반 스토리지 연결을 사용하는 경우 스토리지 계정의 테이블 서비스에 대한 데이터 평면 URI를 설정합니다.
키 | 샘플 값 |
---|---|
AzureWebJobsStorage__tableServiceUri | https://<STORAGE_ACCOUNT_NAME>.table.core.windows.net |
소버린 클라우드에서 또는 사용자 지정 DNS를 사용하는 경우 AzureWebJobsStorage__accountName
대신 이 설정을 사용합니다. 자세한 내용은 ID로 호스트 스토리지에 연결을 참조하세요.
AzureWebJobs_TypeScriptPath
TypeScript에 사용되는 컴파일러의 경로입니다. 필요한 경우 기본값을 재정의할 수 있습니다.
키 | 샘플 값 |
---|---|
AzureWebJobs_TypeScriptPath | %HOME%\typescript |
DOCKER_REGISTRY_SERVER_PASSWORD
프라이빗 컨테이너 레지스트리에 액세스하는 데 사용되는 암호를 나타냅니다. 이 설정은 프라이빗 컨테이너 레지스트리에서 컨테이너화된 함수 앱을 배포할 때만 필요합니다. 자세한 내용은 Azure App Service에서 환경 변수 및 앱 설정을 참조하세요.
DOCKER_REGISTRY_SERVER_URL
프라이빗 컨테이너 레지스트리의 URL을 나타냅니다. 이 설정은 프라이빗 컨테이너 레지스트리에서 컨테이너화된 함수 앱을 배포할 때만 필요합니다. 자세한 내용은 Azure App Service에서 환경 변수 및 앱 설정을 참조하세요.
DOCKER_REGISTRY_SERVER_USERNAME
프라이빗 컨테이너 레지스트리에 액세스하는 데 사용되는 계정을 나타냅니다. 이 설정은 프라이빗 컨테이너 레지스트리에서 컨테이너화된 함수 앱을 배포할 때만 필요합니다. 자세한 내용은 Azure App Service에서 환경 변수 및 앱 설정을 참조하세요.
DOCKER_SHM_SIZE
Python 작업자에서 공유 메모리를 사용하는 경우 공유 메모리 크기(바이트)를 설정합니다. 자세한 내용은 공유 메모리를 참조하세요.
키 | 샘플 값 |
---|---|
DOCKER_SHM_SIZE | 268435456 |
위의 값은 256MB 이하의 공유 메모리 크기를 설정합니다.
FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED
을 1
로 설정해야 합니다.
ENABLE_ORYX_BUILD
배포 중에 Oryx 빌드 시스템이 사용되는지 여부를 나타냅니다. Linux에 대한 원격 빌드 배포를 수행할 때 ENABLE_ORYX_BUILD
를 true
로 설정해야 합니다. 자세한 내용은 원격 빌드를 참조하세요.
키 | 샘플 값 |
---|---|
ENABLE_ORYX_BUILD | true |
FUNCTION_APP_EDIT_MODE
Azure Portal에서 함수 앱을 편집할 수 있는지 여부를 나타냅니다. 유효한 값은 readwrite
및 readonly
입니다.
키 | 샘플 값 |
---|---|
FUNCTION_APP_EDIT_MODE | readonly |
이 값은 함수 앱의 언어 스택 및 배포 상태에 따라 런타임에서 설정됩니다. 자세한 내용은 Azure Portal의 개발 제한을 참조하세요.
FUNCTIONS_EXTENSION_VERSION
이 함수 앱을 호스트하는 Functions 런타임의 버전입니다. 주 버전의 물결표(~
)는 해당 주 버전의 최신 버전(예: ~4
)을 사용한다는 의미입니다. 동일한 주 버전의 새로운 부 버전을 사용할 수 있으면 함수 앱에 자동으로 설치됩니다.
키 | 샘플 값 |
---|---|
FUNCTIONS_EXTENSION_VERSION | ~4 |
다음과 같은 주요 런타임 버전 값이 지원됩니다.
값 | 런타임 대상 | Comment(설명) |
---|---|---|
~4 |
4.x | 권장 |
~1 |
1.x | 2026년 9월 14일에 지원이 종료됩니다. |
~4
값은 앱이 런타임의 버전 4.x에서 실행됨을 의미합니다. 값이 ~1
이면 앱을 런타임의 버전 1.x로 고정합니다. 런타임 버전 2.x 및 3.x는 더 이상 지원되지 않습니다. 자세한 내용은 Azure Functions 런타임 버전 개요를 참조하세요.
지원팀에서 앱을 특정 부 버전에 고정하도록 요청한 경우 전체 버전 번호(예: 4.0.12345
)를 사용합니다. 자세한 내용은 Azure Functions 런타임 버전을 대상으로 지정하는 방법을 참조하세요.
FUNCTIONS_INPROC_NET8_ENABLED
앱이 In Process 모델에서 .NET 8을 사용할 수 있는지 여부를 나타냅니다. In Process 모델에서 .NET 8을 사용하려면 이 값을 1
(으)로 설정해야 합니다. 다른 필수 구성 값을 비롯한 전체 지침은 대상 .NET 8으로 업데이트를 참조하세요.
키 | 샘플 값 |
---|---|
FUNCTIONS_INPROC_NET8_ENABLED | 1 |
In Process 모델에서 .NET 8에 대한 지원을 사용하지 않도록 설정하려면 0
(으)로 설정하세요.
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR
이 앱 설정은 Node.js v18 이하에서 진입점 오류 문제를 더 쉽게 해결할 수 있도록 Node.js 앱에서 호환성이 손상되는 변경을 사용하도록 설정하는 임시 방법입니다. 특히 항상 진입점 파일을 사용하는 프로그래밍 모델 v4 앱의 경우 true
를 사용하는 것이 좋습니다. 호환성이 손상되는 변경(false
)이 없는 동작은 진입점 오류를 무시하고 이를 Application Insights에 기록하지 않습니다.
Node.js v20부터 앱 설정이 적용되지 않으며 호환성이 손상되는 변경 동작이 항상 사용하도록 설정됩니다.
Node.js v18 이하의 경우 앱 설정을 사용하며 기본 동작은 모델 v4 함수 등록 전 또는 후에 오류가 발생하는지에 따라 달라집니다.
- 이전에 오류가 발생한 경우(예: 모델 v3을 사용 중이거나 진입점 파일이 없는 경우) 기본 동작은
false
와 일치합니다. - 이후에 오류가 발생하면(예: 중복 모델 v4 함수를 등록하려고 시도하는 경우) 기본 동작은
true
와 일치합니다.
키 | 값 | 설명 |
---|---|---|
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR | true |
진입점 오류를 차단하고 Application Insights에 기록합니다. |
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR | false |
진입점 오류를 무시하고 Application Insights에 기록하지 마세요. |
FUNCTIONS_REQUEST_BODY_SIZE_LIMIT
HTTP 엔드포인트로 전송되는 요청의 본문 크기에 대한 기본 제한을 재정의합니다. 값은 바이트 단위로 제공되며 기본 최대 요청 크기는 104857600바이트입니다.
키 | 샘플 값 |
---|---|
FUNCTIONS_REQUEST_BODY_SIZE_LIMIT | 250000000 |
FUNCTIONS_V2_COMPATIBILITY_MODE
Important
이 설정은 더 이상 지원되지 않습니다. 원래는 v2.x 런타임을 대상으로 하는 앱이 해당 런타임 버전이 지원되는 동안에도 대신 v3.x 런타임에서 실행될 수 있도록 단기 해결 방법을 사용하도록 하기 위해 제공되었습니다. 버전 1.x에서 실행되는 레거시 앱을 제외한 모든 함수 앱은 Functions 런타임 버전 4.x FUNCTIONS_EXTENSION_VERSION=~4
에서 실행되어야 합니다. 자세한 내용은 Azure Functions 런타임 버전 개요를 참조하세요.
FUNCTIONS_WORKER_PROCESS_COUNT
기본값 1
을 사용하여 언어 작업자 프로세스의 최대 수를 지정합니다. 허용된 최대 값은 10
입니다. 함수 호출은 언어 작업자 프로세스 간에 균등하게 분산됩니다. 언어 작업자 프로세스는 FUNCTIONS_WORKER_PROCESS_COUNT
에 의해 설정된 수에 도달할 때까지 10초 간격으로 생성됩니다. 여러 언어 작업자 프로세스를 사용하는 것은 크기 조정과 다릅니다. 워크로드에 CPU 바인딩 및 I/O 바인딩 호출이 혼합되어 있는 경우 이 설정을 사용하는 것이 좋습니다. 이 설정은 프로세스(FUNCTIONS_WORKER_RUNTIME=dotnet
)에서 실행되는 .NET을 제외한 모든 언어 런타임에 적용됩니다.
키 | 샘플 값 |
---|---|
FUNCTIONS_WORKER_PROCESS_COUNT | 2 |
FUNCTIONS_WORKER_RUNTIME
함수 앱에서 로드할 작업자 런타임의 언어 또는 언어 스택입니다. 이것은 애플리케이션(예: python
)에 사용되는 언어에 해당합니다. Azure Functions 런타임의 버전 2.x부터 지정된 함수 앱은 단일 언어만 지원할 수 있습니다.
키 | 샘플 값 |
---|---|
FUNCTIONS_WORKER_RUNTIME | node |
유효한 값은
값 | 언어/언어 스택 |
---|---|
dotnet |
C#(클래스 라이브러리) C#(스크립트) |
dotnet-isolated |
C#(격리 작업자 프로세스) |
java |
Java |
node |
JavaScript TypeScript |
powershell |
PowerShell |
python |
Python |
custom |
기타 |
FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED
이 설정을 사용하면 Python 작업자에서 공유 메모리를 사용하여 처리량을 향상시킬 수 있습니다. Python 함수 앱에서 메모리 병목 상태에 도달할 때 공유 메모리를 사용하도록 설정합니다.
키 | 샘플 값 |
---|---|
FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED | 1 |
이 설정이 사용하도록 설정되면 DOCKER_SHM_SIZE 설정을 사용하여 공유 메모리 크기를 설정할 수 있습니다. 자세한 내용은 공유 메모리를 참조하세요.
JAVA_OPTS
프리미엄 플랜 또는 전용 플랜에서 실행할 때 Java 함수를 실행하는 데 사용되는 JVM(Java 가상 머신)을 사용자 지정하는 데 사용됩니다. 소비 플랜에서 실행하는 경우 대신 languageWorkers__java__arguments
를 사용합니다. 자세한 내용은 JVM 사용자 지정을 참조하세요.
languageWorkers__java__arguments
소비 플랜에서 실행할 때 Java 함수를 실행하는 데 소비되는 JVM(Java 가상 머신)을 사용자 지정하는 데 소비됩니다. 이 설정은 소비 플랜에서 실행되는 Java 함수의 콜드 부팅 시간을 늘립니다. 프리미엄 또는 전용 플랜의 경우 대신 JAVA_OPTS
를 사용합니다. 자세한 내용은 JVM 사용자 지정을 참조하세요.
MDMaxBackgroundUpgradePeriod
PowerShell 함수 앱의 관리되는 종속성 백그라운드 업데이트 기간을 제어하며, 기본값은 7.00:00:00
(매주)입니다.
각 PowerShell 작업자 프로세스는 프로세스 시작 시와 그 이후 MDMaxBackgroundUpgradePeriod
마다 PowerShell 갤러리에서 모듈 업그레이드 확인을 시작합니다. PowerShell 갤러리에서 새 모듈 버전을 사용할 수 있는 경우 해당 버전은 파일 시스템에 설치되며 PowerShell 작업자에게 제공됩니다. 이 값을 줄이면 함수 앱에서 최신 모듈 버전을 더 빨리 가져올 수 있지만, 앱 리소스 사용량(네트워크 I/O, CPU, 스토리지)도 늘어납니다. 이 값을 늘리면 앱의 리소스 사용량이 줄어들지만, 앱에 새 모듈 버전을 전달하는 작업이 지연될 수도 있습니다.
키 | 샘플 값 |
---|---|
MDMaxBackgroundUpgradePeriod | 7.00:00:00 |
자세한 내용은 종속성 관리를 참조하세요.
MDNewSnapshotCheckPeriod
각 PowerShell 작업자가 관리되는 종속성 업그레이드의 설치 여부를 확인하는 빈도를 지정합니다. 기본 빈도는 01:00:00
(매시간)입니다.
새 모듈 버전이 파일 시스템에 설치된 후에는 모든 PowerShell 작업자 프로세스를 다시 시작해야 합니다. PowerShell 작업자를 다시 시작하면 현재 함수 실행을 중단할 수 있으므로 앱 사용 가능성이 영향을 받습니다. 모든 PowerShell 작업자 프로세스가 다시 시작될 때까지 함수 호출은 이전 버전 또는 새 모듈 버전을 사용할 수 있습니다. 모든 PowerShell 작업자를 다시 시작하는 작업이 MDNewSnapshotCheckPeriod
내에 완료됩니다.
모든 MDNewSnapshotCheckPeriod
내에서 PowerShell 작업자가 관리되는 종속성 업그레이드의 설치 여부를 확인합니다. 업그레이드가 설치되면 다시 시작됩니다. 이 값을 늘리면 다시 시작으로 인한 중단 빈도가 줄어듭니다. 그러나 이 값을 늘리면 함수 호출에서 이전 또는 새 모듈 버전을 임의로 사용할 수 있는 시간도 비결정적으로 늘어날 수 있습니다.
키 | 샘플 값 |
---|---|
MDNewSnapshotCheckPeriod | 01:00:00 |
자세한 내용은 종속성 관리를 참조하세요.
MDMinBackgroundUpgradePeriod
이전에 관리되는 종속성 업그레이드 확인 후 다른 업그레이드 확인이 시작되기 전의 기간이며, 기본값은 1.00:00:00
(매일)입니다.
잦은 작업자 재시작을 과도하게 모듈 업그레이드하지 않기 위해 작업자가 마지막 MDMinBackgroundUpgradePeriod
에 체크 인을 이미 시작한 경우에는 모듈 업그레이드를 확인하지 않습니다.
키 | 샘플 값 |
---|---|
MDMinBackgroundUpgradePeriod | 1.00:00:00 |
자세한 내용은 종속성 관리를 참조하세요.
PIP_INDEX_URL
이 설정을 사용하면 기본적으로 https://pypi.org/simple
인 Python 패키지 인덱스의 기준 URL을 재정의할 수 있습니다. 사용자 지정 종속성을 사용하여 원격 빌드를 실행해야 하는 경우 이 설정을 사용합니다. 이러한 사용자 지정 종속성은 PEP 503(단순 리포지토리 API)과 호환되는 패키지 인덱스 리포지토리 또는 동일한 형식을 따르는 로컬 디렉터리에 있을 수 있습니다.
키 | 샘플 값 |
---|---|
PIP_INDEX_URL | http://my.custom.package.repo/simple |
자세한 내용은 --index-url
의 경우 pip
설명서 및 Python 개발자 참조에서 사용자 지정 종속성 사용을 참조하세요.
PIP_EXTRA_INDEX_URL
이 설정의 값은 --index-url
외에 사용할 Python 앱용 사용자 지정 패키지에 대한 추가 인덱스 URL을 나타냅니다. 추가 패키지 인덱스에 있는 사용자 지정 종속성을 사용하여 원격 빌드를 실행해야 하는 경우 이 설정을 사용합니다. --index-url
과 동일한 규칙을 따라야 합니다.
키 | 샘플 값 |
---|---|
PIP_EXTRA_INDEX_URL | http://my.custom.package.repo/simple |
자세한 내용은 --extra-index-url
의 경우 pip
설명서 및 Python 개발자 참조에서 사용자 지정 종속 항목을 참조하세요.
프로젝트
Kudu 배포 서비스에 배포 가능한 프로젝트를 배치할 연결된 리포지토리의 폴더를 알려주는 연속 배포 설정입니다.
키 | 샘플 값 |
---|---|
프로젝트 | WebProject/WebProject.csproj |
PYTHON_ISOLATE_WORKER_DEPENDENCIES
구성은 Python 함수 앱에만 적용됩니다. 모듈 로드 순서에 대한 우선 순위를 정의합니다. 기본적으로 이 값은 0
로 설정되어 있습니다.
키 | 값 | 설명 |
---|---|---|
PYTHON_ISOLATE_WORKER_DEPENDENCIES | 0 |
기본 동작인 내부 Python 작업자의 종속성에서 Python 라이브러리를 로드하는 우선 순위를 지정합니다. requirements.txt에 정의된 타사 라이브러리는 섀도 처리될 수 있습니다. |
PYTHON_ISOLATE_WORKER_DEPENDENCIES | 1 |
requirements.txt에 정의된 애플리케이션의 패키지에서 Python 라이브러리 로드 우선 순위를 지정합니다. 이렇게 하면 라이브러리가 내부 Python 작업자의 라이브러리와 충돌하지 않습니다. |
PYTHON_ENABLE_DEBUG_LOGGING
Python 함수 앱에서 디버그 수준 로깅을 사용하도록 설정합니다. 1
값은 디버그 수준 로깅을 사용하도록 설정합니다. 이 설정을 사용하지 않거나 값이 0
인 경우 정보 및 상위 수준 로그만 Python 작업자에서 Functions 호스트로 보냅니다. Python 함수 실행을 디버그하거나 추적하는 경우 이 설정을 사용합니다.
Python 함수를 디버그하는 경우 필요에 따라 host.json 파일에서 디버그 또는 추적 로깅 수준도 설정해야 합니다. 자세한 내용은 Azure Functions에 대한 모니터링을 구성하는 방법을 참조하세요.
PYTHON_ENABLE_WORKER_EXTENSIONS
구성은 Python 함수 앱에만 적용됩니다. 이 구성을 1
로 설정하면 requirements.txt에 정의된 Python 작업자 확장에서 작업자를 로드할 수 있습니다. 이를 통해 함수 앱은 타사 패키지에서 제공하는 새 기능에 액세스할 수 있습니다. 또한 앱에서 함수 로드 및 호출 동작을 변경할 수 있습니다. 이를 사용함으로써 발생하는 위험은 본인의 책임이므로, 선택한 확장을 신뢰할 수 있는지 확인합니다. Azure Functions는 확장에 대한 명시적 보증을 제공하지 않습니다. 확장을 사용하는 방법은 확장의 설명서 페이지 또는 추가 정보 문서를 참조하세요. 기본적으로 이 값은 0
으로 설정됩니다.
키 | 값 | 설명 |
---|---|---|
PYTHON_ENABLE_WORKER_EXTENSIONS | 0 |
Python 작업자 확장을 사용하지 않도록 설정합니다. |
PYTHON_ENABLE_WORKER_EXTENSIONS | 1 |
Python 작업자가 requirements.txt에서 확장을 로드하도록 허용합니다. |
PYTHON_THREADPOOL_THREAD_COUNT
Python 언어 작업자에서 함수 호출을 실행하는 데 사용하는 최대 스레드 수를 지정합니다. Python 버전 3.8
이하의 경우 기본값은 1
입니다. Python 버전 3.9
이상의 경우 이 값은 None
으로 설정됩니다. 이 설정은 실행 중에 설정되는 스레드 수를 보장하지 않습니다. 이 설정은 Python이 스레드 수를 지정된 값으로 확장할 수 있도록 합니다. 이 설정은 Python 함수 앱에만 적용됩니다. 또한 이 설정은 코루틴에는 적용되지 않지만 동기 함수 호출에 적용됩니다.
키 | 샘플 값 | 최댓값 |
---|---|---|
PYTHON_THREADPOOL_THREAD_COUNT | 2 | 32 |
SCALE_CONTROLLER_LOGGING_ENABLED
이 설정은 현재 미리 보기로 제공됩니다.
이 설정은 Azure Functions 스케일링 컨트롤러의 로깅을 제어합니다. 자세한 내용은 스케일링 컨트롤러 로그를 참조하세요.
키 | 샘플 값 |
---|---|
SCALE_CONTROLLER_LOGGING_ENABLED | AppInsights:Verbose |
이 키의 값은 다음과 같이 정의된 <DESTINATION>:<VERBOSITY>
형식으로 제공됩니다.
속성 | 설명 |
---|---|
<DESTINATION> |
로그가 전송되는 대상입니다. 유효한 값은 AppInsights 및 Blob 입니다.AppInsights 를 사용할 때 함수 앱에서 Application Insights가 사용하도록 설정되어 있는지 확인합니다.대상을 Blob 로 설정하면 AzureWebJobsStorage 애플리케이션 설정에 설정된 기본 스토리지 계정에서 azure-functions-scale-controller 라는 Blob 컨테이너에 로그가 생성됩니다. |
<VERBOSITY> |
로깅 수준을 지정합니다. 지원되는 값은 None , Warning 및 Verbose 입니다.Verbose 로 설정되면 크기 조정 컨트롤러는 모든 작업자 수 변경의 이유 및 해당 결정을 촉발한 트리거에 대한 정보를 기록합니다. 자세한 로그에는 크기 조정 컨트롤러를 실행하기 전후에 트리거에서 사용한 트리거 경고 및 해시가 포함됩니다. |
팁
크기 조정 컨트롤러 로깅을 사용하면 함수 앱 모니터링 비용에 영향을 줍니다. 크기 조정 컨트롤러의 동작을 이해하는 데 충분한 데이터를 수집할 때까지는 로깅을 사용하는 것이 좋습니다.
SCM_DO_BUILD_DURING_DEPLOYMENT
배포 중 원격 빌드 동작을 제어합니다. SCM_DO_BUILD_DURING_DEPLOYMENT
가 true
로 설정되면 배포 중에 프로젝트가 원격으로 빌드됩니다.
키 | 샘플 값 |
---|---|
SCM_DO_BUILD_DURING_DEPLOYMENT | true |
SCM_LOGSTREAM_TIMEOUT
스트리밍 로그에 연결된 경우 시간 초과(초)를 제어합니다. 기본값은 7200(2시간)입니다.
키 | 샘플 값 |
---|---|
SCM_LOGSTREAM_TIMEOUT | 1800 |
위의 샘플 값 1800
은 30분의 시간 초과를 설정합니다. 자세한 내용은 Azure Functions에서 스트리밍 실행 로그 사용을 참조하세요.
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
이벤트 기반 스케일링 플랜에 함수 앱 코드와 구성이 저장되는 스토리지 계정에 대한 연결 문자열입니다. 자세한 내용은 스토리지 계정 연결 설정을 참조하세요.
키 | 샘플 값 |
---|---|
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING | DefaultEndpointsProtocol=https;AccountName=... |
이 설정은 Windows 및 Linux 모두에서 소비 및 Elastic Premium 플랜 앱에 필요합니다. Functions에 의해 동적으로 크기 조정되지 않는 전용 플랜 앱에는 필요하지 않습니다.
이 설정을 변경하거나 제거하면 함수 앱이 시작되지 않을 수 있습니다. 자세히 알아보려면 이 문제 해결 문서를 참조하세요.
Azure Files는 파일 공유에 액세스할 때 관리 ID 사용을 지원하지 않습니다. 자세한 내용은 Azure Files 지원되는 인증 시나리오를 참조하세요.
WEBSITE_CONTENTOVERVNET
Important
WEBSITE_CONTENTOVERVNET은 vnetContentShareEnabled 사이트 속성으로 바뀐 레거시 앱 설정입니다.
1
값을 사용하면 스토리지 계정이 가상 네트워크로 제한된 경우 함수 앱을 스케일링할 수 있습니다. 스토리지 계정을 가상 네트워크로 제한할 때 이 설정을 사용하도록 설정해야 합니다. WEBSITE_CONTENTSHARE
및 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
을 사용할 때만 필요합니다. 자세히 알아보려면 가상 네트워크로 스토리지 계정 제한을 참조하세요.
키 | 샘플 값 |
---|---|
WEBSITE_CONTENTOVERVNET | 1 |
이 앱 설정은 탄력적 프리미엄 및 전용(App Service) 플랜(표준 이상)에 필요합니다. 소비 계획에서 실행할 때는 지원되지 않습니다.
참고 항목
동일한 플랜에서 여러 함수 앱이 공유하는 스토리지 계정의 콘텐츠 공유로 라우팅할 때는 특별히 주의해야 합니다. 자세한 내용은 스토리지 고려 사항 문서에서 가상 네트워크를 통한 일관된 라우팅을 참조하세요.
WEBSITE_CONTENTSHARE
Functions에서 함수 앱 코드 및 구성 파일을 저장하는 데 사용하는 파일 공유의 이름입니다. 이 콘텐츠는 이벤트 기반 스케일링 플랜에 필요합니다. WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
를 사용합니다. 기본값은 런타임이 생성한 고유한 문자열로, 함수 앱 이름으로 시작됩니다. 자세한 내용은 스토리지 계정 연결 설정을 참조하세요.
키 | 샘플 값 |
---|---|
WEBSITE_CONTENTSHARE | functionapp091999e2 |
이 설정은 Windows 및 Linux 모두에서 사용 및 프리미엄 플랜 앱에 필요합니다. Functions에 의해 동적으로 크기 조정되지 않는 전용 플랜 앱에는 필요하지 않습니다.
함수 앱을 만들 때 공유가 만들어집니다. 이 설정을 변경하거나 제거하면 함수 앱이 시작되지 않을 수 있습니다. 자세히 알아보려면 이 문제 해결 문서를 참조하세요.
다음 고려 사항은 배포 중에 ARM(Azure Resource Manager) 템플릿 또는 Bicep 파일을 사용하여 함수 앱을 만들 때 적용됩니다.
- 주 함수 앱 또는 슬롯의 앱에 대한
WEBSITE_CONTENTSHARE
값을 설정하지 않으면 고유한 공유 값이 생성됩니다. ARM 템플릿 배포에는WEBSITE_CONTENTSHARE
를 설정하지 않는 것이 좋습니다. - 가상 네트워크에서 보안 스토리지 계정을 사용하는 경우와 같이
WEBSITE_CONTENTSHARE
값을 미리 정의된 값으로 설정해야 하는 시나리오가 있습니다. 이 경우 주 함수 앱과 각 배포 슬롯에 대한 앱에 고유한 공유 이름을 설정해야 합니다. 가상 네트워크에서 보호되는 스토리지 계정의 경우 자동화된 배포의 일부로 공유 자체를 만들어야 합니다. 자세한 내용은 보안 배포를 참조하세요. WEBSITE_CONTENTSHARE
를 슬롯 설정으로 만들지 마세요.WEBSITE_CONTENTSHARE
를 지정할 때 값은 공유 이름에 대해 이 지침을 따라야 합니다.
WEBSITE_DNS_SERVER
IP 주소를 확인할 때 앱에서 사용하는 DNS 서버를 설정합니다. 이 설정은 Azure DNS 프라이빗 영역 및 프라이빗 엔드포인트 같은 특정 네트워킹 기능을 사용할 때 필요합니다.
키 | 샘플 값 |
---|---|
WEBSITE_DNS_SERVER | 168.63.129.16 |
WEBSITE_ENABLE_BROTLI_ENCODING
Brotli 인코딩이 기본 gzip 압축 대신 압축에 사용되는지 여부를 제어합니다. WEBSITE_ENABLE_BROTLI_ENCODING
이 1
로 설정되면 Brotli 인코딩이 사용되고, 그렇지 않으면 gzip 인코딩이 사용됩니다.
WEBSITE_FUNCTIONS_ARMCACHE_ENABLED
ARM(Azure Resource Manager) 템플릿을 사용하여 함수 앱을 배포할 때 캐싱을 사용하지 않도록 설정합니다.
키 | 샘플 값 |
---|---|
WEBSITE_FUNCTIONS_ARMCACHE_ENABLED | 0 |
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
앱이 스케일링될 수 있는 최대 인스턴스 수입니다. 기본값은 무제한입니다.
Important
이 설정은 미리 보기로 제공됩니다. app property for function max scale out이 추가되었으며, 스케일링을 제한하는 권장 방법입니다.
키 | 샘플 값 |
---|---|
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT | 5 |
WEBSITE_NODE_DEFAULT_VERSION
Windows만 해당합니다.
Windows에서 함수 앱을 실행할 때 사용할 Node.js 버전을 설정합니다. 물결표(~)를 사용하여 런타임에서 대상 주 버전의 사용 가능한 최신 버전을 사용하도록 해야 합니다. 예를 들어 ~18
로 설정하면 최신 버전의 Node.js 18이 사용됩니다. 물결표를 사용하여 주 버전을 대상으로 지정하면 부 버전을 수동으로 업데이트할 필요가 없습니다.
키 | 샘플 값 |
---|---|
WEBSITE_NODE_DEFAULT_VERSION | ~18 |
WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS
프리미엄 플랜에서 실행되는 함수 앱에서 슬롯 교환을 수행할 때 앱에서 사용하는 전용 스토리지 계정이 네트워크로 제한된 경우 교환에 실패할 수 있습니다. 이 실패는 Functions와 App Service 모두에서 공유하는 레거시 애플리케이션 로깅 기능으로 인해 발생합니다. 이 설정은 해당 레거시 로깅 기능을 재정의하고 교환이 발생하도록 허용합니다.
키 | 샘플 값 |
---|---|
WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS | 0 |
레거시 진단 설정이 교환을 차단하지 않도록 모든 슬롯에 값이 0
인 WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS
를 추가하세요. 이 설정과 값을 프로덕션 슬롯에만 배포 슬롯(고정) 설정으로 추가할 수도 있습니다.
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS
기본적으로 함수 앱의 버전 설정은 각 슬롯에 따라 다릅니다. 이 설정은 배포 슬롯을 사용하여 함수를 업그레이드할 때 사용됩니다. 이렇게 하면 교환 후 버전 변경으로 인한 예기치 않은 동작이 방지됩니다. 프로덕션 및 슬롯에서 0
으로 설정하여 모든 버전 설정도 교환되도록 합니다. 자세한 내용은 슬롯을 사용하여 업그레이드를 참조하세요.
키 | 샘플 값 |
---|---|
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS | 0 |
WEBSITE_RUN_FROM_PACKAGE
로컬로 탑재하거나 외부 URL에 배포할 수 있는 패키지 파일에서 함수 앱을 실행할 수 있도록 합니다.
키 | 샘플 값 |
---|---|
WEBSITE_RUN_FROM_PACKAGE | 1 |
유효한 값은 외부 배포 패키지 파일의 위치를 확인하는 URL이거나 1
입니다. 1
로 설정하면 패키지는 d:\home\data\SitePackages
폴더에 있어야 합니다. WEBSITE_RUN_FROM_PACKAGE
가 사용하도록 설정된 zip 배포를 사용하면 패키지가 자동으로 이 위치에 업로드됩니다. 미리 보기에서 이 설정은 WEBSITE_RUN_FROM_ZIP
으로 명명되었습니다. 자세한 내용은 패키지 파일에서 Functions 실행을 참조하세요.
외부 패키지 URL에서 배포하는 경우 트리거도 수동으로 동기화해야 합니다. 자세한 내용은 트리거 동기화를 참조하세요.
WEBSITE_SKIP_CONTENTSHARE_VALIDATION
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 및 WEBSITE_CONTENTSHARE 설정에는 앱이 제대로 시작될 수 있는지 확인하기 위한 추가 유효성 검사가 있습니다. 함수 앱에서 네트워킹 제약 조건 또는 기타 제한 요인으로 인해 다운스트림 스토리지 계정 또는 Key Vault를 제대로 호출할 수 없는 경우 애플리케이션 설정을 만드는 데 실패합니다. WEBSITE_SKIP_CONTENTSHARE_VALIDATION이 1
로 설정되면 유효성 검사를 건너뜁니다. 그렇지 않으면 값이 기본적으로 0
으로 설정되고 유효성 검사가 수행됩니다.
키 | 샘플 값 |
---|---|
WEBSITE_SKIP_CONTENTSHARE_VALIDATION | 1 |
유효성 검사를 건너뛰고 연결 문자열이나 콘텐츠 공유가 유효하지 않으면 앱을 제대로 시작할 수 없습니다. 이 경우 함수는 HTTP 500 오류를 반환합니다. 자세한 내용은 오류 문제 해결: "Azure Functions 런타임에 연결할 수 없음"을 참조하세요.
WEBSITE_SLOT_NAME
읽기 전용. 현재 배포 슬롯의 이름. 프로덕션 슬롯의 이름은 Production
입니다.
키 | 샘플 값 |
---|---|
WEBSITE_SLOT_NAME | Production |
WEBSITE_TIME_ZONE
함수 앱에 대한 표준 시간대를 설정할 수 있습니다.
키 | OS | 샘플 값 |
---|---|---|
WEBSITE_TIME_ZONE | Windows | Eastern Standard Time |
WEBSITE_TIME_ZONE | Linux | America/New_York |
CRON 식과 함께 사용하는 기본 표준 시간대는 UTC(협정 세계시)입니다. 다른 표준 시간대를 기반으로 하는 CRON 식을 사용하려면 WEBSITE_TIME_ZONE
이라는 함수 앱에 대한 앱 설정을 만듭니다.
이 설정의 값은 함수 앱이 실행되는 운영 체제 및 플랜에 따라 다릅니다.
운영 체제 | 계획 | 값 |
---|---|---|
Windows | 모두 | Windows 명령 tzutil.exe /L 에서 제공하는 각 쌍의 두 번째 줄에 지정된 원하는 표준 시간대의 이름으로 값을 설정합니다. |
Linux | Premium 전용 |
tz database에 나온 것과 같이 원하는 표준 시간대의 이름으로 값을 설정합니다. |
참고 항목
WEBSITE_TIME_ZONE
및 TZ
는 현재, 소비 플랜의 Linux에서 실행하는 것이 지원되지 않습니다. 이 경우 WEBSITE_TIME_ZONE
또는 TZ
를 설정하면 SSL 관련 문제가 생성되고 메트릭이 앱에 대해 작동하지 않을 수 있습니다.
예를 들어 미국 동부 표준시(Eastern Standard Time
(Windows) 또는 America/New_York
(Linux)로 표시)는 현재 표준 시간 동안 UTC-05:00를 사용하고 일광 절약 시간 동안에는 UTC-04:00를 사용합니다. 매일 오전 10시(미국 동부 표준시)에 타이머 트리거를 두려면 WEBSITE_TIME_ZONE
이라는 함수 앱에 대한 앱 설정을 만들고, 값을 Eastern Standard Time
(Windows) 또는 America/New_York
(Linux)로 설정하고, 다음 NCRONTAB 식을 사용합니다.
"0 0 10 * * *"
WEBSITE_TIME_ZONE
을 사용하는 경우 일광 절약 시간 및 표준 시간의 변경을 포함하여 특정 시간대의 시간 변경에 따라 조정됩니다.
WEBSITE_USE_PLACEHOLDER
소비 플랜에서 실행할 때 특정 콜드 부팅 최적화를 사용할지 여부를 나타냅니다. 소비 플랜에서 콜드 부팅 최적화를 사용하지 않도록 설정하려면 0
으로 설정합니다.
키 | 샘플 값 |
---|---|
WEBSITE_USE_PLACEHOLDER | 1 |
WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED
소비 플랜에서 .NET 격리 작업자 프로세스 함수를 실행할 때 특정 콜드 시작 최적화를 사용할지 여부를 나타냅니다. 소비 플랜에서 콜드 부팅 최적화를 사용하지 않도록 설정하려면 0
으로 설정합니다.
키 | 샘플 값 |
---|---|
WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED | 1 |
WEBSITE_VNET_ROUTE_ALL
Important
WEBSITE_VNET_ROUTE_ALL은 vnetRouteAllEnabled 사이트 설정으로 바꿔진 레거시 앱 설정입니다.
앱의 모든 아웃바운드 트래픽이 가상 네트워크를 통해 라우팅되도록 할지 여부를 나타냅니다. 설정 값 1
은 모든 애플리케이션 트래픽이 가상 네트워크를 통해 라우팅됨을 나타냅니다. 탄력적 프리미엄 및 전용 호스팅 플랜에서 지역 가상 네트워크 통합을 구성할 때 이 설정이 필요합니다. 또한 가상 네트워크 NAT 게이트웨이가 고정 아웃바운드 IP 주소를 정의하는 데 사용되는 경우에도 사용됩니다.
키 | 샘플 값 |
---|---|
WEBSITE_VNET_ROUTE_ALL | 1 |
WEBSITES_ENABLE_APP_SERVICE_STORAGE
/home
디렉터리가 스케일링된 인스턴스 간에 공유되는지 여부를 나타내며 기본값은 true
입니다. 컨테이너에 함수 앱을 배포할 경우 false
로 설정해야 합니다.
App Service 사이트 설정
일부 구성은 언어 버전과 같은 사이트 설정으로 App Service 수준에서 유지 관리되어야 합니다. 이러한 설정은 REST API를 사용하거나 Azure CLI 또는 Azure PowerShell을 사용하여 포털에서 관리됩니다. 다음은 런타임 언어, OS 및 버전에 따라 필요할 수 있는 사이트 설정입니다.
alwaysOn
전용(App Service) 플랜에서 실행되는 함수 앱에서 Functions 런타임은 몇 분 동안 활동이 없으면 유휴 상태가 되며, 이 경우 HTTP 트리거에 대한 요청만 함수 앱의 절전 모드를 해제합니다. 타이머 트리거 함수를 포함하여 비 HTTP 트리거 함수가 올바르게 실행되도록 하려면 alwaysOn
사이트 설정을 true
값으로 설정하여 함수 앱에 대해 Always On을 활성화합니다.
functionsRuntimeAdminIsolationEnabled
함수 앱의 기본 제공 관리자(/admin
) 엔드포인트에 액세스할 수 있는지 여부를 결정합니다. (기본값)으로 false
설정하면 앱은 해당 요청이 요청에 마스터 키를 표시할 때 엔드포인트 /admin
에 대한 요청을 허용합니다. /admin
마스터 키를 사용하더라도 엔드포인트에 액세스할 수 없는 경우 true
이 속성은 Linux 소비 SKU에서 실행되는 앱에 대해 설정할 수 없으며 Azure Functions 버전 1.x에서 실행되는 앱에 대해 설정할 수 없습니다. 버전 1.x를 사용하는 경우 먼저 버전 4.x로 마이그레이션해야 합니다.
linuxFxVersion
Linux에서 실행되는 함수 앱의 경우 linuxFxVersion
은 언어별 작업자 프로세스의 언어 및 버전을 나타냅니다. 이 정보는 FUNCTIONS_EXTENSION_VERSION
과 함께 함수 앱을 실행하기 위해 설치된 특정 Linux 컨테이너 이미지를 결정하는 데 사용됩니다. 이 설정은 미리 정의된 값 또는 사용자 지정 이미지 URI로 설정할 수 있습니다.
이 값은 Linux 함수 앱을 만들 때 설정됩니다. ARM 템플릿 및 Bicep 배포와 특정 업그레이드 시나리오의 경우 이 설정을 지정해야 할 수 있습니다.
유효한 linuxFxVersion 값
다음 Azure CLI 명령을 사용하여 지원되는 Functions 런타임 버전별로 현재 linuxFxVersion
값의 테이블을 볼 수 있습니다.
az functionapp list-runtimes --os linux --query "[].{stack:join(' ', [runtime, version]), LinuxFxVersion:linux_fx_version, SupportedFunctionsVersions:to_string(supported_functions_versions[])}" --output table
이전 명령을 사용하려면 Azure CLI 버전 2.40으로 업그레이드해야 합니다.
사용자 지정 이미지
함수 앱에 대한 사용자 지정 Linux 컨테이너를 만들고 유지 관리하는 경우 다음 예와 같이 linuxFxVersion
값은 대신 DOCKER|<IMAGE_URI>
형식이 됩니다.
linuxFxVersion = "DOCKER|contoso.com/azurefunctionsimage:v1.0.0"
배포된 컨테이너의 레지스트리 원본을 나타냅니다. 자세한 내용은 컨테이너 및 Azure Functions 작업을 참조하세요.
Important
자체 컨테이너를 만들 때 컨테이너의 기본 이미지를 지원되는 최신 기본 이미지로 업데이트해야 합니다. Azure Functions에 지원되는 기본 이미지는 언어별로 다르며 Azure Functions 기본 이미지 리포지토리에서 찾을 수 있습니다.
Functions 팀은 이러한 기본 이미지에 대한 월별 업데이트를 게시하기 위해 최선을 다하고 있습니다. 정기 업데이트에는 Functions 런타임 및 언어 모두에 대한 최신 부 버전 업데이트 및 보안 수정 사항이 포함됩니다. 정기적으로 최신 기본 이미지에서 컨테이너를 업데이트하고 업데이트된 버전의 컨테이너를 다시 배포해야 합니다.
netFrameworkVersion
C# 함수용 .NET의 특정 버전을 설정합니다. 자세한 내용은 Azure에서 함수 앱 업데이트를 참조하세요.
powerShellVersion
함수가 실행되는 특정 버전의 PowerShell을 설정합니다. 자세한 내용은 PowerShell 버전 변경을 참조하세요.
로컬에서 실행하는 경우 대신 local.settings.json 파일의 FUNCTIONS_WORKER_RUNTIME_VERSION
설정을 사용합니다.
vnetContentShareEnabled
프리미엄 플랜에서 실행되는 앱은 파일 공유를 사용하여 콘텐츠를 저장합니다. 이 콘텐츠 공유의 이름은 WEBSITE_CONTENTSHARE
앱 설정에 저장되고 해당 연결 문자열은 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
에 저장됩니다. 가상 네트워크를 통해 함수 앱과 콘텐츠 공유 간에 트래픽을 라우팅하려면 vnetContentShareEnabled
도 true
로 설정해야 합니다. 탄력적 프리미엄 및 전용 호스팅 플랜에서 스토리지 계정을 가상 네트워크로 제한할 때 이 사이트 속성을 사용하도록 설정해야 합니다.
참고 항목
동일한 플랜에서 여러 함수 앱이 공유하는 스토리지 계정의 콘텐츠 공유로 라우팅할 때는 특별히 주의해야 합니다. 자세한 내용은 스토리지 고려 사항 문서에서 가상 네트워크를 통한 일관된 라우팅을 참조하세요.
이 사이트 속성은 레거시 WEBSITE_CONTENTOVERVNET
설정을 바꿉니다.
vnetImagePullEnabled
Functions는 Linux 컨테이너에서 실행되는 함수 앱을 지원합니다. 가상 네트워크 내부의 컨테이너 레지스트리에서 연결하고 끌어오려면 vnetImagePullEnabled
를 true
로 설정해야 합니다. 이 사이트 속성은 탄력적 프리미엄 및 전용 호스팅 플랜에서 지원됩니다. Flex 사용량 플랜은 네트워킹을 구성하기 위해 사이트 속성이나 앱 설정을 사용하지 않습니다. 자세한 내용은 Flex 사용량 플랜 사용 중단을 참조하세요.
vnetRouteAllEnabled
앱의 모든 아웃바운드 트래픽이 가상 네트워크를 통해 라우팅되도록 할지 여부를 나타냅니다. 설정 값 true
은 모든 애플리케이션 트래픽이 가상 네트워크를 통해 라우팅됨을 나타냅니다. 탄력적 프리미엄 및 전용 플랜에서 지역 가상 네트워크 통합을 구성할 때 이 설정을 사용합니다. 또한 가상 네트워크 NAT 게이트웨이가 고정 아웃바운드 IP 주소를 정의하는 데 사용되는 경우에도 사용됩니다. 자세한 내용은 애플리케이션 라우팅 구성을 참조하세요.
이 사이트 설정은 레거시 WEBSITE_VNET_ROUTE_ALL 설정을 바꿉니다.
Flex 사용량 플랜 사용 중단
Flex 사용량 플랜에서 다음 사이트 속성 및 애플리케이션 설정은 더 이상 사용되지 않으며 함수 앱 리소스를 만들 때 사용하면 안 됩니다.
속성/설정 | 원인 |
---|---|
ENABLE_ORYX_BUILD |
Flex 사용량에 배포할 때 remoteBuild 매개 변수로 대체됨 |
FUNCTIONS_EXTENSION_VERSION |
앱 설정은 백 엔드에서 설정됩니다. 1 미만 값은 무시할 수 있습니다. |
FUNCTIONS_WORKER_RUNTIME |
properties.functionAppConfig.runtime 에서 name 으로 바뀜 |
FUNCTIONS_WORKER_RUNTIME_VERSION |
properties.functionAppConfig.runtime 에서 version 으로 바뀜 |
FUNCTIONS_MAX_HTTP_CONCURRENCY |
크기 조정 및 동시성의 트리거 섹션으로 바뀜 |
FUNCTIONS_WORKER_PROCESS_COUNT |
설정이 유효하지 않음 |
FUNCTIONS_WORKER_DYNAMIC_CONCURRENCY_ENABLED |
설정이 유효하지 않음 |
SCM_DO_BUILD_DURING_DEPLOYMENT |
Flex 사용량에 배포할 때 remoteBuild 매개 변수로 대체됨 |
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING |
functionAppConfig의 배포 섹션으로 바뀜 |
WEBSITE_CONTENTOVERVNET |
Flex 사용량의 네트워킹에 사용되지 않음 |
WEBSITE_CONTENTSHARE |
functionAppConfig의 배포 섹션으로 바뀜 |
WEBSITE_DNS_SERVER |
DNS는 Flex의 통합 VNet에서 상속됨 |
WEBSITE_NODE_DEFAULT_VERSION |
properties.functionAppConfig.runtime 에서 version 으로 바뀜 |
WEBSITE_RUN_FROM_PACKAGE |
Flex 사용량의 배포에 사용되지 않음 |
WEBSITE_SKIP_CONTENTSHARE_VALIDATION |
콘텐츠 공유는 Flex 사용량에 사용되지 않음 |
WEBSITE_VNET_ROUTE_ALL |
Flex 사용량의 네트워킹에 사용되지 않음 |
properties.alwaysOn |
유효하지 않음 |
properties.containerSize |
instanceMemoryMB 로 이름이 변경됨 |
properties.ftpsState |
FTPS 지원 안 함 |
properties.isReserved |
유효하지 않음 |
properties.IsXenon |
유효하지 않음 |
properties.javaVersion |
properties.functionAppConfig.runtime 에서 version 으로 바뀜 |
properties.LinuxFxVersion |
properties.functionAppConfig.runtime 으로 대체 |
properties.netFrameworkVersion |
properties.functionAppConfig.runtime 에서 version 으로 바뀜 |
properties.powerShellVersion |
properties.functionAppConfig.runtime 에서 version 으로 바뀜 |
properties.siteConfig.functionAppScaleLimit |
maximumInstanceCount 로 이름이 변경됨 |
properties.siteConfig.preWarmedInstanceCount |
alwaysReadyInstances 로 이름이 변경됨 |
properties.use32BitWorkerProcess |
32비트 지원 안 함 |
properties.vnetBackupRestoreEnabled |
Flex 사용량의 네트워킹에 사용되지 않음 |
properties.vnetContentShareEnabled |
Flex 사용량의 네트워킹에 사용되지 않음 |
properties.vnetImagePullEnabled |
Flex 사용량의 네트워킹에 사용되지 않음 |
properties.vnetRouteAllEnabled |
Flex 사용량의 네트워킹에 사용되지 않음 |
properties.windowsFxVersion |
유효하지 않음 |