Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu nasadíte webovou aplikaci v Pythonu (Django, Flask nebo FastAPI) do služby Azure App Service. Azure App Service je plně spravovaná hostingová služba pro weby, která podporuje Python aplikace hostované v prostředí serveru Linux.
Pro dokončení tohoto rychlého průvodce budete potřebovat:
- Účet Azure s aktivním předplatným. Vytvořte si bezplatný účet.
- Python 3.14 nebo vyšší je nainstalovaný místně.
Poznámka
Tento článek obsahuje aktuální pokyny pro nasazení webové aplikace Python pomocí služby Azure App Service. Python na Windows již není podporován.
Přeskočit na konec
Ukázkovou aplikaci můžete rychle nasadit v tomto kurzu pomocí Azure Developer CLI a zobrazit ji spuštěnou v Azure. Stačí spustit následující příkazy v požadované službě Azure Cloud Shella postupovat podle pokynů:
mkdir flask-quickstart
cd flask-quickstart
azd init --template https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
azd up
A pro odstranění prostředků:
azd down
Ukázková aplikace
Tento rychlý start lze dokončit pomocí buď Flask, Django, nebo FastAPI. V každém rámci je k dispozici ukázková aplikace, která vám pomůže sledovat tento rychlý start. Stáhněte si nebo naklonujte ukázkovou aplikaci do svého místního počítače.
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
Chcete-li spustit aplikaci lokálně:
Přejděte do složky aplikace:
cd msdocs-python-flask-webapp-quickstartVytvořte virtuální prostředí pro aplikaci:
py -m venv .venv .venv\scripts\activateNainstalujte závislosti:
pip install -r requirements.txtSpusťte aplikaci:
flask runOtevřete ukázkovou aplikaci na adrese
http://localhost:5000v internetovém prohlížeči.
Máte problémy? Dejte nám vědět.
Vytvořte webovou aplikaci v Azure
Chcete-li hostovat svou aplikaci v Azure, musíte v Azure vytvořit webovou aplikaci služby Azure App Service. Webovou aplikaci můžete vytvořit pomocí Azure CLI, VS Code, balíčku rozšíření Azure Tools nebo webu Azure Portal.
Příkazy Azure CLI je možné spouštět na počítači s nainstalovaným Azure CLI.
Vytvořte prostředky Azure a poté nasaďte aplikaci pomocí samostatných příkazů Azure CLI.
V případě potřeby se přihlaste k Azure pomocí příkazu az login.
az login
Nahraďte <app-name> globálně jedinečným názvem. Vytvořte skupinu zdrojů a plán App Service a poté vytvořte webovou aplikaci pomocí az webapp create.
az group create --name myResourceGroup --location eastus
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku P0v3 --is-linux
az webapp create --name <app-name> --resource-group myResourceGroup --plan myAppServicePlan --runtime "PYTHON:3.14"
az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
- Použijte parametr
--runtimek určení verze Pythonu, ve které vaše aplikace běží. Tento příklad používá Python 3.14. Chcete-li vypsat podporovaná runtime Pythonu, použijteaz webapp list-runtimes --os-type linux --runtime python --output table. - Použijte parametr
--skuk definování velikosti (CPU a paměti) a nákladů plánu App Service. Tento příklad používá tarif P0v3 (Premium v3), který vám v předplatném Azure účtuje poplatky. Úplný seznam plánů služby App Service najdete v tématu Ceny služby App Service. - Nahraďte
eastusvaší preferovanou oblastí. Chcete-li vypsat dostupné regiony, spusťteaz account list-locationss použitím--output table. - Nastavení
SCM_DO_BUILD_DURING_DEPLOYMENTumožňuje Oryx build, včetně instalace závislostí v requirements.txt, když nasazujete zdrojový archiv.
Vytvořte ZIP soubor s aplikačními soubory, včetně requirements.txt, na kořeni archivu. Vylučujte místní soubory jako .venv, .git a .env. Pro instrukce specifické pro platformu viz Vytvořit soubor ZIP vaší aplikace na kartě Nasazení pomocí souboru ZIP. Poté nasaďte archiv pomocí az webapp deploy:
az webapp deploy --name <app-name> --resource-group myResourceGroup --src-path <zip-file-path> --type zip
Nasazení může trvat několik minut. Přejděte na https://<app-name>.azurewebsites.net a zobrazte si svou aplikaci. Chcete-li streamovat logy, povolte je spuštěním az webapp log config --name <app-name> --resource-group myResourceGroup --docker-container-logging filesystem a poté spusťte az webapp log tail --name <app-name> --resource-group myResourceGroup.
Máte problémy? Dejte nám vědět.
Nasadit kód aplikace do Azure
Azure App Service podporuje více metod k nasazení vašeho aplikačního kódu do Azure, včetně GitHub Actions a všech hlavních nástrojů CI/CD. Tento článek se zaměřuje na to, jak nasadit váš kód z vaší lokální pracovní stanice do Azure.
Příkazy Azure CLI v předchozím kroku vytvořily zdroje a nasadily vaši aplikaci. Můžete přejít na další krok.
Máte problémy? Nejprve si projděte průvodce odstraňováním potíží. Pokud to nepomůže, dejte nám vědět.
Nakonfigurujte spouštěcí skript
Na základě přítomnosti určitých souborů v nasazení App Service automaticky detekuje, zda je aplikace Django nebo Flask, a provádí výchozí kroky pro spuštění vaší aplikace. U aplikací založených na jiných webových frameworkech jako FastAPI možná budete muset nastavit spouštěcí skript pro App Service, aby vaše aplikace běžela. Jinak App Service spustí výchozí aplikaci pouze pro čtení, umístěnou ve složce opt/defaultsite .
- Python 3.14 a novší: App Service automaticky detekuje a spouští FastAPI aplikace. Není potřeba žádný příkaz ke startu.
- Python 3.13 a starší: Musíte si nastavit vlastní spouštěcí příkaz.
Další informace o tom, jak App Service spouští aplikace v Pythonu a jak můžete nakonfigurovat a přizpůsobit jeho chování pomocí aplikace, najdete v tématu Konfigurace aplikace v Pythonu pro Linux pro Azure App Service.
Služba App automaticky rozpozná přítomnost aplikace Flask. Pro tuto pracovní příručku není potřeba žádná další konfigurace.
Přejít do aplikace
Přejděte do nasazené aplikace ve webovém prohlížeči. Odkaz můžete sledovat na webu Azure Portal. Přejděte na stránku Přehled a vyberte Výchozí doména. Pokud vidíte výchozí stránku aplikace, počkejte minutu a obnovte prohlížeč.
Ukázkový kód v Pythonu spouští kontejner Linuxu v služby App pomocí vestavěného obrazu.
Gratulujeme! Nasadili jste svou Python aplikaci na App Service.
Máte problémy? Nejprve si projděte průvodce odstraňováním potíží. Pokud to nepomůže, dejte nám vědět.
Stream záznamy
Služba Azure App Service zachycuje veškerý výstup zpráv na konzoli, aby vám pomohla diagnostikovat problémy s vaší aplikací. Ukázkové aplikace obsahují print() výroky k demonstraci této schopnosti.
@app.route('/')
def index():
print('Request for index page received')
return render_template('index.html')
@app.route('/favicon.ico')
def favicon():
return send_from_directory(os.path.join(app.root_path, 'static'),
'favicon.ico', mimetype='image/vnd.microsoft.icon')
@app.route('/hello', methods=['POST'])
def hello():
name = request.form.get('name')
if name:
print('Request for hello page received with name=%s' % name)
return render_template('hello.html', name = name)
else:
print('Request for hello page received with no name or blank name -- redirecting')
return redirect(url_for('index'))
Obsah diagnostických protokolů App Service můžete zkontrolovat pomocí Azure CLI, VS Code nebo Azure portálu.
Nejprve je potřeba nakonfigurovat službu Azure App Service tak, aby zapisovala výstupní protokoly do systému souborů této služby pomocí příkazu az webapp log config.
az webapp log config \
--web-server-logging filesystem \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
K streamování protokolů použijte příkaz az webapp log tail .
az webapp log tail \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Aktualizujte domovskou stránku v aplikaci nebo zkuste jiné požadavky k vytvoření některých zpráv protokolu. Výstup by měl vypadat podobně jako v následujícím příkladu.
Starting Live Log Stream ---
2021-12-23T02:15:52.740703322Z Request for index page received
2021-12-23T02:15:52.740740222Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET / HTTP/1.1" 200 1360 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.841043070Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.884541951Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:53.043211176Z 169.254.130.1 - - [23/Dec/2021:02:15:53 +0000] "GET /favicon.ico HTTP/1.1" 404 232 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.304306845Z Request for hello page received with name=David
2021-12-23T02:16:01.304335945Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "POST /hello HTTP/1.1" 200 695 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.398399251Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.430740060Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
Máte problémy? Nejprve si projděte průvodce odstraňováním potíží. Pokud to nepomůže, dejte nám vědět.
Vyčistit zdroje
Až budete s ukázkovou aplikací hotovi, můžete z Azure odebrat všechny prostředky aplikace. Odebrání skupiny prostředků zajistí, že se vám nebudou účtovat další poplatky a pomůže udržet vaše předplatné Azure uspořádané. Odstranění skupiny prostředků také odstraní všechny prostředky ve skupině prostředků a je nejrychlejším způsobem, jak odebrat všechny prostředky Azure pro vaši aplikaci.
Odstraňte skupinu prostředků pomocí příkazu az group delete .
az group delete \
--name msdocs-python-webapp-quickstart \
--no-wait
Argument --no-wait umožňuje, aby se příkaz vrátil před dokončením operace.
Máte problémy? Dejte nám vědět.