Python sur Azure App Service — Déploiement de code
Déploie du code Python (Flask, Django, FastAPI, générique) sur Azure App Service Linux (P0v3, Python 3.14). Crée le RG + Plan + Web App s'ils sont manquants. Délègue à azure-prepare pour VNet, Key Vault, bases de données ou IaC.
Outils MCP utilisés : mcp_azure_mcp_subscription_list, mcp_azure_mcp_group_list, mcp_azure_mcp_appservice, mcp_azure_mcp_azd (quand azure.yaml est présent).
Workflow
- Résolution du contexte — valeurs par défaut intelligentes, invites minimales. Seul le nom de l'application est interactif ; le RG (
<app>-rg), le Plan (<app>-plan), la région (valeurazpar défaut oueastus2), l'abonnement sont dérivés. create-app.md §1. - Détection du framework (indicative, ne bloque jamais). detect.md.
- Choix du chemin —
azure.yamlhost : appservice → deploy-azd.md ; sinon deploy-azcli.md. - Assurer l'existence du RG → Plan (
P0v3 --is-linux) → Web App (--runtime "PYTHON:3.14") . En cas d'erreur ARM transitoire, suivre transient-retry.md. create-app.md. - Définir le démarrage — Flask/Django : aucun (Oryx détecte automatiquement). FastAPI : toujours
python -m uvicorn main:app --host 0.0.0.0. Autres : avertir. startup-commands.md. - Définir
SCM_DO_BUILD_DURING_DEPLOYMENT=true. - Déployer —
azd deployouaz webapp deploy --type zip --track-status false. - STOP. Afficher le message post-déploiement (post-deploy-message.md) et terminer le tour.
Règles strictes
- ⛔ AUCUNE VÉRIFICATION POST-DÉPLOIEMENT — après le retour du déploiement, n'exécutez pas
az webapp log tail,curl,Invoke-WebRequestni aucune sonde de santé. App Service a besoin de 2 à 3 minutes pour chauffer ; un log silencieux ou un 5xx précoce n'est pas un échec. - ⛔ SÉCURITÉ DU SHELL — pour
--runtime, utilisez toujours"PYTHON:3.14"(deux-points). Jamais"PYTHON|3.14"(le pipe est un opérateur shell). - ⛔ NE JAMAIS UTILISER
az webapp up— obsolète. Utilisez les commandes de l'étape 7. - ✅ FORMAT D'URL — présentez les points de terminaison sous forme d'URL
https://....
Gestion des erreurs
Voir errors.md pour la matrice complète symptôme → cause → correctif. Tri rapide : plan/application manquant → réexécuter l'étape 4 ; délai d'attente du conteneur sur le port 8000 → corriger le démarrage (étape 5) ; ModuleNotFoundError après déploiement → vérifier que l'étape 6 a été exécutée, redéployer.