Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Распространенный способ хранения данных конфигурации — использовать файлы. Если вы хотите использовать конфигурацию приложений Azure для управления данными конфигурации, но в настоящее время используете файлы, вам не нужно вводить данные вручную. Вы можете использовать средства для импорта файлов конфигурации.
Если вы планируете управлять данными в конфигурации приложений, операция импорта является однократной миграцией данных. Другой вариант — продолжить управление данными конфигурации в файлах и импортировать файлы периодически в рамках процесса непрерывной интеграции и непрерывной доставки (CI/CD). Этот случай возникает при внедрении конфигурации в качестве кода.
Два профиля содержимого файлов доступны при использовании файлов конфигурации:
- Профиль содержимого файла по умолчанию: обычная схема файла конфигурации
- Профиль содержимого файла KVSet: схема, содержащая все свойства key-value конфигурации приложения
В этой статье рассматриваются оба профиля содержимого файла. Он также содержит примеры импорта и экспорта файлов конфигурации. В примерах используется Azure CLI, но основные понятия, описанные в этой статье, также применяются к другим методам импорта конфигурации приложений.
Профиль содержимого файла: по умолчанию
В средствах настройки приложений профиль содержимого файла по умолчанию — это стандартная схема файла конфигурации, которая широко используется существующими платформами программирования и системами. Этот профиль используется в средствах импорта конфигурации приложений, таких как портал Azure, Azure CLI, задача импорта конфигурации приложений Azure в Azure Pipelines и GitHub Actions. Конфигурация приложений поддерживает форматы файлов JSON, YAML и Properties.
Этот профиль полезен, если вы хотите использовать файл в качестве резервной конфигурации для приложения или локальной конфигурации во время разработки. При импорте файла конфигурации необходимо указать, как данные преобразуются в значения ключей и флаги компонентов конфигурации приложений.
В следующем файле конфигурации appsettings.jsonприведен пример профиля содержимого файла по умолчанию. Этот файл содержит один параметр конфигурации и один флаг компонента.
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"feature_management": {
"feature_flags": [
{
"id": "Beta",
"enabled": false
}
]
}
}
Чтобы импортировать этот файл в конфигурацию приложений, выполните следующую команду 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. Она применяет метку к ссылке test Key Vault и использует тип содержимого ссылки на 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
В следующей таблице показаны все импортированные данные в хранилище конфигурации приложений:
| Ключ | значение | Метка | Тип контента |
|---|---|---|---|
| .appconfig.featureflag/Beta | {"id":"Beta","description":"","enabled": false,"conditions":{"client_filters":[]}} | dev | application/vnd.microsoft.appconfig.ff+json;charset=utf-8 |
| Logging:LogLevel:Default | Предупреждение | dev | |
| Database:ConnectionString | {"URI":"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} | test | application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8 |
Профиль содержимого файла: KVSet
В средствах настройки приложений профиль содержимого файла KVSet — это схема файла, содержащая все свойства ключа-значения конфигурации приложений. Включены имя ключа, его значение, метка, тип контента и теги. Так как все свойства ключа-значения находятся в файле, вам не нужно указывать правила преобразования при импорте файла.
При использовании профиля KVSet можно определить обычные значения ключей, ссылки на Key Vault и флаги компонентов в одном файле. В результате этот профиль полезен, если вы хотите управлять всеми данными конфигурации приложений в одном файле и импортировать его на одном шаге.
Файлы, использующие этот профиль, находятся в формате JSON. Спецификация схемы см. в схеме файла KVSet.
Следующий файл ,appconfigdata.json, основан на профиле содержимого файла KVSet. Этот файл содержит флаг компонента, ссылку 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": {}
}
]
}
В предыдущем разделе показано, как импортировать данные в хранилище конфигурации приложений. Эти данные можно экспортировать в файл с помощью следующей команды Azure CLI:
az appconfig kv export --profile appconfig/kvset --label * --name <App-Configuration-store-name> --destination file --path appconfigdata.json --format json
После экспорта файла откройте его в текстовом редакторе и внесите следующие изменения:
- Задайте свойству флага функции
Betaenabledзначениеtrue. - Задайте для свойства
Logging:LogLevel:DefaultзначениеDebug.
Чтобы импортировать обновленный файл в хранилище конфигурации приложений, выполните следующую команду CLI, которая включает --profile appconfig/kvset параметр. Вам не нужно указывать правила преобразования данных, такие как разделитель, метка или тип контента, как вы сделали для профиля содержимого файла по умолчанию. Все необходимые сведения уже есть в файле.
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 версии 10.0.0 и более поздних версий.
- Портал Azure.
В следующей таблице показаны все импортированные данные в хранилище конфигурации приложений:
| Ключ | значение | Метка | Тип контента |
|---|---|---|---|
| .appconfig.featureflag/Beta | {"id":"Бета","description":"Функция бета","enabled":true,"conditions":{"client_filters":[]}} | dev | application/vnd.microsoft.appconfig.ff+json;charset=utf-8 |
| Logging:LogLevel:Default | Debug | dev | |
| Database:ConnectionString | {"URI":"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} | test | application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8 |