Partager via


Créer vos applications Azure Functions Python

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 seul host.json fichier 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 dans requirements.txt le 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 :

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, comme pyproject.toml.

Les outils suivants peuvent être configurés pour utiliser la build locale :

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