애플리케이션 설정 구성
App Service에서 앱 설정은 애플리케이션 코드에 환경 변수로 전달되는 변수입니다. Linux 앱 및 사용자 지정 컨테이너의 경우, App Service는 --env 플래그를 사용하여 컨테이너에 앱 설정을 전달하고 컨테이너에서 환경 변수를 설정합니다. 두 경우 모두 앱을 시작할 때 앱 환경에 삽입됩니다. 앱 설정을 추가, 제거 또는 편집하는 경우 App Service는 앱 다시 시작을 트리거합니다.
ASP.NET 및 ASP.NET Core 개발자의 경우, App Service에서 앱 설정을 설정하는 것은 <appSettings> 또는 appsettings.json에서 를 설정하는 것과 같지만 App Service의 값이 Web.config 또는 appsettings.json의 값을 재정의합니다.
Web.config 또는 appsettings.json에서 개발 설정(예: 로컬 MySQL 암호) 및 프로덕션 비밀(예: Azure MySQL 데이터베이스 암호)을 App Service 내에 안전하게 보관할 수 있습니다. 로컬에서 디버그할 때 동일한 코드가 개발 설정을 사용하고 Azure에 배포될 때 프로덕션 비밀을 사용합니다.
앱 설정은 저장될 때 항상 암호화됩니다(미사용 암호화). 앱 설정 이름에는 문자, 숫자(0-9), 마침표("."), 밑줄("_")만 포함할 수 있습니다. 앱 설정 값의 특수 문자는 대상 OS에서 필요에 따라 이스케이프해야 합니다.
애플리케이션 설정은 앱 관리 페이지로 이동하여 환경 변수 > 애플리케이션 설정을 선택하여 액세스할 수 있습니다.
설정 추가 및 편집
새 앱 설정을 추가하려면 + 추가를 선택합니다. 배포 슬롯을 사용하는 경우 설정을 교환할 수 있는지 여부를 지정할 수 있습니다. 대화 상자에서 설정을 현재 슬롯에 고정할 수 있습니다.
완료되면 적용을 선택합니다. 환경 변수 페이지에서 적용을 다시 선택해야 합니다.
참고 항목
기본 Linux 앱 서비스 또는 사용자 지정 Linux 컨테이너에서, ApplicationInsights:InstrumentationKey과 같은 앱 설정 이름의 중첩된 JSON 키 구조체는 App Service에서 키 이름으로 ApplicationInsights__InstrumentationKey로 구성해야 합니다. 모든 :를 __ (이중 밑줄)로 대체하십시오. 앱 설정 이름의 모든 마침표는 _로 (단일 밑줄) 대체됩니다.
애플리케이션 설정 대량 편집
앱 설정을 대량으로 추가하거나 편집하려면 고급 편집 단추를 선택합니다. 작업을 마쳤으면 확인을 선택합니다. 환경 변수 페이지에서 적용을 다시 선택해야 합니다. 앱 설정에는 다음과 같은 JSON 형식이 있습니다.
[
{
"name": "<key-1>",
"value": "<value-1>",
"slotSetting": false
},
{
"name": "<key-2>",
"value": "<value-2>",
"slotSetting": false
},
...
]
연결 문자열 구성
ASP.NET 및 ASP.NET Core 개발자의 경우 App Service에서 연결 문자열을 설정하는 것은 <connectionStrings>의 에서 설정하는 것과 비슷하지만 App Service에서 설정한 값이 Web.config의 값보다 우선 적용됩니다. 다른 언어 스택의 경우 값에 액세스하려면 연결 문자열에 변수 키에 특수 서식이 필요하므로 대신 앱 설정을 사용하는 것이 좋습니다.
팁
non-.NET 언어에 대한 앱 설정 대신 연결 문자열을 사용할 수 있는 한 가지 경우가 있습니다. 특정 Azure 데이터베이스 유형은 App Service 앱에서 데이터베이스에 대한 연결 문자열을 구성하는 경우에만 앱과 함께 백업됩니다.
연결 문자열을 추가 및 편집할 때 따라야 할 원칙은 다른 앱 설정과 동일하며 연결 문자열은 배포 슬롯에 연결할 수도 있습니다. 대량 추가 또는 편집에 사용하는 JSON 형식으로 된 연결 문자열의 예입니다.
[
{
"name": "name-1",
"value": "conn-string-1",
"type": "SQLServer",
"slotSetting": false
},
{
"name": "name-2",
"value": "conn-string-2",
"type": "PostgreSQL",
"slotSetting": false
},
...
]
참고 항목
PostgreSQL을 대상으로 하는 .NET 앱은 .NET의 알려진 문제에 대한 해결 방법으로 연결 문자열을 EnvironmentVariablesConfigurationProvider으로 설정해야 합니다.
런타임에 연결 문자열은 환경 변수로 사용할 수 있으며, 다음 연결 형식이 접두사로 사용됩니다.
- SQLServer:
SQLCONNSTR_ - MySQL:
MYSQLCONNSTR_ - SQLAzure:
SQLAZURECONNSTR_ - 사용자 지정:
CUSTOMCONNSTR_ - PostgreSQL:
POSTGRESQLCONNSTR_ - 알림 허브:
NOTIFICATIONHUBCONNSTR_ - Service Bus:
SERVICEBUSCONNSTR_ - 이벤트 허브:
EVENTHUBCONNSTR_ - 문서 DB:
DOCDBCONNSTR_ - Redis Cache:
REDISCACHECONNSTR_
예를 들어 MySQL 연결 문자열 이름이 connectionstring1로 지정된 경우 환경 변수 MYSQLCONNSTR_connectionString1을 통해 액세스될 수 있습니다.
사용자 지정 컨테이너에 대한 환경 변수 구성
사용자 지정 컨테이너는 외부로 제공해야 하는 환경 변수를 사용할 수 있습니다. 이는 Cloud Shell을 통해 전달할 수 있습니다. Bash에서:
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings key1=value1 key2=value2
PowerShell에서:
Set-AzWebApp -ResourceGroupName <group-name> -Name <app-name> -AppSettings @{"DB_HOST"="myownserver.mysql.database.azure.com"}
앱이 실행되면 App Service 앱 설정이 환경 변수로 프로세스에 자동으로 삽입됩니다. URL(https://<app-name>.scm.azurewebsites.net/Env)을 사용하여 컨테이너 환경 변수를 확인할 수 있습니다.