Azure App Configuration prise en charge des fichiers de configuration

Les fichiers sont l’une des méthodes les plus courantes pour stocker les données de configuration. Pour vous aider à démarrer rapidement, App Configuration dispose d’outils pour vous aider à importer vos fichiers de configuration, de sorte que vous n’avez pas à taper manuellement vos données. Cette opération est une migration de données ponctuelle si vous envisagez de gérer vos données dans App Configuration après leur importation. Dans certains autres cas, par exemple, lorsque vous adoptez la configuration en tant que code, vous pouvez continuer à gérer vos données de configuration dans les fichiers et les importer dans le cadre de votre processus CI/CD de manière récurrente. Vous pouvez trouver l’un de ces deux scénarios s’applique à vous :

  • Vous conservez le fichier de configuration au format que vous aviez précédemment. Ce format est utile si vous souhaitez utiliser le fichier comme configuration de secours pour votre application ou la configuration locale pendant le développement. Lorsque vous importez le fichier de configuration, spécifiez comment les données transformées en valeurs de clé App Configuration. Cette option est le profil de contenu de fichier par défaut dans des outils d’importation App Configuration tels que le portail, Azure CLI, la tâche Push Azure Pipeline, GitHub Actions, etc.
  • Vous conservez le fichier de configuration au format qui contient toutes les propriétés clé-valeur d’App Configuration. Lorsque vous importez le fichier, vous n’avez pas besoin de spécifier de règles de transformation, car toutes les propriétés d’une clé-valeur sont déjà dans le fichier. Cette option est appelée profil de contenu de fichier KVSet dans les outils d’importation App Configuration. Il est utile de gérer toutes vos données App Configuration, y compris les valeurs de clé régulières, les références Key Vault et les indicateurs de fonctionnalités, dans un fichier et les importer dans une capture.

Le reste de ce document traite en détail des profils de contenu de fichier et utilise Azure CLI comme exemple. Le même concept s’applique également à d’autres outils d’importation App Configuration.

Profil de contenu de fichier : par défaut

Le profil de contenu de fichier par défaut dans App Configuration outils fait référence au schéma de fichier de configuration classique largement adopté par les infrastructures de programmation ou les systèmes existants. App Configuration prend en charge les formats de fichier JSON, Yaml ou Properties.

L’exemple suivant est un fichier de configuration nommé appsettings.json contenant un paramètre de configuration et un indicateur de fonctionnalité.

{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "FeatureManagement": {
        "Beta": false
    }
}

Exécutez la commande CLI suivante pour l’importer dans App Configuration avec l’étiquette dev et utilisez le signe deux-points (:) comme séparateur pour aplatir le nom de la clé. Vous pouvez éventuellement ajouter le paramètre « ---profile appconfig/default ». Il est ignoré dans l’exemple, car il s’agit de la valeur par défaut.

az appconfig kv import --label dev --separator : --name <your store name> --source file --path appsettings.json --format json

Les références Key Vault nécessitent un type de contenu particulier lors de l’importation, de sorte que vous les conservez dans un fichier distinct. L'exemple suivant est un fichier nommé keyvault-refs.json.

{
    "Database:ConnectionString": {
        "uri": "https://<your-vault-name>.vault.azure.net/secrets/db-secret"
    }  
}

Exécutez la commande CLI suivante pour l’importer avec l’étiquette test et 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 <your store name> --source file --path keyvault-refs.json --format json

Le tableau suivant montre toutes les données importées dans votre magasin de 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://<your-vault-name>.vault.azure.net/secrets/db-secret"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Profil de contenu de fichier : KVSet

Le profil de contenu de fichier KVSet dans les outils App Configuration fait référence à un schéma de fichier qui contient toutes les propriétés d’une valeur clé App Configuration, notamment la clé, la valeur, l’étiquette, le type de contenu et les balises. Le fichier est au format JSON. Consultez le schéma de fichier KVSet pour la spécification du schéma.

L’exemple suivant est un fichier basé sur le profil de contenu du fichier KVSet, nommé appconfigdata.json, contenant un indicateur de fonctionnalité, une référence Key Vault et une valeur de clé régulière.

{
  "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://<your-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": {}
    }
  ]
}

Conseil

Si vous avez suivi l’exemple de la section précédente et que vous avez les données dans votre magasin de App Configuration, vous pouvez l’exporter vers un fichier à l’aide de la commande CLI :

az appconfig kv export --profile appconfig/kvset --label * --name <your store name> --destination file --path appconfigdata.json --format json 

Une fois le fichier exporté, mettez à jour la propriété de Betal’indicateur de fonctionnalité enabled sur true et modifiez Logging:LogLevel:Default vers Debug.

Exécutez la commande CLI suivante avec le paramètre « --profile appconfig/kvset » pour importer le fichier dans votre magasin App Configuration. Vous n’avez pas besoin de spécifier de règles de transformation de données telles que le séparateur, l’étiquette ou le type de contenu comme vous l’avez fait dans la section profil de contenu de fichier par défaut, car toutes les informations se trouvent déjà dans le fichier.

az appconfig kv import --profile appconfig/kvset --name <your store name> --source file --path appconfigdata.json --format json

Notes

Le profil de contenu de fichier KVSet est actuellement pris en charge dans

Le tableau suivant montre toutes les données importées dans votre magasin de App Configuration.

Clé Valeur Étiquette Type de contenu
.appconfig.featureflag/Beta {"id":"Beta","description":"Beta feature","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://<your-vault-name>.vault.azure.net/secrets/db-secret"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Étapes suivantes