Publikování webových aplikací v Pythonu do služby Aplikace Azure Service v Linuxu
Visual Studio poskytuje možnost publikovat webovou aplikaci v Pythonu přímo do služby Aplikace Azure Service v Linuxu. Publikování do služby Aplikace Azure Service v Linuxu zahrnuje zkopírování potřebných souborů na server a nastavení příslušného web.config
souboru, který dává webovému serveru pokyn, jak spustit aplikaci.
Poznámka:
Linux je jedinou možností operačního systému pro spouštění aplikací v Pythonu ve službě App Service. Python ve Windows se už nepodporuje, jak je popsáno v dokumentaci k App Service pro Linux – podpora Pythonu. Pro Windows můžete vytvořit vlastní image kontejneru Windows a spustit ji ve službě App Service. Další informace najdete v tématu Použití vlastní image Dockeru.
Požadavky
Visual Studio. Pokud chcete nainstalovat produkt, postupujte podle kroků v části Instalace sady Visual Studio.
Projekt webové aplikace v Pythonu založený na rozhraní Bottle, Flask nebo Django. Můžete vytvořit testovací projekt a vyzkoušet proces publikování.
K publikování do Azure potřebujete cílovou službu Aplikace Azure pro vaše předplatné Azure.
Pokud ještě nemáte předplatné Azure, začněte bezplatným úplným účtem Azure. Zvažte také registraci k sadě Visual Studio Dev Essentials.
Verze sady Visual Studio
Proces publikování se liší mezi sadou Visual Studio 2017 a novějšími a sadou Visual Studio 2015. Oba přístupy jsou popsány v tomto článku.
Visual Studio 2015 automatizuje některé kroky instalace, včetně vytvoření
web.config
souboru, ale tato automatizace omezuje dlouhodobou flexibilitu a kontrolu.Visual Studio 2017 a novější vyžaduje více ručních kroků instalace, ale poskytuje přesnější kontrolu nad prostředím Pythonu.
Další informace o změnách mezi sadou Visual Studio 2015 a sadou Visual Studio 2017 a novějšími najdete v blogovém příspěvku o publikování do Azure v sadě Visual Studio 2017.
Vytvoření testovacího projektu
Pokud nemáte existující projekt k publikování, můžete vytvořit testovací projekt a vyzkoušet proces.
V sadě Visual Studio vyberte Soubor > nový > projekt z nabídky panelu nástrojů a otevřete dialogové okno Vytvořit nový projekt .
V dialogovém okně zadejte do vyhledávacíhopole láhev, vyberte šablonu Bottle Web Project a pak vyberte Další.
Šablona webového projektu Bottle je součástí vývojové úlohy Pythonu. Další informace najdete v tématu Šablony projektů webových aplikací v Pythonu.
Zadejte název a umístění cesty pro projekt a pak vyberte Vytvořit.
Postupujte podle pokynů k instalaci externích balíčků, vyberte Nainstalovat do virtuálního prostředí a zvolte preferovaný základní interpret pro virtuální prostředí.
Virtuální prostředí obvykle odpovídá verzi Pythonu nainstalované ve službě App Service.
Až budete připraveni, můžete projekt otestovat místně tak, že vyberete Spustit ladění ladění > nebo použijete klávesovou zkratku F5.
Vytvoření cílové služby Aplikace Azure
Publikování do Azure vyžaduje cílovou službu Aplikace Azure Service pro předplatné Azure.
Vytvořte službu App Service s prázdnou webovou aplikací následujícím způsobem:
Přihlaste se k webu Azure Portal.
Přejděte na stránku App Services .
V rozevírací nabídce vyberte Vytvořit a zvolte Web App . Otevře se stránka Vytvořit webovou aplikaci .
Na kartě Základy nakonfigurujte následující nastavení:
Nastavení Popis Skupina prostředků Toto pole ignorujte. Systém tuto hodnotu aktualizuje po výběru nastavení modulu runtime. Název Zadejte název webové aplikace. Publikovat Vyberte Kód. Zásobník modulu runtime V rozevírací nabídce zvolte příslušný modul runtime Pythonu. Po výběru položky systém aktualizuje pole Skupina prostředků. Oblast Vyberte libovolnou oblast Azure, která je blízko vás. Cenový plán Vyberte plán Free F1. V příkladech v tomto článku můžete nastavení na dalších kartách ignorovat.
Vyberte Zkontrolovat a vytvořit. Zkontrolujte výběry a pak vyberte Vytvořit.
(Volitelné) Jakmile bude služba App Service připravená, můžete přejít na prostředek, vybrat Stáhnout profil publikování a uložit soubor místně.
Konfigurace Pythonu ve službě Aplikace Azure
Jakmile máte službu App Service s prázdnou webovou aplikací spuštěnou ve vašem předplatném, nainstalujte požadovanou verzi Pythonu. Pro publikování ze sady Visual Studio 2017 a novějších si poznamenejte přesnou cestu k interpretu Pythonu nainstalovanému s rozšířením webu. Další informace najdete v tématu Instalace interpretů Pythonu.
V případě potřeby můžete balíček nainstalovat bottle
také. Tento balíček je však nainstalován v pozdějším kroku tohoto návodu.
Publikování do služby App Service – Visual Studio 2017 a novější
Publikování do služby Aplikace Azure Service ze sady Visual Studio 2017 a novější zkopíruje jenom soubory v projektu na server. K konfiguraci serverového prostředí je potřeba vytvořit potřebné soubory.
V sadě Visual Studio Průzkumník řešení klikněte pravým tlačítkem myši na projekt a vyberte Přidat > novou položku. V dialogovém okně vyberte šablonu Azure web.config (Fast CGI) a vyberte Přidat. Tento krok vytvoří
web.config
soubor v kořenovém adresáři projektu.PythonHandler
Upravte položku vweb.config
souboru tak, aby cesta odpovídala instalaci Pythonu na serveru, jak je popsáno v referenčních informacích ke konfiguraci služby IIS (iis.net). Například pro Python 3.6.1 x64 by se položka měla zobrazit takto:<system.webServer> <handlers> <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\Python361x64\python.exe|D:\home\Python361x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/> </handlers> </system.webServer>
WSGI_HANDLER
Podle potřeby nastavte položku vweb.config
souboru pro architekturu, kterou používáte:Láhev: Přidejte za
app.wsgi_app
hodnotu závorky, jak je znázorněno v tomto příkladu. Závorky jsou nezbytné, protože objekt je funkce spíše než proměnná. Syntaxi můžete zobrazit vapp.py
souboru.<!-- Bottle apps only --> <add key="WSGI_HANDLER" value="app.wsgi_app()"/>
Flask: Změňte
WSGI_HANDLER
hodnotu na místo, kde<project_name>.app
<project_name>
odpovídá názvu projektu. Přesný identifikátor najdete tak, že se podíváte nafrom <project_name> import app
příkaz vrunserver.py
souboru. Pokud má například projekt název FlaskAzurePublishExample, položka se zobrazí takto:<!-- Flask apps only: Change the project name to match your app --> <add key="WSGI_HANDLER" value="FlaskAzurePublishExample.app"/>
Django: Pro projekty Django jsou potřeba
web.config
dvě změny.WSGI_HANDLER
Změňte hodnotu nadjango.core.wsgi.get_wsgi_application()
. Objekt je vwsgi.py
souboru.<!-- Django apps only --> <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()"/>
Přidejte následující položku bezprostředně za položku pro
WSGI_HANDLER
klíč. Nahraďte hodnotuDjangoAzurePublishExample
názvem projektu:<add key="DJANGO_SETTINGS_MODULE" value="django_iis_example.settings" />
Pouze aplikace Django: Do souboru projektu
settings.py
Django přidejte do položky doménu adresy URL webu nebo IP adresuALLOWED_HOSTS
. Nahraďte vspython-test-02.azurewebsites.net adresou URL:# Change the URL to your specific site ALLOWED_HOSTS = ['vspython-test-02.azurewebsites.net']
Pokud adresu URL nepřidáte do výsledků pole, zobrazí se následující chyba:
DisallowedHost at / Invalid HTTP_HOST header: '\<site URL\>'. You might need to add '\<site URL\>' to ALLOWED_HOSTS.
Když je pole prázdné, Django automaticky povolí
'localhost'
jako hostitele. Pokud přidáte produkční adresu URL,'localhost'
není automaticky povolená jako hostitel. Z tohoto důvodu můžete chtít udržovat samostatné vývojové a produkční kopiesettings.py
souboru nebo pomocí proměnných prostředí řídit hodnoty modulu runtime.Výběr šablony.
- V Průzkumník řešení rozbalte složku projektu.
- Klikněte pravým tlačítkem myši na statickou složku a vyberte Přidat > novou položku.
- Vyberte šablonu web.config statických souborů Azure a vyberte Přidat.
Tato akce vytvoří ve statické složce další
web.config
soubor, který zakáže zpracování Pythonu pro tuto složku. Tato konfigurace odesílá požadavky na statické soubory na výchozí webový server, a ne do aplikace Python.V Průzkumník řešení uložte projekt a potom klikněte pravým tlačítkem myši na projekt a vyberte Publikovat.
V okně Publikovat zadejte cíl publikování:
Jako cíl vyberte Azure a pak vyberte Další.
Pro konkrétní cíl vyberte Aplikace Azure Service (Windows) a vyberte Další.
- Pokud dialogové okno indikuje, že k dokončení instalace jsou nezbytné další požadované součásti , vyberte Dokončit. Otevře se Instalační program pro Visual Studio. Potvrďte možnosti a vyberte Nainstalovat.
V případě služby App Service vyberte příslušnou službu App Service pro vaše předplatné a vyberte Dokončit.
Po dokončení procesu vytváření publikování vyberte Zavřít.
Visual Studio zobrazuje stav v okně Aktivita publikování webu a také v okně Průběh vytváření profilu publikování. Až se u webové aplikace zobrazí zpráva Připraveno k publikování, vyberte Publikovat.
Po úspěšném publikování se na adrese URL webu otevře výchozí prohlížeč. Adresa URL webu se také zobrazí v okně Publikovat .
Pokud se adresa URL webu neotevře automaticky, vyberte Otevřít web a zobrazte webovou aplikaci v prohlížeči:
Po otevření prohlížeče se může zobrazit zpráva "Stránku nelze zobrazit, protože došlo k vnitřní chybě serveru". Tato zpráva značí, že vaše prostředí Pythonu na serveru není plně nakonfigurované, v takovém případě proveďte následující kroky:
Ujistěte se, že máte nainstalované odpovídající rozšíření webu Pythonu. Další informace najdete v tématu Rychlý start: Nasazení webové aplikace Python (Django nebo Flask) do služby Aplikace Azure Service.
Pečlivě zkontrolujte cestu k interpretu Pythonu v
web.config
souboru. Cesta musí přesně odpovídat umístění instalace zvoleného rozšíření lokality.Pomocí konzoly Kudu upgradujte všechny balíčky uvedené v souboru vaší aplikace
requirements.txt
. Přejděte do stejné složky Pythonuweb.config
, která se v souboru používá, například/home/python361x64
. Spusťte následující příkaz, jak je popsáno v části konzoly Kudu:python -m pip install --upgrade -r /home/site/wwwroot/requirements.txt
Pokud se při spuštění tohoto příkazu zobrazí chyby oprávnění, ověřte, že příkaz spouštíte ve složce rozšíření webu. Nespouštět příkaz ve složce, která má jednu z výchozích instalací Pythonu služby App Service. Vzhledem k tomu, že tyto výchozí prostředí nemůžete upravit, pokus o instalaci balíčků určitě selže.
Pokud chcete zobrazit podrobný výstup chyby, přidejte do
web.config
souboru v<system.webServer>
uzlu následující řádek, který poskytuje podrobnější výstup chyby:<httpErrors errorMode="Detailed"></httpErrors>
Po instalaci nových balíčků zkuste službu App Service restartovat. Při změně
web.config
souboru není restartování nutné, protože App Service provede automatické restartování při každéweb.config
změně souboru.Tip
Pokud v souboru
requirements.txt
vaší aplikace provedete nějaké změny, nezapomeňte opět pomocí konzoly Kudu nainstalovat všechny balíčky uvedené v tomto souboru.
Po úplné konfiguraci serverového prostředí aktualizujte stránku v prohlížeči, aby se zobrazila webová aplikace:
Publikování do app Service – Visual Studio 2015
Pomocí těchto kroků publikujte webovou aplikaci v Pythonu do služby Aplikace Azure Service v sadě Visual Studio 2015.
V Průzkumníku řešení klikněte pravým tlačítkem na požadovaný projekt a vyberte Publikovat.
V dialogovém okně Publikovat vyberte Microsoft Aplikace Azure Service:
Jako cíl publikování vyberte službu Microsoft Aplikace Azure Service. V dalším dialogovém okně vyberte existující službu App Service nebo vyberte Nový a vytvořte novou.
Podrobnosti služby App Service se zobrazí na kartě Připojení dialogového okna Publikovat:
Podle potřeby vyberte Další a zkontrolujte další nastavení.
Vyberte Publikovat. Jakmile se vaše aplikace nasadí do Azure, otevře se výchozí prohlížeč na adrese URL webu.
V rámci tohoto procesu Visual Studio také provede následující kroky:
web.config
Vytvoří soubor na serveru, který obsahuje odpovídající ukazatele na funkci aplikacewsgi_app
a na výchozí interpret Pythonu 3.4 služby App Service.- Vypne zpracování souborů ve statické složce projektu. (Pravidla pro tuto akci jsou v
web.config
souboru.) - Publikuje virtuální prostředí na server.
web.debug.config
Přidá soubor a nástroje pro ladění pro povolení vzdáleného ladění. Pro Visual Studio 2019 verze 16.4 a starší jsou nástroje ladění ptvsd. Pro Visual Studio 2019 verze 16.5 a novější jsou ladicí nástroje.
Jak už jsme zmínili dříve, tyto automatické kroky zjednodušují proces publikování, ale můžou ztížit řízení prostředí Pythonu. Soubor se například web.config
vytvoří jenom na serveru, ale nepřidá se do projektu. Proces publikování také trvá déle, protože kopíruje celé virtuální prostředí z vývojového počítače místo toho, aby se spoléhal na konfiguraci serveru.
Nakonec můžete chtít zachovat vlastní web.config
soubor a použít ho requirements.txt
k přímé údržbě balíčků na serveru. Když soubor používáte requirements.txt
, zejména vám může pomoct zaručit, že se vaše vývojová a serverová prostředí vždy shodují.
Související obsah
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro