J'ai ce local.settings.json dans ma fonction Azure locale (déclenchée par Http)
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "", "FUNCTIONS_WORKER_RUNTIME": "python" }, "ConnectionStrings": { "SQLConnectionString": "valid connection string " } }
Je veux accéder à la variable "SQLConnectionString" et l'utiliser dans mon code Python3.6. J'ai trouvé de nombreux guides pour accéder à cette variable avec C #, mais je n'ai pas eu la chance de trouver comment le faire via python.
3 Réponses :
Vous pouvez accéder à ces paramètres en déclarant import os, puis en utilisant
setting = os.environ ["setting-name"]
.
Plus d'informations - Référence pour les développeurs
Essayé: import os .... print (os.environ ["SQLConnectionString"]) ou print (os.environ ["ConnectionStrings"]) Avec le même résultat: System.Private.CoreLib: Exception lors de l'exécution de la fonction: Functions.HttpTrigger . System.Private.CoreLib: résultat: exception d'échec: KeyError: 'SQLConnectionString'
Je viens de le tester et j'ai rencontré la même erreur. Vous devez modifier votre local.setting.json comme suit:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "", "FUNCTIONS_WORKER_RUNTIME": "python" }, "ConnectionStrings": { "SQLConnectionString": "xxxxxxxx" } }
mais pas
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "", "FUNCTIONS_WORKER_RUNTIME": "python", "SQLConnectionString": "cnx = mysql.connector.connect(user=\"test@hurytestmysqlserver\", password=\"Password123\", host=\"testmysqlserver.mysql.database.azure.com\", port=3306, database=\"xxx\", .....)" } }
Veuillez essayer.
Juste en complément ~ (je voulais fournir la solution "os.environ [xxx]" mais j'ai vu la solution fournie par HariHaran, haha ~)
yup modifier le local.setting.json sans avoir imbriqué "ConnectionStrings": {"SQLConnectionString": "xxxxxxxx"} aidé. Merci beaucoup!
En Python, vous devez faire ce qui suit:
import os conn = os.environ["ConnectionStrings:SQLConnectionString"]
Cela vous dérange-t-il de définir les propriétés (telles que le nom d'utilisateur, le mot de passe, le port ...) séparément dans l'opération de connexion au lieu de la chaîne de connexion?
La chaîne de connexion sera masquée dans Azure Key Vault et accessible via des variables d'environnement Azure à l'avenir. Mais à des fins de test et de développement, j'aimerais avoir une chaîne de connexion dans local.settings.json.