Kurz: Použití Připojení oru služby k sestavení aplikace Django s Postgres ve službě Aplikace Azure Service

Poznámka:

V tomto kurzu použijete service Připojení or, který zjednodušuje proces připojení webové aplikace k databázové službě. Tento kurz je úprava kurzu služby App Service, takže můžete vidět určité podobnosti. Podívejte se do části Konfigurace proměnných prostředí pro připojení databáze, abyste zjistili, kde přichází služba Připojení or, a zjednodušuje proces připojení uvedený v kurzu služby App Service.

V tomto kurzu se dozvíte, jak nasadit webovou aplikaci Python Django řízenou daty do služby Aplikace Azure a připojit ji k flexibilní serverové databázi Azure Database for PostgreSQL.

V tomto kurzu pomocí Azure CLI provedete následující úlohy:

  • Nastavení počátečního prostředí pomocí Pythonu a Azure CLI
  • Vytvoření flexibilní serverové databáze Azure Database for PostgreSQL
  • Nasazení kódu do služby Aplikace Azure Service a připojení k flexibilnímu serveru PostgreSQL
  • Aktualizace kódu a opětovné nasazení
  • Zobrazit diagnostické protokoly
  • Správa webové aplikace na webu Azure Portal

Nastavení počátečního prostředí

  1. Nainstalujte Python 3.8 nebo novější. Pokud chcete zkontrolovat, jestli je vaše verze Pythonu 3.8 nebo vyšší, spusťte v okně terminálu následující kód:

    python3 --version
    
  2. Nainstalujte Azure CLI 2.30.0 nebo vyšší. Pokud chcete zkontrolovat, jestli je vaše verze Azure CLI 2.30.0 nebo vyšší, spusťte az --version příkaz. Pokud potřebujete upgradovat, spusťte az upgrade (vyžaduje verzi 2.30.0+).

  3. Přihlaste se k Azure pomocí rozhraní příkazového řádku .az login Tento příkaz otevře prohlížeč pro shromáždění vašich přihlašovacích údajů. Po dokončení příkazu se zobrazí výstup JSON obsahující informace o vašich předplatných. Po přihlášení můžete pomocí Azure CLI spustit příkazy Azure pro práci s prostředky ve vašem předplatném.

Klonování nebo stažení ukázkové aplikace

Naklonujte ukázkové úložiště:

git clone https://github.com/Azure-Samples/serviceconnector-webapp-postgresql-django.git

Přejděte do následující složky:

cd serviceconnector-webapp-postgresql-django

Použijte větev flexibilního serveru ukázky, která obsahuje několik nezbytných změn, například způsob nastavení adresy URL databázového serveru a přidání 'OPTIONS': {'sslmode': 'require'} do konfigurace databáze Django podle požadavků flexibilního serveru Azure PostgreSQL.

git checkout flexible-server

Ukázka djangoapp obsahuje aplikaci django řízenou daty, kterou získáte, a to tak, že v dokumentaci k Django napíšete svou první aplikaci Django. Dokončená aplikace je k dispozici pro vaše pohodlí.

Ukázka se také upraví tak, aby běžela v produkčním prostředí, jako je App Service:

  • Produkční nastavení se nachází v souboru azuresite/production.py . Nastavení vývoje jsou v azuresite/settings.py.
  • Když je proměnná prostředí nastavená, WEBSITE_HOSTNAME aplikace používá produkční nastavení. Aplikace Azure Služba tuto proměnnou automaticky nastaví na adresu URL webové aplikace, například msdocs-django.azurewebsites.net.

Nastavení produkčního prostředí je specifické pro konfiguraci Django tak, aby běžela v libovolném produkčním prostředí a nejsou specifická pro Službu App Service. Další informace najdete v kontrolním seznamu nasazení Django. Podrobnosti o některých změnách najdete také v nastavení produkčního prostředí Django v Azure.

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

