2017-10-14 5 views
2

Je viens de commencer à expérimenter avec les fonctions Azure et j'essaie de comprendre comment contrôler les paramètres de l'application en fonction de l'environnement.Fonctions Azure: comment contrôler les paramètres de l'application de développement/production/mise en scène?

En dotnet core, vous pouviez avoir appsettings.json, appsettings.development.json, etc. Et lorsque vous vous déplacez entre différents environnements, la configuration change. Cependant, en regardant la documentation de la fonction Azure, tout ce que je peux trouver, c'est que vous pouvez configurer la configuration dans le portail azure mais je ne vois rien à propos de la configuration de la configuration dans la solution.

Alors, quelle est la meilleure façon de gérer l'environnement de construction?

Merci à l'avance :-)

Répondre

4

La meilleure façon, à mon avis, utilise un système de construction et la libération proprement dite, comme VSTS. Ce que j'ai fait dans l'une de mes solutions est de créer un modèle ARM de mon application Function et de le déployer en utilisant un pipeline de publication avec VSTS RM.

De cette façon, vous pouvez simplement ajouter une valeur au template.json, comme celle d'en bas.

"appSettings": [ 
    // other entries 
    { 
     "name": "MyValue", 
     "value": "[parameters('myValue')]" 
    } 

Vous aurez besoin d'un autre fichier, appelé parameters.json qui contiendra les valeurs. Ce fichier ressemble à cela (pour le moment).

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 
    "contentVersion": "1.0.0.0", 
    "parameters": { 
     "name": {}, 
     "storageName": {}, 
     "location": {}, 
     "subscriptionId": {} 
    } 
} 

Retour dans VSTS vous pouvez simplement changer/remplacer les valeurs de ces paramètres dans le portail. En utilisant un tel flux de travail, vous obtiendrez une implémentation CI/CD professionnelle où personne ne doit se préoccuper des secrets actuels. Ils sont uniquement connus des administrateurs système.

+0

Merci pour cela! J'ai fait quelques lectures supplémentaires à la recherche de réponses et il semble que, bien que l'utilisation d'un appsoft de style de base dotnet est sur la liste des emplois pour Microsoft en utilisant ARM était leur réponse au problème. Cela ressemble à une bonne approche DevOps aussi! –