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í
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
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ťteaz upgrade
(vyžaduje verzi 2.30.0+).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říkladmsdocs-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
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
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
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říkladueastus
skupinaServiceConnector-tutorial-rg
prostředků v oblasti.
- Ve výchozím nastavení příkaz používá vygenerovaný název, například
- 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
.
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
V terminálu se ujistěte, že jste ve složce úložiště djangoapp , která obsahuje kód aplikace.
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
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 (skupinaPython-Django-PGFlex-rg
v tomto příkladueastus
).- 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í.
- Vytvořte plán služby App Service v cenové úrovni Basic (B1). Můžete vynechat
Po úspěšném nasazení vygeneruje příkaz výstup JSON jako v následujícím příkladu:
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_USER
a 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.
Spuštěním
az webapp ssh
otevřete relaci SSH pro webovou aplikaci v prohlížeči:az webapp ssh
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.
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énoroot
, stiskněte klávesu Enter pro e-mailovou adresu, aby byla prázdná, a zadejtePollsdb1
heslo.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
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č.
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/admin
například . Přihlaste se pomocí přihlašovacích údajů superuživatele Django z předchozí části (root
aPollsdb1
). V části Hlasování vyberte Přidat vedle otázek a vytvořte dotaz s některými možnostmi.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.