Python auf Azure App Service – Code-Bereitstellung
Stellt Python-Code (Flask, Django, FastAPI, generisch) auf Azure App Service Linux (P0v3, Python 3.14) bereit. Erstellt RG + Plan + Web-App, falls nicht vorhanden. Für VNet, Key Vault, Datenbanken oder IaC an azure-prepare übergeben.
Verwendete MCP-Tools: mcp_azure_mcp_subscription_list, mcp_azure_mcp_group_list, mcp_azure_mcp_appservice, mcp_azure_mcp_azd (wenn azure.yaml vorhanden ist).
Workflow
- Kontext auflösen – intelligente Standardwerte, minimale Eingabeaufforderungen. Nur der App-Name ist interaktiv; RG (
<app>-rg), Plan (<app>-plan), Region (aktuelleaz-Voreinstellung odereastus2), Subscription werden abgeleitet. create-app.md §1. - Framework erkennen (beratend, blockiert nie). detect.md.
- Pfad wählen –
azure.yamlhost: appservice → deploy-azd.md; sonst deploy-azcli.md. - Sicherstellen, dass RG → Plan (
P0v3 --is-linux) → Web-App (--runtime "PYTHON:3.14") existieren. Bei transienten ARM-Fehlern gemäß transient-retry.md verfahren. create-app.md. - Startbefehl setzen – Flask/Django: keiner (Oryx erkennt automatisch). FastAPI: immer
python -m uvicorn main:app --host 0.0.0.0. Sonst: Warnung. startup-commands.md. SCM_DO_BUILD_DURING_DEPLOYMENT=truesetzen.- Bereitstellen –
azd deployoderaz webapp deploy --type zip --track-status false. - STOP. Nachricht nach der Bereitstellung ausgeben (post-deploy-message.md) und die Runde beenden.
Harte Regeln
- ⛔ KEINE ÜBERPRÜFUNG NACH DER BEREITSTELLUNG – Nachdem das Deployment zurückgekehrt ist, führen Sie weder
az webapp log tail,curl,Invoke-WebRequestnoch einen anderen Health-Check aus. App Service benötigt 2–3 Minuten zum Aufwärmen; ein ruhiges Log oder ein früher 5xx-Fehler ist kein Fehlschlag. - ⛔ SHELL-SICHERHEIT – Für
--runtimeimmer"PYTHON:3.14"(Doppelpunkt) verwenden. Niemals"PYTHON|3.14"(Pipe ist ein Shell-Operator). - ⛔ NIE
az webapp up– Veraltet. Verwenden Sie die Befehle aus Schritt 7. - ✅ URL-FORMAT – Endpunkte als
https://...-URLs präsentieren.
Fehlerbehandlung
Siehe errors.md für die vollständige Symptom → Ursache → Behebung-Matrix. Kurz-Diagnose: Fehlender Plan/App → Schritt 4 erneut ausführen; Container-Ping-Timeout auf 8000 → Startbefehl korrigieren (Schritt 5); ModuleNotFoundError nach Bereitstellung → sicherstellen, dass Schritt 6 ausgeführt wurde, erneut bereitstellen.