Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Azure Functions prend en charge trois options de génération pour publier vos applications Python sur Azure. Choisissez votre méthode de génération en fonction de votre environnement local, des dépendances d’application et des exigences d’exécution.
Comparaison rapide des actions de compilation
| Type de déploiement | Emplacement où les dépendances sont installées | Cas d’utilisation typique |
|---|---|---|
| Compilation à distance (recommandé) | Azure (App Service) | Par défaut, recommandé pour la plupart des utilisateurs |
| Compilation locale | Votre machine | Développeurs Linux/macOS, scénarios Windows limités |
| Dépendances personnalisées | Géré via une URL d’index supplémentaire ou une installation locale | Dépendances non PyPI |
Considérations relatives au package de déploiement
Lors du déploiement de votre application de fonction Python sur Azure, gardez à l’esprit ces exigences d’empaquetage :
- Contenu du package, et non le dossier : déployez le contenu de votre dossier de projet, et non le dossier lui-même.
-
Niveau
host.jsonracine : vérifiez qu’un seulhost.jsonfichier se trouve à la racine du package de déploiement, et non imbriqué dans un sous-dossier. -
Exclure des fichiers de développement : vous pouvez exclure des dossiers tels que
tests/,.github/et.venv*/du package déployé en les incluant dans.funcignore. - L’environnement de build doit correspondre à l’environnement de production : vos dépendances doivent être générées sur une machine Ubuntu à l’aide de la même version python que l’application de production. Le build distant gère automatiquement ce scénario.
-
Les dépendances doivent être installées dans
./.python_packages/lib/site-packages: la build distante installe toutes les dépendances répertoriées dansrequirements.txtle répertoire approprié. -
Gardez à l’esprit la taille du package de déploiement : les jeux de dépendances volumineux augmentent le temps de génération, la latence de démarrage à froid et l’importation et l’initialisation du module. Les applications avec de grandes bibliothèques scientifiques ou ML (y compris
pytorch) sont particulièrement affectées. - La build distante a un délai d’expiration de 60 secondes : si l’installation de dépendance dépasse la limite, la build échoue. Dans ce cas, envisagez d’utiliser une version locale et de déployer avec des dépendances précompilées.
-
L’importation de module a une limite de 2 minutes : le chargement du module Python et l’indexation des fonctions pendant le démarrage ont une limite de 2 minutes pour Python 3.13 et versions ultérieures, ou pour les versions antérieures de Python activées
PYTHON_ENABLE_INIT_INDEXING. Si votre application dépasse cela, réduisez les imports de niveau supérieur ou utilisez des imports différés (importer les modules à l’intérieur de la portée de la fonction au lieu de la portée globale).
Build distante
La build à distance est l’approche recommandée pour un déploiement en code uniquement de votre application Python sur Functions.
Avec la build à distance, la plateforme Functions gère l’installation du package et garantit la compatibilité avec l’environnement d’exécution à distance. L’utilisation de la build à distance entraîne également un package de déploiement plus petit.
Vous pouvez utiliser la génération à distance lorsque vous publiez votre application Python à l’aide de ces outils :
-
Azure Functions Core Tools : la
func azure functionapp publishcommande demande une build distante par défaut lors de la publication d’applications Python. -
AZ CLI :
az functionapp deployment source config-ziputilise la build distante par défaut lors du déploiement d’applications Python. - Visual Studio Code : La commande Azure Functions : Déployer sur Azure... utilise toujours une build distante.
-
Livraison continue à l’aide de GitHub Actions : l’action Azure/functions-action@v1 utilise la build distante lorsque le
remote-buildparamètre est définitruepour le plan Flex Consumption ou quandscm-do-build-during-deploymentetenable-oryx-buildsont définistruepour les plans dédiés.
Pour activer la génération à distance pour d’autres scénarios, comme la livraison continue avec Azure Pipelines, consultez Activation de la build à distance.
La build distante prend également en charge les index de package personnalisés lors de l’utilisation du paramètre d’application PIP_EXTRA_INDEX_URL . Pour en savoir plus, consultez Build à distance.
Important
La build distante installe toutes les dépendances répertoriées dans requirements.txt. Pour vous assurer que tous les packages requis sont installés, veillez à inclure ces dépendances dans votre requirements.txt fichier.
Build locale
Si vous ne demandez pas de build distante, les dépendances sont installées sur votre ordinateur. L’ensemble du projet local et des dépendances sont ensuite empaquetés localement et déployés sur votre application de fonction. L’utilisation de la build locale entraîne un chargement de package plus volumineux.
Vous devez également installer des dépendances dans le répertoire approprié. Utilisez pip install --target="./.python_packages/lib/site-packages" pour installer les dépendances requises dans votre dossier local .python_packages/lib/site-packages.
Par exemple, si vous avez vos dépendances répertoriées dans un requirements.txt fichier, vous pouvez exécuter cette commande :
pip install --target="./.python_packages/lib/site-packages" -r requirements.txt
Utilisez la compilation locale quand :
- Vous développez localement sur Linux ou macOS.
- La build distante n’est pas disponible ou est restreinte.
- Vous souhaitez définir des dépendances dans un fichier autre que
requirements.txt, commepyproject.toml.
Les outils suivants peuvent être configurés pour utiliser la build locale :
-
Azure Functions Core Tools : utiliser
func azure functionapp publishavec l’indicateur--no-build. -
AZ CLI :
az functionapp deployment source config-zipavec l’indicateur--build-remote=false. -
Livraison continue à l’aide de GitHub Actions : définissez le
remote-buildparamètrefalsepour le plan Flex Consumption ou définissez les paramètresscm-do-build-during-deploymentetenable-oryx-buildsurfalsepour les plans dédiés.
Important
Lorsque vous développez vos applications Python sur un ordinateur Windows, n’utilisez pas la build locale. Les packages basés sur un ordinateur Windows présentent souvent des problèmes de déploiement et d’exécution sur Linux dans Azure Functions. Utilisez uniquement la build locale si vous êtes certain que le package s’exécute sur des systèmes Linux.
Dépendances personnalisées
Azure Functions prend en charge les dépendances personnalisées et autres que PyPI à l’aide du PIP_EXTRA_INDEX_URL paramètre d’application ou en créant une build locale sur un ordinateur Linux ou macOS.
Build distante avec une URL d’index supplémentaire
Lorsque vos packages privés sont disponibles en ligne, vous pouvez demander une build distante après avoir défini l’emplacement du package privé à l’aide du PIP_EXTRA_INDEX_URL paramètre d’application.
Lorsque vous définissez PIP_EXTRA_INDEX_URL, les builds distantes utilisent ce flux de package pendant le déploiement.
PIP_INDEX_URL remplace l’index du package. Envisagez donc d’utiliser PIP_EXTRA_INDEX_URL à la place pour éviter un comportement inattendu.
Packages ou roues locaux
Les paquets locaux et les wheels sont pris en charge lors de la création des applications Function Python sur Azure.
Pour installer ces packages ou roues à l’aide de la build à distance, vous pouvez inclure les dépendances dans votre requirements.txt fichier et déployer avec la build distante activée.
Par exemple, votre requirements.txt fichier peut ressembler à l’extrait de code suivant :
# Installing a custom wheel
<my_package_wheel>.whl
# Installing a local package
path/to/my/package
Pour installer ces dépendances à l’aide de la build locale, installez les dépendances dans votre dossier local .python_packages/lib/site-packages et déployez avec la build distante désactivée.
Par exemple, si vous avez les packages définis dans votre requirements.txt fichier, vous pouvez installer et publier à l’aide des commandes et outils principaux suivants :
pip install --target="./.python_packages/lib/site-packages" -r requirements.txt
func azure functionapp publish <APP_NAME> --no-build