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.9 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-quickstart
Vytvořte virtuální prostředí pro aplikaci:
py -m venv .venv .venv\scripts\activate
Nainstalujte závislosti:
pip install -r requirements.txt
Spusťte aplikaci:
flask run
Otevřete ukázkovou aplikaci na adrese
http://localhost:5000
v 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.
Azure CLI má příkaz az webapp up
, který vytvoří potřebné prostředky a nasadí vaši aplikaci v rámci jednoho kroku.
V případě potřeby se přihlaste k Azure pomocí příkazu az login.
az login
Vytvořte webovou aplikaci a další prostředky a pak nasaďte kód do Azure pomocí příkazu az webapp up.
az webapp up --runtime PYTHON:3.13 --sku B1 --logs
- Parametr
--runtime
určuje, jakou verzi Pythonu vaše aplikace používá. Tento příklad používá Python 3.13. K vypsání všech dostupných běhových prostředí použijte příkazaz webapp list-runtimes --os linux --output table
. - Parametr
--sku
určuje velikost (CPU, paměť) a náklady plánu služby pro aplikaci. Tento příklad používá plán služeb B1 (Základní), který způsobí malé náklady ve vašem předplatném Azure. Úplný seznam plánů služby App Service najdete na stránce s cenami služby App Service . - Příznak
--logs
konfiguruje výchozí protokolování, které je potřebné k zobrazení proudu protokolu ihned po spuštění webové aplikace. - Volitelně můžete specifikovat název pomocí argumentu
--name <app-name>
. Pokud žádný neposkytnete, bude jméno automaticky vygenerováno. - Argument
--location <location-name>
můžete volitelně zahrnout tam, kde<location_name>
je dostupný region Azure. Můžete získat seznam povolených oblastí pro váš účet Azure spuštěním příkazuaz appservice list-locations
.
Příkaz může trvat několik minut, než se dokončí. Během běhu příkazu poskytuje zprávy o vytváření skupiny prostředků, plánu App Service a zdroje aplikace, konfigurování protokolování a provádění nasazení ve formátu ZIP. Pak vrátí zprávu, která obsahuje adresu URL aplikace, což je adresa URL aplikace v Azure.
The webapp '<app-name>' doesn't exist Creating Resource group '<group-name>' ... Resource group creation complete Creating AppServicePlan '<app-service-plan-name>' ... Creating webapp '<app-name>' ... Configuring default logging for the app, if not already enabled Creating zip with contents of dir /home/cephas/myExpressApp ... Getting scm site credentials for zip deployment Starting zip deployment. This operation can take a while to complete ... Deployment endpoint responded with status code 202 You can launch the app at <URL> { "URL": "<URL>", "appserviceplan": "<app-service-plan-name>", "location": "centralus", "name": "<app-name>", "os": "<os-type>", "resourcegroup": "<group-name>", "runtime_version": "python|3.13", "runtime_version_detected": "0.0", "sku": "FREE", "src_path": "<your-folder-location>" }
Poznámka
Příkaz az webapp up
provádí následující akce:
Vytvořte výchozí skupinu prostředků.
Vytvořte výchozí plán služby App Service.
Vytvořte aplikaci se zadaným názvem.
Zip nasadí všechny soubory z aktuálního pracovního adresáře s povolenou automatizací sestavení.
Uložte parametry do mezipaměti místně v souboru .azure/config , abyste je nemuseli při pozdějším
az webapp up
az webapp
nasazení s jinými příkazy ze složky projektu zadávat znovu. Hodnoty z mezipaměti se automaticky používají jako výchozí.
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.
Vzhledem k tomu, že příkaz az webapp up
vytvořil potřebné zdroje a nasadil vaši aplikaci v jednom kroku, můžete přejít k dalšímu kroku.
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. Pro aplikace založené na jiných webových architekturách, jako je FastAPI, musíte nakonfigurovat spouštěcí skript pro službu App Service ke spuštění vaší aplikace; Jinak app Service spustí výchozí aplikaci jen pro čtení umístěnou ve složce opt/defaultsite .
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.