web-dev-qa-db-fra.com

Lire les valeurs de local.settings.json dans le développement de la fonction Azure VS 2017

Je fais le développement de fonctions Azure dans VS 2017. J'ai besoin de configurer quelques paramètres de configuration personnalisés. Je les ai ajoutés dans local.settings.json sous Values.

{
   "IsEncrypted":false,
   "Values" : {
      "CustomUrl" : "www.google.com",
       "Keys": { 
           "Value1":"1",
           "Value2" :"2"
       }
   }
}

À présent, ConfigurationManager.AppSettings["CustomUrl"] renvoie null.

. Net Framework: 4.7

Microsoft.NET.Sdk.Functions: 1.0.5

System.Configuration.ConfigurationManager: 4.4.0

Azure.Functions.Cli: 1.0.4

Suis-je en train de manquer quelque chose?

14
Venky

Tout d'abord, je crée un échantillon et fais un test avec vos données local.settings.json , comme Mikhail et ahmelsayed l'ont dit, cela fonctionne très bien.

En outre, pour autant que je sache, la collection Values est censée être un dictionnaire, si elle contient des valeurs autres que des chaînes, elle peut empêcher la fonction Azure de lire les valeurs de local.settings.json.

Mon test:

ConfigurationManager.AppSettings["CustomUrl"] renvoie null avec le fichier local.settings.json suivant.

{
  "IsEncrypted": false,
  "Values": {
    "CustomUrl": "www.google.com",
    "testkey": {
      "name": "kname1",
      "value": "kval1"
    }
  }
}

enter image description here

10
Fei Han

Environment.GetEnvironmentVariable("key")

J'ai pu lire les valeurs de local.settings.json en utilisant la ligne de code ci-dessus.

18
jayasurya_j

La fonction Azure copie les fichiers binaires dans le dossier bin et s'exécute à l'aide de la fonction Azure cli, donc elle recherche le fichier local.settings.json, alors assurez-vous d'avoir défini le "Copy to Output Directory" à "Copy Always"

enter image description here

1
Nivedha Lakshmanan

Si vous utilisez la fonction Azure basée sur TimeTrigger, vous pouvez accéder à votre clé (créée dans local.settings.json) à partir de la fonction Azure comme ci-dessous.

[FunctionName("BackupTableStorageFunction")]
public static void Run([TimerTrigger("%BackUpTableStorageTriggerTime%")]TimerInfo myTimer, TraceWriter log, CancellationToken cancellationToken)
0
Ashish Jain