J'essaie d'exécuter un script python avec des fonctions Azure. J'ai réussi à mettre à jour la version Python et à installer des modules sur des fonctions Azure dans le plan App Services, mais je dois l'utiliser dans le plan Consommation, car mon script ne sera exécuté qu'une fois par jour et pendant quelques minutes à peine. ne payez que pour le moment de l'exécution. Voir: https://Azure.Microsoft.com/en-au/services/functions/
Maintenant, je suis encore novice dans ce domaine, mais si je comprends bien, le plan de consommation accélère et met fin à la machine virtuelle après l'exécution de votre script, contrairement au plan App Service toujours activé. Je ne sais pas pourquoi cela voudrait dire que je ne peux rien installer dessus. Je pensais que cela signifierait simplement que je devrais l'installer à chaque fois que je le lance.
J'ai essayé d'installer des modules via le script Python lui-même et la ligne de commande kudu sans succès.
Tandis que sous le plan de service de l'application, c'était simple, suivez ce tutoriel: https://prmadi.com/running-python-code-on-Azure-functions-app/
Sur le plan de consommation des fonctions, les extensions Kudu ne sont pas disponibles. Cependant, vous pouvez mettre à jour pip pour pouvoir installer correctement toutes vos dépendances:
Votre shell devrait maintenant être préfixé par (myvenv)
Maintenant, dans le portail Azure, dans votre script, mettez à jour le chemin sys.path pour ajouter ce qui suit:
import sys, os.path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), 'myvenv/Lib/site-packages')))
Vous devriez pouvoir commencer ce que vous voulez maintenant.
(Référence: https://github.com/Azure/azure-sdk-for-python/issues/1044 )
Edit: en lisant le commentaire précédent, il semble que vous ayez besoin de Numpy. Je viens de tester en ce moment et j'ai pu installer 1.12.1 sans aucun problème.
Vous pouvez télécharger les modules pour la version Python de votre choix dans Plan de consommation. Veuillez vous référer aux instructions sur ce lien: https://github.com/Azure/azure-webjobs-sdk-script/wiki/Using-a-custom-version-of-Python
C'est ce qui a fonctionné pour moi:
Dislaimer: J'utilise C # Fonction qui inclut l'exécution du script Python, à l'aide de la ligne de commande avec la classe
System.Diagnostics.Process
.
Ajoutez une extension Python pertinente pour la fonction Azure de Azure Portal: Fonctionnalités de la plateforme -> Outils de développement -> Extensions
Il a installé python dans D:\home\python364x86
(comme on le voit depuis la console Kudu)
Ajoutez un paramètre d'application appelé WEBSITE_USE_PLACEHOLDER et définissez sa valeur sur 0. Cela est nécessaire pour contourner un problème lié à Azure Functions qui provoque l'arrêt de l'extension Python après le déchargement de l'application de fonction.
Voir: Utilisation de Python 3 dans Azure Functions question.
Installez les packages à partir de la console de ligne Kudu CMD en utilisant pip install ...
(dans mon cas c'était pip install pandas
)