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?
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"
}
}
}
Environment.GetEnvironmentVariable("key")
J'ai pu lire les valeurs de local.settings.json en utilisant la ligne de code ci-dessus.
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)