Kurz: Nasazení webové aplikace Django s PostgreSQL pomocí Azure Portal

Pomocí Azure Portal můžete nasadit daty řízenou webovou aplikaci Python Django pro Azure App Service a připojit ji k Azure Database for PostgreSQL databázi. Můžete začít s bezplatnou cenovou úrovní, kterou je možné kdykoli později škálovat. Můžete také vyzkoušet flexibilní server PostgresSQL (Preview) výběrem výše uvedené možnosti. Flexibilní server poskytuje jednodušší mechanismus nasazení a nižší průběžné náklady.

Pomocí Azure Portal můžete nasadit daty řízenou webovou aplikaci Python Django pro Azure App Service a připojit ji k databázi flexibilního serveru Azure Database for PostgreSQL (Preview). Můžete začít s bezplatnou cenovou úrovní, kterou je možné kdykoli později škálovat. Pokud nemůžete použít flexibilní server PostgreSQL (Preview), vyberte výše možnost Jeden server.

Kód webové aplikace v tomto případě pochází z GitHub úložiště a vy nakonfigurujete webovou aplikaci pro průběžné nasazování z GitHub. Po nakonfigurování můžete provést další vývoj na místním počítači a potvrdit změny do úložiště. Webová aplikace v Azure pak tyto změny automaticky nasadí.

V tomto kurzu použijete nástroj Azure Portal k provedení následujících úloh:

  • Zřízení webové aplikace v Azure, která se nasazovat z GitHub úložiště
  • Zřídit server a databázi PostgreSQL v Azure a připojit je k webové aplikaci.
  • Aktualizujte kód a potvrďte změny tak, aby se automaticky znovu nasazovat GitHub.
  • Zobrazit diagnostické protokoly
  • Správa webové aplikace v Azure Portal

Můžete také použít verzi tohoto kurzu založenou na Azure CLI.

  • Zřízení webové aplikace v Azure, která se nasazovat z GitHub úložiště
  • Zřízení flexibilního serveru a databáze PostgreSQL v Azure a jeho připojení k webové aplikaci
  • Aktualizujte kód a potvrďte změny tak, aby se automaticky znovu nasazovat GitHub.
  • Zobrazení diagnostických protokolů
  • Spravovat webovou aplikaci v Azure Portal.

Můžete také použít verzi tohoto kurzu založenou na Azure CLI.

Fork ukázkového úložiště

V prohlížeči přejděte na úložiště a https://github.com/Azure-Samples/djangoapp forkujte ho do svého vlastního GitHub účtu.

Fork tohoto úložiště vytvoříte, abyste mohli v pozdějším kroku provést změny a znovu nasadit kód.

(Volitelné) Informace o ukázce: Ukázka djangoapp obsahuje aplikaci dotazování Django řízenou daty, kterou získáte podle článku Psaní první aplikace Django v dokumentaci Django. Ukázka je také upravena pomocí kontrolního seznamu nasazení Django, aby se spouštěl v produkčním prostředí, jako je Azure App Service. (Tyto změny jsou pro jakékoli produkční prostředí a nejsou specifické pro Azure.)

  • Produkční nastavení se nachází v souboru azuresite/production.py. Podrobnosti o vývoji najdete v souboru azuresite/settings.py.
  • Při nastavení proměnné prostředí aplikace WEBSITE_HOSTNAME používá produkční nastavení. Azure App Service proměnnou automaticky nastaví na adresu URL webové aplikace, například msdocs-django.azurewebsites.net .

Máte problémy? Dejte nám vědět.