Vytvoření databáze Postgres v Azure

  1. Povolte ukládání parametrů do mezipaměti pomocí Azure CLI, abyste tyto parametry nemuseli zadávat ke každému příkazu. (Hodnoty uložené v mezipaměti se ukládají do složky .azure .)

    az config param-persist on 
    
  2. Vytvořte skupinu prostředků (v případě potřeby můžete název změnit). Název skupiny prostředků se ukládá do mezipaměti a automaticky se použije na následné příkazy.

    az group create --name ServiceConnector-tutorial-rg --location eastus
    
  3. Vytvoření databázového serveru (proces trvá několik minut):

    az postgres flexible-server create --sku-name Standard_B1ms --public-access all
    

    Pokud se az příkaz nerozpozná, ujistěte se, že máte nainstalované Rozhraní příkazového řádku Azure, jak je popsáno v části Nastavení počátečního prostředí.

    Příkaz az postgres flexible-server create provede následující akce, které zabere několik minut:

    • Pokud název mezipaměti ještě není, vytvořte výchozí skupinu prostředků.
    • Vytvoření flexibilního serveru PostgreSQL:
      • Ve výchozím nastavení příkaz používá vygenerovaný název, například server383813186. Pomocí parametru --name můžete zadat vlastní název. Tento název musí být v rámci služeb Azure jedinečný.
      • Příkaz používá cenovou úroveň s nejnižšími náklady Standard_B1ms . Vynecháte argument pro --sku-name použití výchozí Standard_D2s_v3 úrovně.
      • Příkaz používá skupinu prostředků a umístění uložené v mezipaměti z předchozího az group create příkazu, což je v tomto příkladu eastus skupina ServiceConnector-tutorial-rg prostředků v oblasti.
    • Vytvořte účet správce s uživatelským jménem a heslem. Tyto hodnoty můžete zadat přímo pomocí --admin-user parametrů a --admin-password parametrů.
    • Vytvořte databázi s názvem flexibleserverdb ve výchozím nastavení. Název databáze můžete zadat pomocí parametru --database-name .
    • Umožňuje úplný veřejný přístup, který můžete řídit pomocí parametru --public-access .
  4. Po dokončení příkazu zkopírujte výstup JSON příkazu do souboru, protože potřebujete hodnoty z výstupu dále v tomto kurzu, konkrétně hostitele, uživatelské jméno a heslo spolu s názvem databáze.

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

Nasazení kódu do služby Aplikace Azure Service

V této části vytvoříte hostitele aplikace v aplikaci App Service, připojíte tuto aplikaci k databázi Postgres a pak na tohoto hostitele nasadíte svůj kód.

Vytvoření aplikace App Service

  1. V terminálu se ujistěte, že jste ve složce úložiště djangoapp , která obsahuje kód aplikace.

  2. Přepněte na větev ukázkové aplikace flexible-server . Tato větev obsahuje konkrétní konfiguraci potřebnou pro flexibilní server PostgreSQL:

    git checkout flexible-server
    
  3. Spuštěním následujícího az webapp up příkazu vytvořte hostitele služby App Service pro aplikaci:

    az webapp up --name <app-name> --sku B1 
    

    Tento příkaz provede následující akce, které můžou trvat několik minut pomocí skupiny prostředků a umístění uloženého v mezipaměti z předchozího az group create příkazu (skupina Python-Django-PGFlex-rg v tomto příkladu eastus ).

    • Vytvořte plán služby App Service v cenové úrovni Basic (B1). Můžete vynechat --sku použití výchozích hodnot.
    • Vytvořte aplikaci App Service.
    • Povolte pro aplikaci výchozí protokolování.
    • Nahrajte úložiště pomocí nasazení ZIP s povolenou automatizací sestavení.

Po úspěšném nasazení vygeneruje příkaz výstup JSON jako v následujícím příkladu:

Snímek obrazovky terminálu s ukázkovým výstupem příkazu az webapp up

Máte problémy? Nejprve si projděte průvodce odstraňováním potíží, jinak nám dejte vědět.

Konfigurace proměnných prostředí pro připojení databáze

S kódem nasazeným do služby App Service je dalším krokem připojení aplikace k databázi Postgres v Azure.

Kód aplikace očekává, že najde informace o databázi ve čtyřech proměnných prostředí s názvem AZURE_POSTGRESQL_HOST, AZURE_POSTGRESQL_NAME, AZURE_POSTGRESQL_USERa AZURE_POSTGRESQL_PASS.

Pokud chcete nastavit proměnné prostředí ve službě App Service, vytvořte nastavení aplikace pomocí následujícího az connection create příkazu.

az webapp connection create postgres-flexible --client-type django

Skupina prostředků, název aplikace, název databáze se načítá z hodnot uložených v mezipaměti. Během provádění tohoto příkazu musíte zadat heslo správce databáze postgres.

  • Příkaz vytvoří nastavení s názvem "AZURE_POSTGRESQL_HOST", "AZURE_POSTGRESQL_NAME", "AZURE_POSTGRESQL_USER", "AZURE_POSTGRESQL_PASS" podle očekávání kódu aplikace.
  • Pokud jste zapomněli přihlašovací údaje správce, příkaz vás provede resetováním.

Poznámka:

Pokud se zobrazí chybová zpráva "Předplatné není zaregistrované pro použití Microsoft.ServiceLinker", spusťte prosím az provider register -n Microsoft.ServiceLinker registraci poskytovatele prostředků služby Připojení or a spusťte příkaz připojení znovu.

V kódu Pythonu se k těmto nastavením dostanete jako proměnné prostředí s příkazy, jako je os.environ.get('AZURE_POSTGRESQL_HOST'). Další informace najdete v tématu Proměnné prostředí Accessu.

Máte problémy? Nejprve si projděte průvodce odstraňováním potíží, jinak nám dejte vědět.

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

Migrace databází Django zajišťují, aby schéma v databázi PostgreSQL v Azure odpovídalo vašemu kódu.

  1. Spuštěním az webapp ssh otevřete relaci SSH pro webovou aplikaci v prohlížeči:

    az webapp ssh
    
  2. V relaci SSH spusťte následující příkazy:

    # Run database migrations
    python manage.py migrate
    
    # Create the super user (follow prompts)
    python manage.py createsuperuser
    

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

  3. Příkaz createsuperuser vás vyzve k zadání přihlašovacích údajů superuživatele. Pro účely tohoto kurzu použijte výchozí uživatelské jméno root, stiskněte klávesu Enter pro e-mailovou adresu, aby byla prázdná, a zadejte Pollsdb1 heslo.

  4. Pokud se zobrazí chyba, že je databáze uzamčená, ujistěte se, že jste spustili az webapp settings příkaz v předchozí části. Bez těchto nastavení nemůže příkaz migrace komunikovat s databází, což vede k chybě.

Máte problémy? Nejprve si projděte průvodce odstraňováním potíží, jinak nám dejte vědět.

Vytvoření otázky hlasování v aplikaci

  1. Otevřete web aplikace. Aplikace by měla zobrazit zprávu "Aplikace hlasování" a "Nejsou k dispozici žádná hlasování", protože v databázi ještě nejsou žádné konkrétní hlasování.

    az webapp browse
    

    Pokud se zobrazí chyba aplikace, je pravděpodobné, že jste buď nevytvořili požadovaná nastavení v předchozím kroku Konfigurace proměnných prostředí pro připojení databáze, nebo že tyto hodnoty obsahují chyby. Spuštěním příkazu az webapp config appsettings list zkontrolujte nastavení.

    Po aktualizaci nastavení opravte případné chyby, dejte aplikaci minutu na restartování a pak aktualizujte prohlížeč.

  2. Přejděte na stránku správce webové aplikace tak, že se připojíte /admin k adrese URL, http://<app-name>.azurewebsites.net/adminnapříklad . Přihlaste se pomocí přihlašovacích údajů superuživatele Django z předchozí části (root a Pollsdb1). V části Hlasování vyberte Přidat vedle otázek a vytvořte dotaz s některými možnostmi.

  3. Vraťte se na hlavní web (http://<app-name>.azurewebsites.net) a ověřte, že se uživateli nyní zobrazují otázky. Odpovězte na otázky, ale chcete vygenerovat některá data v databázi.

Gratulujeme! Spouštíte webovou aplikaci Python Django ve službě Aplikace Azure Service pro Linux s aktivní databází Postgres.

Poznámka:

App Service zjistí projekt Django vyhledáním wsgi.py souboru v každé podsložce, která manage.py startproject ve výchozím nastavení vytvoří. Když App Service tento soubor najde, načte webovou aplikaci Django. Další informace najdete v tématu Konfigurace integrované image Pythonu.

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

Pokud chcete zachovat aplikaci nebo pokračovat v dalších kurzech, přeskočte k dalším krokům. Jinak pokud se chcete vyhnout průběžným poplatkům, odstraňte skupinu prostředků vytvořenou pro tento kurz:

az group delete --name ServiceConnector-tutorial-rg --no-wait

Odstraněním skupiny prostředků také uvolníte a odstraníte všechny prostředky obsažené v této skupině. Před použitím příkazu už prostředky ve skupině nepotřebujete.

Odstranění všech prostředků může nějakou dobu trvat. Argument --no-wait umožňuje, aby se příkaz okamžitě vrátil.

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

Další krok