구성 데이터를 저장하는 일반적인 방법은 파일을 사용하는 것입니다. Azure App Configuration을 사용하여 구성 데이터를 관리하지만 현재 파일을 사용하는 경우 데이터를 수동으로 입력할 필요가 없습니다. 도구를 사용하여 구성 파일을 가져올 수 있습니다.
App Configuration에서 데이터를 관리하려는 경우 가져오기 작업은 일회성 데이터 마이그레이션입니다. 또 다른 옵션은 파일에서 구성 데이터를 계속 관리하고 CI/CD(지속적인 통합 및 지속적인 업데이트) 프로세스의 일부로 파일을 반복적으로 가져오는 것입니다. 이 경우 구성을 코드로 채택할 때 발생합니다.
구성 파일을 사용하는 경우 두 개의 파일 콘텐츠 프로필을 사용할 수 있습니다.
- 기본 파일 콘텐츠 프로필: 기존 구성 파일 스키마
- KVSet 파일 콘텐츠 프로필: 모든 App Configuration 키-값 속성을 포함하는 스키마
이 문서에서는 두 파일 콘텐츠 프로필에 대해 설명합니다. 또한 구성 파일을 가져오고 내보내는 예제도 제공합니다. 이 예제에서는 Azure CLI를 사용하지만 이 문서의 개념은 다른 App Configuration 가져오기 메서드에도 적용됩니다.
파일 콘텐츠 프로필: 기본값
App Configuration 도구에서 기본 파일 콘텐츠 프로필은 기존 프로그래밍 프레임워크 및 시스템에서 널리 채택되는 기존의 구성 파일 스키마입니다. 이 프로필은 Azure Portal, Azure CLI, Azure Pipelines의 Azure App Configuration 가져오기 작업 및 GitHub Actions와 같은 App Configuration 가져오기 도구에서 사용됩니다. App Configuration은 JSON, YAML 및 속성 파일 형식을 지원합니다.
이 프로필은 개발 중에 애플리케이션 또는 로컬 구성에 대한 대체 구성으로 파일을 사용하려는 경우에 유용합니다. 구성 파일을 가져올 때 데이터를 App Configuration 키-값 및 기능 플래그로 변환하는 방법을 지정합니다.
다음 구성 파일 appsettings.json기본 파일 콘텐츠 프로필의 예를 제공합니다. 이 파일에는 하나의 구성 설정과 하나의 기능 플래그가 포함되어 있습니다.
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"feature_management": {
"feature_flags": [
{
"id": "Beta",
"enabled": false
}
]
}
}
이 파일을 App Configuration으로 가져오려면 다음 Azure CLI 명령을 실행합니다. 설정 및 기능 플래그에 레이블을 적용 dev 하고 콜론(:)을 구분 기호로 사용하여 키 이름을 평면화합니다.
az appconfig kv import --label dev --separator : --name <App-Configuration-store-name> --source file --path appsettings.json --format json
필요에 따라 다음 매개 변수를 이전 명령에 --profile appconfig/default추가할 수 있습니다. 기본 프로필은 .이므로 매개 변수는 선택 사항입니다 appconfig/default.
Azure Key Vault 참조는 가져오는 동안 특정 콘텐츠 형식이 필요합니다. 따라서 다음 파일과 같이 별도의 파일에 보관합니다. keyvault-refs.json.
{
"Database:ConnectionString": {
"uri": "https://<Key-Vault-name>.vault.azure.net/secrets/db-secret"
}
}
이 파일을 가져오려면 다음 Azure CLI 명령을 실행합니다. Key Vault 참조에 test 레이블을 적용하고 Key Vault 참조 콘텐츠 형식을 사용합니다.
az appconfig kv import --label test --content-type "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8" --name <App-Configuration-store-name> --source file --path keyvault-refs.json --format json
다음 표에서는 App Configuration 저장소에서 가져온 모든 데이터를 보여 줍니다.
| 키 | 값 | Label | 내용 유형 |
|---|---|---|---|
| .appconfig.featureflag/Beta | {"id":"베타","description":"","enabled": false,"conditions":{"client_filters":[]}} | 개발 | application/vnd.microsoft.appconfig.ff+json;charset=utf-8 |
| Logging:LogLevel:Default | Warning | 개발 | |
| Database:ConnectionString | {"uri":"https://<Key-Vault-name>.vault.azure.net/secrets/db-secret"} | 테스트 | application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8 |
파일 콘텐츠 프로필: KVSet
App Configuration 도구에서 KVSet 파일 콘텐츠 프로필은 App Configuration 키-값의 모든 속성을 포함하는 파일 스키마입니다. 키 이름, 값, 레이블, 콘텐츠 형식 및 태그가 포함됩니다. 키-값의 모든 속성이 파일에 있으므로 파일을 가져올 때 변환 규칙을 지정할 필요가 없습니다.
KVSet 프로필을 사용하는 경우 하나의 파일에서 일반 키-값, Key Vault 참조 및 기능 플래그를 정의할 수 있습니다. 따라서 이 프로필은 하나의 파일에서 모든 App Configuration 데이터를 관리하고 한 단계로 가져오려는 경우에 유용합니다.
이 프로필을 사용하는 파일은 JSON 형식입니다. 스키마 사양은 KVSet 파일 스키마를 참조하세요.
다음 파일 appconfigdata.jsonKVSet 파일 콘텐츠 프로필을 기반으로 합니다. 이 파일에는 기능 플래그, Key Vault 참조 및 표준 키 값이 포함되어 있습니다.
{
"items": [
{
"key": ".appconfig.featureflag/Beta",
"value": "{\"id\":\"Beta\",\"description\":\"Beta feature\",\"enabled\":true,\"conditions\":{\"client_filters\":[]}}",
"label": "dev",
"content_type": "application/vnd.microsoft.appconfig.ff+json;charset=utf-8",
"tags": {}
},
{
"key": "Database:ConnectionString",
"value": "{\"uri\":\"https://<Key-Vault-name>.vault.azure.net/secrets/db-secret\"}",
"label": "test",
"content_type": "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8",
"tags": {}
},
{
"key": "Logging:LogLevel:Default",
"value": "Debug",
"label": "dev",
"content_type": null,
"tags": {}
}
]
}
이전 섹션에서는 App Configuration 저장소로 데이터를 가져오는 방법을 보여 줍니다. 다음 Azure CLI 명령을 사용하여 해당 데이터를 파일로 내보낼 수 있습니다.
az appconfig kv export --profile appconfig/kvset --label * --name <App-Configuration-store-name> --destination file --path appconfigdata.json --format json
파일을 내보낸 후 텍스트 편집기에서 파일을 열고 다음을 변경합니다.
-
Beta기능 플래그enabled속성을true로 설정합니다. -
Logging:LogLevel:Default속성을Debug으로 설정합니다.
업데이트된 파일을 App Configuration 저장소로 가져오려면 매개 변수를 포함하는 --profile appconfig/kvset 다음 CLI 명령을 실행합니다. 기본 파일 콘텐츠 프로필에 대해 했던 것처럼 구분 기호, 레이블 또는 콘텐츠 형식과 같은 데이터 변환 규칙을 지정할 필요가 없습니다. 필요한 모든 정보가 이미 파일에 있습니다.
az appconfig kv import --profile appconfig/kvset --name <App-Configuration-store-name> --source file --path appconfigdata.json --format json
참고 항목
KVSet 파일 콘텐츠 프로필은 현재 다음에서 지원됩니다.
- Azure CLI 버전 2.30.0 이상.
- Azure App Configuration 가져오기 작업 버전 10.0.0 이상.
- Azure Portal입니다.
다음 표에서는 App Configuration 저장소에서 가져온 모든 데이터를 보여 줍니다.
| 키 | 값 | Label | 내용 유형 |
|---|---|---|---|
| .appconfig.featureflag/Beta | {"id":"베타","description":"베타 기능","enabled":true,"conditions":{"client_filters":[]}} | 개발 | application/vnd.microsoft.appconfig.ff+json;charset=utf-8 |
| Logging:LogLevel:Default | 디버그 | 개발 | |
| Database:ConnectionString | {"uri":"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} | 테스트 | application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8 |