Zřízení databázového serveru PostgreSQL v Azure

  1. Otevřete Azure Portal.

  2. Vyberte Vytvořit prostředek.Otevře se stránka Nový.

  3. Vyhledejte a vyberte Azure Database for PostgreSQLa pak vyberte Vytvořit.

  4. Na další stránce vyberte Vytvořit v částiJeden server.

  5. Na stránce Jeden server zadejte následující informace:

    Pole Hodnota
    Předplatné Vyberte předplatné, které chcete použít, pokud se liší od výchozího.
    Skupina prostředků Vyberte Vytvořit nový a zadejte DjangoPostgres-Tutorial-rg.
    Název serveru Název databázového serveru, který je jedinečný v rámci všech Azure (adresa URL databázového serveru se změní na https://<server-name>.postgres.database.azure.com ). Povolené znaky jsou A-Z0-9 , a - . Dobrým vzorem je použití kombinace názvu vaší společnosti a identifikátoru serveru.
    Zdroj dat Žádný
    Umístění Vyberte umístění blízko vás.
    Verze Podržte výchozí hodnotu (což je nejnovější verze).
    Výpočty a Storage Vyberte Konfigurovat servera pak vyberte Basic aGen 5. Nastavte virtuální jádro na 1, Storage na 5 GB a pak vyberte OK. Tyto volby zřžou nejméně nákladný server dostupný pro PostgreSQL v Azure. V účtu Azure můžete mít také kredit, který pokrývá náklady na server.
    Uživatelské jméno správce, heslo, potvrzení hesla Zadejte přihlašovací údaje pro účet správce na databázovém serveru. Tyto přihlašovací údaje si zapište, protože je budete potřebovat později v tomto kurzu. Poznámka: Nepoužívejte znak $ v uživatelském jménu ani hesle. Později vytvoříte proměnné prostředí s těmito hodnotami, kde znak má zvláštní význam v kontejneru $ Linuxu, který se používá ke spouštění aplikací v Pythonu.
  6. Vyberte Zkontrolovat a vytvořit a potom Vytvořit. Zřízení webové aplikace v Azure trvá několik minut.

  7. Po dokončení zřizování vyberte Přejít k prostředku a otevřete stránku přehledu pro databázový server.

Zřízení databázového serveru flexibilního serveru PostgreSQL v Azure

  1. Otevřete Azure Portal.

  2. Vyberte Vytvořit prostředek.Otevře se stránka Nový.

  3. Vyhledejte a vyberte Azure Database for PostgreSQL flexibilní serverya pak vyberte Vytvořit.

  4. Na další stránce přejděte do pole Flexibilní server (Preview) a vyberte Vytvořit.

  5. Na stránce Jeden server zadejte následující informace:

    Pole Hodnota
    Předplatné Vyberte předplatné, které chcete použít, pokud se liší od výchozího.
    Skupina prostředků Vyberte Vytvořit nový a zadejte DjangoPostgres-Tutorial-rg.
    Název serveru Název databázového serveru, který je jedinečný v rámci všech Azure (adresa URL databázového serveru se změní na https://<server-name>.postgres.database.azure.com ). Povolené znaky jsou A-Z0-9 , a - . Dobrým vzorem je použití kombinace názvu vaší společnosti a identifikátoru serveru.
    Oblast Vyberte umístění blízko vás.
    Typ úlohy Vývoj, pokud jen experimentujete, jinak je to vhodná možnost Produkce.
    Výpočty a Storage Pokud nechcete vyšší výkon, ponechte nastavenou výchozí možnost Burstable, B1ms, což je nejlevnější možnost.
    Zóna dostupnosti, vysoká dostupnost, verze PostgreSQL Ponechte nastavené výchozí hodnoty.
    Uživatelské jméno správce, heslo, potvrzení hesla Zadejte přihlašovací údaje pro účet správce na databázovém serveru. Tyto přihlašovací údaje si zapište, protože je budete potřebovat později v tomto kurzu. Poznámka: Nepoužívejte znak $ v uživatelském jménu ani hesle. Později vytvoříte proměnné prostředí s těmito hodnotami, kde znak má zvláštní význam v kontejneru $ Linuxu, který se používá ke spouštění aplikací v Pythonu.
  6. Vyberte Další: Sítě a na této stránce nastavte Metodu připojení na Veřejný přístup a potom v části Pravidla brány firewall zaškrtněte políčko Povolit veřejný přístup ze všech služeb Azure v rámci Azure k tomuto serveru.

  7. Vyberte Zkontrolovat a vytvořit a potom Vytvořit. Zřízení databázového serveru v Azure trvá několik minut.

  8. Po dokončení zřizování vyberte Přejít k prostředku a otevřete stránku přehledu pro databázový server.

Máte problémy? V opačném případě nám dejte vědětv průvodci odstraňováním potíží.

Vytvoření databáze pollsdb na serveru PostgreSQL

V této části se připojíte k databázovému serveru v Azure Cloud Shell a pomocí příkazu PostgreSQL na serveru vytvoříte databázi pollsdb. Tuto databázi očekává kód ukázkové aplikace.

  1. Na stránce přehledu pro server PostgreSQL vyberte Zabezpečení připojení (v části Nastavení na levé straně).

    Stránka zabezpečení připojení portálu pro pravidla brány firewall

  2. V části Povolit přístup ke službě Azure vyberte Ano u možnosti Vyberte tlačítko s popiskem Přidat 0.0.0.0–255.255.255.255a pak v místní zprávě, která se zobrazí, vyberte Pokračovat a pak v horní části stránky vyberte Uložit. Tyto akce přidávají pravidlo, které vám umožní připojit se k databázovému serveru z Cloud Shell i SSH (stejně jako v pozdější části ke spuštění migrací datového modelu Django).

  3. Otevřete Azure Cloud Shell z Azure Portal výběrem ikony Cloud Shell v horní části okna:

    Cloud Shell panelu nástrojů na Azure Portal panelu nástrojů

  4. V Cloud Shellu spusťte následující příkaz:

    psql --host=<server-name>.postgres.database.azure.com --port=5432 --username=<user-name>@<server-name> --dbname=postgres
    

    Nahraďte <server-name><user-name> a názvy použitými v předchozí části při konfiguraci serveru. Všimněte si, že úplná hodnota uživatelského jména, kterou Postgres vyžaduje, je <user-name>@<server-name> .

    Výše uvedený příkaz můžete zkopírovat a vložit do Cloud Shell kliknutím pravým tlačítkem myši a výběrem možnosti Vložit.

    Po zobrazení výzvy zadejte heslo správce.

  5. Po úspěšném připojení prostředí by se měla zobrazit výzva postgres=> . Tato výzva znamená, že jste připojeni k výchozí databázi pro správu s názvem "postgres". (Databáze postgres není určená pro použití aplikace.)

  6. Na příkazovém řádku spusťte příkaz CREATE DATABASE pollsdb; . Nezapomeňte použít koncovou středník, která příkaz dokončí.

  7. Pokud se databáze úspěšně vytvoří, měl by příkaz zobrazit CREATE DATABASE . Pokud chcete ověřit vytvoření databáze, spusťte \c pollsdb příkaz . Tento příkaz by měl změnit výzvu na pollsdb=> , což značí úspěch.

  8. Ukončete nástroj psql spuštěním příkazu exit .

  1. Otevřete Azure Cloud Shell z Azure Portal výběrem ikony Cloud Shell v horní části okna:

    Cloud Shell panelu nástrojů na Azure Portal panelu nástrojů

  2. V Cloud Shellu spusťte následující příkaz:

    psql --host=<server-url>.postgres.database.azure.com --port=5432 --username=<user-name> --dbname=postgres
    

    Nahraďte <server-name><user-name> a názvy použitými v předchozí části při konfiguraci serveru.

    Výše uvedený příkaz můžete zkopírovat a vložit do Cloud Shell tak, že kliknete pravým tlačítkem a pak vyberete Vložit a pak příkaz upravíte tak,aby nahradil nezbytné hodnoty.

    Po zobrazení výzvy zadejte heslo správce.

  3. Po úspěšném připojení prostředí by se měla zobrazit výzva postgres=> . Tato výzva znamená, že jste připojeni k výchozí databázi pro správu s názvem "postgres". (Databáze postgres není určená pro použití aplikace.)

  4. Na příkazovém řádku spusťte příkaz CREATE DATABASE pollsdb; . Nezapomeňte použít koncovou středník, která příkaz dokončí.

  5. Pokud se databáze úspěšně vytvoří, měl by příkaz zobrazit CREATE DATABASE . Pokud chcete ověřit vytvoření databáze, spusťte \c pollsdb příkaz . Tento příkaz by měl změnit výzvu na pollsdb=> , což značí úspěch.

  6. Ukončete nástroj psql spuštěním příkazu exit .

Máte problémy? V opačném případě nám dejte vědětv průvodci odstraňováním potíží.

Zřízení webové aplikace v Azure

  1. Otevřete nové okno prohlížeče nebo kartu s Azure Portal . K otevření stránky databáze použijete novou kartu, protože budete muset přenést některé informace ze stránky databáze na stránku webové aplikace.

  2. Vyberte Vytvořit prostředek.Otevře se stránka Nový.

  3. Vyhledejte a vyberte Webová aplikacea pak vyberte Vytvořit.

  4. Na stránce Vytvořit webovou aplikaci zadejte následující informace:

    Pole Hodnota
    Předplatné Vyberte předplatné, které chcete použít, pokud se liší od výchozího.
    Skupina prostředků Vyberte skupinu DjangoPostgres-Tutorial-rg, kterou jste vytvořili v předchozí části.
    Název aplikace Název vaší webové aplikace, který je jedinečný v rámci všech Azure (adresa URL aplikace je https://<app-name>.azurewebsites.net ). Povolené znaky jsou A-Z0-9 , a - . Dobrým vzorem je použití kombinace názvu vaší společnosti a identifikátoru aplikace.
    Publikovat Vyberte Kód.
    Zásobník modulu runtime V rozevíracím seznamu vyberte Python 3.8.
    Oblast Vyberte umístění blízko vás.
    Plán pro Linux Portál vyplní toto pole názvem plánu App Service podle vaší skupiny prostředků. Pokud chcete název změnit, vyberte Vytvořit nový.
    SKU a velikost Pro nejlepší výkon použijte výchozí plán, i když se vám za něj ve vašem předplatném načtou poplatky. Pokud se chcete vyhnout poplatkům, vyberte Změnit velikost,pak Vývoj/testování,vyberte B1 (zdarma po dobu 30 dnů) a pak vyberte Použít. Plán můžete později škálovat, aby byl výkon lepší.
  5. Vyberte Zkontrolovat a vytvořita pak Vytvořit. Zřízení webové aplikace v Azure trvá několik minut.

  6. Po dokončení zřizování vyberte Přejít k prostředku a otevřete stránku přehledu pro webovou aplikaci. Nechte toto okno nebo kartu prohlížeče otevřené pro pozdější kroky.

Máte problémy? V opačném případě nám dejte vědětv průvodci odstraňováním potíží.

Připojí aplikaci k databázi

V této části vytvoříte nastavení pro webovou aplikaci, kterou potřebuje pro připojení k pollsdb databázi. Tato nastavení se v kódu aplikace zobrazují jako proměnné prostředí. (Další informace najdete v tématu Přístup k proměnným prostředí.)

  1. Na stránce portálu pro webovou aplikaci z předchozí části vyberte Konfigurace (v části Nastavení na levé straně) a pak v horní části stránky vyberte Nastavení aplikace.

    Konfigurace nastavení portálu pro webové aplikace

  2. Pomocí tlačítka Nastavení nové aplikace vytvořte nastavení pro každou z následujících hodnot (které očekává ukázka djangoapp):

    Název nastavení Hodnota
    HOSTITEL DBHOST Název databázového serveru z předchozí části. to znamená část <server-name> adresy URL serveru, která předchází .postgres.database.azure.com . (Kód v azuresite/production.py vytvoří úplnou adresu URL automaticky.)
    NÁZEV DATABÁZE pollsdb
    DBUSER Uživatelské jméno správce použité při zřizování databáze. (Ukázkový kód část automaticky @<server-name> přidá, viz @<server-name>.)
    DBPASS Heslo správce, které jste vytvořili dříve.

    Jak jsme uvedli dříve, neměli byste používat znak v uživatelském jménu nebo hesle, protože tento znak je uvozován v rámci proměnných prostředí v kontejneru Linuxu, který $ hostuje aplikace Pythonu.

  3. Vyberte Uložit a pak Pokračovat, aby se nastavení aplikuje.

    Důležité

    Výběr možnosti Uložit po provedení změn nastavení je nezbytný. Nastavení, která vytvoříte pomocí tlačítka Nastavení nové aplikace, se použijí až po použití možnosti Uložit.

  1. Na stránce portálu pro webovou aplikaci z předchozí části vyberte Konfigurace (v části Nastavení na levé straně) a pak v horní části stránky vyberte Nastavení aplikace.

    Konfigurace nastavení portálu pro webové aplikace

  2. Pomocí tlačítka Nastavení nové aplikace vytvořte nastavení pro každou z následujících hodnot (které očekává ukázka djangoapp):

    Název nastavení Hodnota
    HOSTITEL DBHOST Adresa URL databázového serveru z předchozí části. to znamená <server-name>.postgres.database.azure.com .
    NÁZEV DATABÁZE pollsdb
    DBUSER Uživatelské jméno správce použité při zřizování databáze.
    DBPASS Heslo správce, které jste vytvořili dříve.

    Jak jsme uvedli dříve, nepoužívejte znak v uživatelském jménu nebo hesle, protože tento znak je uvozován v rámci proměnných prostředí v kontejneru Linuxu, který $ hostuje aplikace Pythonu.

  3. Vyberte Uložit a pak Pokračovat, aby se nastavení aplikuje.

    Důležité

    Výběr možnosti Uložit po provedení změn nastavení je nezbytný. Nastavení, která vytvoříte pomocí tlačítka Nastavení nové aplikace, se použijí až po použití možnosti Uložit.

Máte problémy? V opačném případě nám dejte vědětv průvodci odstraňováním potíží.

Nasazení kódu aplikace do webové aplikace z úložiště

Po nastavení databáze a připojení teď můžete webovou aplikaci nakonfigurovat tak, aby nasadila kód přímo z GitHub úložiště.

  1. V okně prohlížeče nebo na kartě webové aplikace vyberte Deployment Center (v části Nasazení na levé straně).

  2. Ve ovládacím prvku Zdroj vyberte GitHub a pak Autorizovat (pokud je to potřeba). Pak postupujte podle pokynů k přihlášení nebo vyberte Pokračovat a použijte aktuální přihlašovací GitHub přihlášení.

    Pokud se zobrazí automaticky otevírané okno s textem Ověření proběhlo úspěšně, ale na portálu se pořád zobrazuje tlačítko Autorizovat, aktualizujte stránku a přihlašovací jméno GitHub by se mělo zobrazit v poli GitHub. Znovu vyberte GitHub a pak vyberte Pokračovat.

  3. V GitHub vyberte následující hodnoty:

    Pole Hodnota
    Organizace Účet GitHub, do kterého jste fork ukázkového úložiště fork.
    Repository djangoapp
    Větvení. Pokud používáte jeden server: master
    Pokud používáte flexibilní server: flexible-server
  4. Výběrem možnosti Uložit aktivujte pracovní postup sestavení a nasazení. Pokud chcete sledovat průběh, GitHub v úložišti aplikací djangoapp přejděte na Actions (Akce). Azure by měl nasadit kód a spustit aplikaci.

    App Service rozpozná projekt Django tak, že hledá wsgi.py v každé podsložce. Když App Service soubor, načte webovou aplikaci Django. Další informace najdete v tématu Konfigurace integrované image Pythonu.

Máte problémy? V opačném případě nám dejte vědětv průvodci odstraňováním potíží.

Spuštění migrací databáze Django

Po nasazení kódu a databázi je aplikace téměř připravená k použití. Jediné, co zbývá, je vytvořit potřebné schéma v samotné databázi. To se provádí "migrací" datových modelů v aplikaci Django do databáze.

  1. V okně prohlížeče nebo na kartě webové aplikace vyberte SSH (v části Vývojové nástroje na levé straně) a pak Přejít otevřete konzolu SSH na serveru webové aplikace. První připojení může trvat minutu, protože se kontejner webové aplikace musí spustit.

    Pokud příkaz zobrazí pouze jeden soubor s názvemhostingstart.html, pak se nasazení ještě nedokončilo ls z předchozího lskroku. V části Akce v úložišti GitHub zkontrolujte stav. Po dokončení sestavení by měl příkaz zobrazit soubory aplikace, zejména lsls.

  2. V konzole nástroje spusťte migrace databáze:

    python manage.py migrate
    

    Pokud dojde k chybám souvisejícím s připojením k databázi, zkontrolujte hodnoty nastavení aplikace vytvořené v Připojení databázi.

  3. Vytvořte pro aplikaci přihlášení správce:

    python manage.py createsuperuser
    

    Příkaz createsuperuser vás vyzve k zadání přihlašovacích údajů superuživatele Django (nebo správce), které se používají ve webové aplikaci. Pro účely tohoto kurzu použijte výchozí uživatelské jméno, stisknutím rootroot ponechte e-mailovou adresu prázdnou a jako Pollsdb1 heslo zadejte .

Máte problémy? V opačném případě nám dejte vědětv průvodci odstraňováním potíží.

Vytvoření dotazování v aplikaci

Teď jste připraveni spustit rychlý test aplikace, abyste si ukázali, že pracuje s databází PostgreSQL.

  1. V okně prohlížeče nebo na kartě webové aplikace se vraťte na stránku Přehled a pak vyberte adresu URL webové aplikace (ve formuláři ).

  2. Aplikace by měla zobrazit zprávy "Polls app" (Aplikace hlasování) a No polls are available (Žádná hlasování nejsou k dispozici), protože databáze ještě žádné konkrétní dotazování nemá.

  3. Přejděte na (stránka Správa Django) a přihlaste se pomocí přihlašovacích údajů superuživatele Django z předchozí části ( a http://<app-name>.azurewebsites.net/adminrootPollsdb1 ).

  4. V části Polls(Hlasování) vyberte Add (Přidat) vedle Questions (Otázky) a vytvořte dotaz s několika možnostmi.

  5. Znovu přejděte na http://<app-name>.azurewebsites.net/ a potvrďte, že se otázky teď uživateli zobrazí. Odpovězte na otázky, ale chcete v databázi vygenerovat nějaká data.

Gratulujeme! V linuxovém prostředí používáte webovou aplikaci Python Django Azure App Service pro Linux s aktivní databází PostgreSQL.

Máte problémy? V opačném případě nám dejte vědětv průvodci odstraňováním potíží.

Aktualizace a opětovné nasazení aplikace

Jak je popsáno výše v tomto kurzu, Azure znovu nasadí kód aplikace pokaždé, když potvrdíte změny do GitHub úložiště.

Pokud ale změníte datové modely aplikace Django, musíte tyto změny migrovat do databáze:

  1. Připojení k webové aplikaci znovu přes SSH, jak je popsáno v části Spuštění migrací databáze Django.

  2. Spusťte migrace znovu pomocí python manage.py migrate .

Máte problémy? V opačném případě nám dejte vědětv průvodci odstraňováním potíží.

Zobrazit diagnostické protokoly

Můžete přistupovat k protokolům konzoly generovaným z kontejneru, který hostuje aplikaci v Azure.

Na stránce webové aplikace v okně Azure Portal Stream protokolu (na levé straně v části Monitorování). Protokoly se zobrazí jako výstup konzoly.

Soubory protokolu můžete také zkontrolovat v prohlížeči na https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Máte problémy? V opačném případě nám dejte vědětv průvodci odstraňováním potíží.

Vyčištění prostředků

Aplikaci a databázi můžete nechat spuštěné tak dlouho, jak chcete pro další vývojovou práci. Jinak odstraňte skupinu prostředků vytvořenou pro tento kurz, která odstraní všechny prostředky, které jsou v ní obsažené, a vyhnete se tak průběžně poplatkům:

  1. Na Azure Portal panelu hledání v horní části okna zadejte "DjangoPostgres-Tutorial-rg" a pak v části Skupiny prostředků vyberte stejný název.

  2. Na stránce skupiny prostředků vyberte Odstranit skupinu prostředků.

  3. Po zobrazení výzvy zadejte název skupiny prostředků a vyberte Odstranit.

Máte problémy? V opačném případě nám dejte vědětv průvodci odstraňováním potíží.

Další kroky

Přečtěte si, jak App Service spouští aplikaci v Pythonu: