Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un moyen courant de stocker des données de configuration consiste à utiliser des fichiers. Si vous souhaitez utiliser Azure App Configuration pour gérer vos données de configuration, mais que vous utilisez actuellement des fichiers, vous n’avez pas besoin d’entrer vos données manuellement. Vous pouvez utiliser des outils pour importer vos fichiers de configuration.
Si vous envisagez de gérer vos données dans App Configuration, l’opération d’importation est une migration de données unique. Une autre option consiste à continuer à gérer vos données de configuration dans des fichiers et à importer les fichiers de manière récurrente dans le cadre de votre processus d’intégration continue et de livraison continue (CI/CD). Ce cas se produit lorsque vous adoptez la configuration en tant que code.
Deux profils de contenu de fichier sont disponibles lorsque vous utilisez des fichiers de configuration :
- Profil de contenu de fichier par défaut : schéma de fichier de configuration classique
- Profil de contenu du fichier KVSet : schéma qui contient toutes les propriétés clé-valeur d’App Configuration
Cet article décrit les deux profils de contenu de fichier. Il fournit également des exemples d’importation et d’exportation de fichiers de configuration. Les exemples utilisent Azure CLI, mais les concepts de cet article s’appliquent également à d’autres méthodes d’importation App Configuration.
Profil de contenu de fichier : par défaut
Dans les outils App Configuration, le profil de contenu de fichier par défaut est le schéma de fichier de configuration classique largement adopté par les infrastructures de programmation et les systèmes existants. Ce profil est utilisé dans les outils d’importation App Configuration tels que le portail Azure, Azure CLI, la tâche d’importation Azure App Configuration dans Azure Pipelines et GitHub Actions. App Configuration prend en charge les formats de fichiers JSON, YAML et Properties.
Ce profil est utile si vous souhaitez utiliser un fichier comme configuration de secours pour votre application ou la configuration locale pendant le développement. Lorsque vous importez le fichier de configuration, vous spécifiez la façon dont vous souhaitez que les données soient transformées en valeurs clés et indicateurs de fonctionnalité App Configuration.
Le fichier de configuration suivant, appsettings.json, fournit un exemple du profil de contenu de fichier par défaut. Ce fichier contient un paramètre de configuration et un indicateur de fonctionnalité.
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"feature_management": {
"feature_flags": [
{
"id": "Beta",
"enabled": false
}
]
}
}
Pour importer ce fichier dans App Configuration, exécutez la commande Azure CLI suivante. Il applique une étiquette dev au paramètre et à l’indicateur de fonctionnalité, et utilise un signe deux-points (:) comme séparateur pour aplatir le nom de la clé.
az appconfig kv import --label dev --separator : --name <App-Configuration-store-name> --source file --path appsettings.json --format json
Vous pouvez éventuellement ajouter le paramètre suivant à la commande précédente : --profile appconfig/default. Le paramètre est facultatif, car le profil par défaut est appconfig/default.
Les références Azure Key Vault nécessitent un type de contenu particulier lors de l’importation. Par conséquent, vous les conservez dans un fichier distinct, comme indiqué dans le fichier suivant, keyvault-refs.json:
{
"Database:ConnectionString": {
"uri": "https://<Key-Vault-name>.vault.azure.net/secrets/db-secret"
}
}
Pour importer ce fichier, exécutez la commande Azure CLI suivante. Il applique une test étiquette à la référence Key Vault et utilise le type de contenu de référence 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
Le tableau suivant montre toutes les données importées dans votre magasin App Configuration :
| Clé | Valeur | Étiquette | Type de contenu |
|---|---|---|---|
| .appconfig.featureflag/Beta | {"id": "Beta", "description": "", "enabled": false, "conditions": {"client_filters": []}} | dev | application/vnd.microsoft.appconfig.ff+json;charset=utf-8 |
| Logging:LogLevel:Default | Avertissement | dev | |
| Database:ConnectionString | {"uri » :"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} | test | application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8 |
Profil de contenu de fichier : KVSet
Dans les outils App Configuration, le profil de contenu du fichier KVSet est un schéma de fichier qui contient toutes les propriétés d’une clé-valeur App Configuration. Il s’agit du nom de clé, de sa valeur, de son étiquette, de son type de contenu et de ses balises. Étant donné que toutes les propriétés d’une clé-valeur se trouvent dans le fichier, vous n’avez pas besoin de spécifier de règles de transformation lorsque vous importez le fichier.
Lorsque vous utilisez le profil KVSet, vous pouvez définir des valeurs de clé régulières, des références Key Vault et des indicateurs de fonctionnalité dans un fichier. Par conséquent, ce profil est utile si vous souhaitez gérer toutes vos données App Configuration dans un fichier et les importer en une seule étape.
Les fichiers qui utilisent ce profil sont au format JSON. Pour la spécification du schéma, consultez le schéma de fichier KVSet.
Le fichier suivant, appconfigdata.json, est basé sur le profil de contenu du fichier KVSet. Ce fichier contient un indicateur de fonctionnalité, une référence Key Vault et une valeur de clé standard.
{
"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": {}
}
]
}
Dans la section précédente, un exemple montre comment importer des données dans votre magasin App Configuration. Vous pouvez exporter ces données dans un fichier à l’aide de la commande Azure CLI suivante :
az appconfig kv export --profile appconfig/kvset --label * --name <App-Configuration-store-name> --destination file --path appconfigdata.json --format json
Après avoir exporté le fichier, ouvrez-le dans un éditeur de texte et apportez les modifications suivantes :
- Définissez la propriété
Betade l’indicateur de fonctionnalitéenabledsurtrue. - Attribuez à la propriété
Logging:LogLevel:Defaultla valeurDebug.
Pour importer le fichier mis à jour dans votre magasin App Configuration, exécutez la commande CLI suivante, qui inclut le --profile appconfig/kvset paramètre. Vous n’avez pas besoin de spécifier des règles de transformation de données telles qu’un séparateur, une étiquette ou un type de contenu comme vous l’avez fait pour le profil de contenu de fichier par défaut. Toutes les informations nécessaires se trouvent déjà dans le fichier.
az appconfig kv import --profile appconfig/kvset --name <App-Configuration-store-name> --source file --path appconfigdata.json --format json
Remarque
Le profil de contenu du fichier KVSet est actuellement pris en charge dans :
- Azure CLI version 2.30.0 et ultérieure.
- Tâche d'importation de Azure App Configuration version 10.0.0 et ultérieure.
- Portail Azure.
Le tableau suivant montre toutes les données importées dans votre magasin App Configuration :
| Clé | Valeur | Étiquette | Type de contenu |
|---|---|---|---|
| .appconfig.featureflag/Beta | {"id » :"Beta »,"description » :"Fonctionnalité bêta »,"enabled » :true,"conditions » :{"client_filters » :[]}} | dev | application/vnd.microsoft.appconfig.ff+json;charset=utf-8 |
| Logging:LogLevel:Default | Déboguer | dev | |
| Database:ConnectionString | {"uri » :"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} | test | application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8 |