Sdílet prostřednictvím


Nasazení webové aplikace Pythonu (Flask) pomocí PostgreSQL v Azure

V tomto kurzu nasadíte webovou aplikaci Python řízenou daty do služby Azure App Service s relační databázovou službou Azure Database for PostgreSQL . Azure App Service podporuje Python v linuxovém serverovém prostředí. Tento článek používá aplikaci Flask . Alternativy zahrnují Django nebo kurz FastAPI.

Diagram znázorňuje architekturu služby App Service s databází PostgreSQL v Azure.

V tomto návodu se naučíte, jak:

  • Vytvořte ve výchozím nastavení zabezpečenou architekturu služby App Service, PostgreSQL a mezipaměti Redis.
  • Zabezpečení tajných kódů připojení pomocí spravované identity a odkazů na Key Vault
  • Nasaďte ukázkovou aplikaci v Pythonu do služby App Service z úložiště GitHub.
  • Přístup k připojovacím řetězcům služby App Service a nastavení aplikace v aplikačním kódu.
  • Proveďte aktualizace a znovu nasaďte kód aplikace.
  • Generování schématu databáze spuštěním migrací databází
  • Streamování diagnostických protokolů z Azure
  • Správa aplikace na webu Azure Portal
  • Zřiďte stejnou architekturu a nasaďte ji pomocí Azure Developer CLI.
  • Optimalizujte svůj vývojový pracovní postup pomocí GitHub Codespaces a GitHub Copilotu.

Požadavky

Přeskočit na konec

Pokud chcete jenom zobrazit ukázkovou aplikaci v tomto kurzu spuštěném v Azure, spusťte v Azure Cloud Shellu následující příkazy a postupujte podle pokynů:

mkdir msdocs-flask-postgresql-sample-app
cd msdocs-flask-postgresql-sample-app
azd init --template msdocs-flask-postgresql-sample-app
azd up

Spusťte ukázku

Jako výchozí bod nastavte ukázkovou aplikaci řízenou daty. Pro usnadnění vašeho pohodlí zahrnuje ukázkové úložiště konfiguraci vývojového kontejneru . Vývojový kontejner má všechno, co potřebujete k vývoji aplikace. Zahrnuje databázi, mezipaměť a všechny proměnné prostředí, které ukázková aplikace potřebuje. Vývojový kontejner může běžet v prostředí codespace GitHubu, takže ukázku můžete spustit na libovolném počítači s webovým prohlížečem.

Poznámka:

Pokud sledujete tento kurz s vlastní aplikací, podívejte se na popis souboru requirements.txt v README.md, abyste zjistili, jaké balíčky potřebujete.

Krok 1: V novém okně prohlížeče:

  1. Přihlaste se k účtu GitHub.
  2. Přejděte na https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app/fork.
  3. Zrušte výběr Kopírovat pouze hlavní větev. Chcete všechny větve.
  4. Vyberte Vytvořit fork.

Krok 2: Ve forku na GitHubu:

  1. Vyberte main>starter-no-infra pro počáteční větev. Tato větev obsahuje jenom ukázkový projekt bez souborů nebo konfigurace souvisejících s Azure.
  2. Vyberte Kód. Na kartě Codespaces vyberte Create codespace on starter-no-infra. Nastavení codespace trvá několik minut. pip install -r requirements.txt Spustí se pro vaše úložiště.

Krok 3: V terminálu codespace:

  1. Spusťte migrace databází pomocí flask db upgradepříkazu .
  2. Spusťte aplikaci pomocí flask runpříkazu .
  3. Až se zobrazí oznámení Your application running on port 5000 is available., vyberte Otevřít v prohlížeči. Ukázkovou aplikaci byste měli vidět na nové kartě prohlížeče. Chcete-li aplikaci zastavit, zadejte Ctrl+C.

Návod

Můžete se zeptat GitHub Copilot na toto úložiště. Například:

  • @workspace Co tento projekt dělá?
  • @workspace Co dělá složka .devcontainer?

Máte problémy? Projděte si část Řešení potíží.

Vytvoření služby App Service a PostgreSQL

V této části vytvoříte prostředky Azure. Tento kurz vytvoří sadu prostředků zabezpečení ve výchozím nastavení, které zahrnují App Service a Azure Database for PostgreSQL. Pro proces vytváření zadáte:

  • Název webové aplikace. Používá se jako součást názvu DNS pro vaši aplikaci.
  • Oblast, ve které se má aplikace spouštět fyzicky na světě. Je také součástí názvu DNS vaší aplikace.
  • Zásobník běhového prostředí pro aplikaci. Verze Pythonu, která se má použít pro vaši aplikaci
  • Plán hostování aplikace. Cenová úroveň, která zahrnuje sadu funkcí a kapacitu škálování pro vaši aplikaci.
  • Skupina prostředků pro aplikaci. Skupina prostředků umožňuje seskupovat prostředky Azure pro aplikaci v logickém kontejneru.

Přihlaste se k webu Azure Portal a podle těchto kroků vytvořte prostředky služby Azure App Service.

Krok 1: Na webu Azure Portal:

  1. V horní části webu Azure Portal zadejte do panelu hledání databázi webové aplikace .
  2. Pod nadpisem Marketplace vyberte položku s popiskem Webová aplikace a databáze. Můžete také přejít přímo k vytvoření webové aplikace .

Krok 2: Na stránce Vytvořit webovou aplikaci a databázi vyplňte formulář následujícím způsobem.

  1. Skupina prostředků: Vyberte Vytvořit novou a použijte název msdocs-flask-postgres-tutorial.
  2. Oblast: Libovolná oblast Azure, která je blízko vás.
  3. Název: msdocs-python-postgres-XYZ.
  4. Zásobník modulu runtime: Python 3.14.
  5. Databáze: Flexibilní server PostgreSQL je ve výchozím nastavení vybraný jako databázový stroj. Název serveru a název databáze jsou také standardně nastavené na odpovídající hodnoty.
  6. Přidat Azure Cache for Redis?: Ne.
  7. Plán hostování: Basic. Až budete připraveni, můžete rozšířit na produkční cenovou úroveň.
  8. Vyberte Zkontrolovat a vytvořit.
  9. Po dokončení ověření vyberte Vytvořit.

Krok 3: Nasazení trvá několik minut. Po dokončení nasazení vyberte Přejít k prostředku. Nasazení vytvoří následující prostředky:

  • Skupina prostředků: Kontejner pro všechny vytvořené prostředky.
  • Plán služby App Service: Definuje výpočetní prostředky pro Službu App Service. Nasazení vytvoří linuxový plán na úrovni Basic.
  • App Service: Představuje vaši aplikaci a spouští se v plánu služby App Service.
  • Virtuální síť: Integrovaná s aplikací App Service a izoluje provoz back-endové sítě.
  • Síťová rozhraní: Představuje privátní IP adresy, jednu pro každý privátní koncový bod.
  • Flexibilní server Azure Database for PostgreSQL: Přístupný pouze z virtuální sítě. Databáze a uživatel se pro vás vytvoří na serveru.
  • Privátní zóny DNS: Umožňuje rozlišení DNS klíčového trezoru a databázového serveru ve virtuální síti.

Zabezpečené tajné kódy připojení

Proces nasazení vygeneruje proměnné připojení pro vás jako nastavení aplikace. Osvědčeným postupem zabezpečení je úplné zachování tajných kódů mimo službu App Service. Přesuňte tajné kódy do trezoru klíčů a změňte nastavení aplikace na odkazy služby Key Vault pomocí konektorů služeb.

Krok 1: Načtení existujícího připojovacího řetězce:

  1. V nabídce vlevo na stránce služby App Service vyberte Nastavení>Proměnné prostředí.
  2. Vyberte AZURE_POSTGRESQL_CONNECTIONSTRING.
  3. V Přidat/upravit nastavení aplikace v poli Hodnota najděte heslo= na konci řetězce.
  4. Zkopírujte řetězec hesla za heslem= pro pozdější použití. Toto nastavení aplikace umožňuje připojit se k databázi Postgres zabezpečenou za privátním koncovým bodem. Tajný kód se uloží přímo v aplikaci App Service, což není osvědčený postup. Později tuto konfiguraci změníte.

Krok 2: Vytvořte trezor klíčů pro zabezpečenou správu tajných kódů:

  1. Na horním panelu hledání zadejte "key vault" a pak vyberte Marketplace>Key Vault.
  2. Ve skupině prostředků vyberte msdocs-python-postgres-tutorial.
  3. Do názvu trezoru klíčů zadejte název, který se skládá jenom z písmen a číslic.
  4. V oblasti ji nastavte na stejné umístění jako skupina prostředků.

Krok 3: Zabezpečení trezoru klíčů pomocí privátního koncového bodu:

  1. Vyberte Sítě.
  2. Zrušte výběr možnosti Povolit veřejný přístup.
  3. Vyberte Vytvořit privátní koncový bod.
  4. Ve skupině prostředků vyberte msdocs-python-postgres-tutorial.
  5. V dialogovém okně v umístění vyberte stejné umístění jako vaše aplikace App Service.
  6. Do pole Název zadejte msdocs-python-postgres-XYZVaultEndpoint.
  7. Ve virtuální síti vyberte msdocs-python-postgres-XYZVnet.
  8. V části Podsíť vyberte msdocs-python-postgres-XYZSubnet.
  9. Vyberte OK.
  10. Vyberte Zkontrolovat a vytvořit a pak vyberte Vytvořit. Počkejte na dokončení nasazení trezoru klíčů. Měli byste vidět , že je vaše nasazení dokončené.

Krok 4: Konfigurace konektoru PostgreSQL:

  1. Na horním panelu hledání zadejte msdocs-python-postgres a pak vyberte prostředek služby App Service s názvem msdocs-python-postgres-XYZ.
  2. Na stránce služby App Service v nabídce vlevo vyberteKonektor služby>. Už existuje konektor, který pro vás proces nasazení vytvořil.
  3. Zaškrtněte políčko vedle konektoru PostgreSQL a pak vyberte Upravit.
  4. V typu Klient vyberte Django. I když máte aplikaci Flask, typ klienta Django v konektoru služby PostgreSQL poskytuje proměnné databáze v samostatných nastaveních místo jednoho připojovacího řetězce. Samostatné proměnné jsou pro vás jednodušší používat v kódu aplikace, který k připojení k databázi používá SQLAlchemy .
  5. Vyberte Ověřování.
  6. Do pole Heslo vložte dříve zkopírované heslo.
  7. Vyberte Uložit tajný klíč ve službě Key Vault.
  8. V části Připojení ke službě Key Vault vyberte Vytvořit nový. Otevře se dialogové okno Vytvořit připojení v horní části dialogového okna pro úpravy.

Krok 5: Navázání připojení ke službě Key Vault:

  1. V dialogovém okně Vytvořit připojení pro připojení ke službě Key Vault vyberte ve službě Key Vault trezor klíčů, který jste vytvořili dříve.
  2. Vyberte Zkontrolovat a vytvořit.
  3. Po dokončení ověření vyberte Vytvořit.

Krok 6: Dokončení nastavení konektoru PostgreSQL:

  1. Jste zpátky v dialogovém okně pro úpravy pro defaultConnector. Na kartě Ověřování počkejte na vytvoření konektoru trezoru klíčů. Po dokončení vytváření ho automaticky vybere rozevírací seznam Připojení ke službě Key Vault .
  2. Vyberte Další: Sítě.
  3. Vyberte Uložit. Počkejte, až se zobrazí oznámení o úspěšném dokončení aktualizace .

Krok 7: Ověření integrace služby Key Vault

  1. V nabídce vlevo znovu vyberte Nastavení>Proměnné prostředí.
  2. Vedle AZURE_POSTGRESQL_PASSWORD vyberte Zobrazit hodnotu. Hodnota by měla být @Microsoft.KeyVault(...), což znamená, že se jedná o odkaz na trezor klíčů. Tajný klíč se teď spravuje v trezoru klíčů.

Shrnutí: Proces zabezpečení tajných kódů připojení:

  • Načítání tajných kódů připojení z proměnných prostředí aplikace App Service
  • Vytvoření trezoru klíčů
  • Vytvoření připojení ke službě Key Vault se spravovanou identitou přiřazenou systémem
  • Aktualizace konektorů služby tak, aby ukládaly tajné kódy do trezoru klíčů.

Máte problémy? Projděte si část Řešení potíží.


Nasazení ukázkového kódu

V této části nakonfigurujete nasazení GitHubu pomocí GitHub Actions. Je to jeden z mnoha způsobů nasazení do služby App Service. Je to skvělý způsob, jak mít kontinuální integraci v procesu nasazení. Ve výchozím nastavení spustí každé git push do vašeho GitHub repozitáře akci sestavení a nasazení.

Krok 1: V nabídce vlevo vyberte Deployment>Deployment Center.

Krok 2: Na stránce Deployment Center :

  1. Ve zdroji vyberte GitHub. Ve výchozím nastavení je jako zprostředkovatel sestavení vybrán GitHub Actions .
  2. Přihlaste se ke svému účtu GitHub a postupujte podle pokynů k autorizaci Azure.
  3. V organizaci vyberte svůj účet.
  4. V úložišti vyberte msdocs-flask-postgresql-sample-app.
  5. Ve větvi vyberte starter-no-infra. Tato větev je stejná jako ta, ve které jste pracovali s ukázkovou aplikací bez jakýchkoli souborů nebo konfigurace souvisejících s Azure.
  6. Jako typ ověřování vyberte identitu přiřazenou uživatelem.
  7. V horní nabídce vyberte Uložit. App Service potvrdí soubor pracovního postupu do zvoleného úložiště GitHub v .github/workflows adresáři. Ve výchozím nastavení centrum nasazení vytvoří identitu přiřazenou uživatelem pro pracovní postup k ověření pomocí ověřování Microsoft Entra (ověřování OIDC). Další možnosti ověřování najdete v tématu Nasazení do služby App Service pomocí GitHub Actions.

Krok 3: Vraťte se do prostoru kódu GitHubu ukázkového forku a spusťte git pull origin starter-no-infra. Tento příkaz načte nově potvrzený soubor pracovního postupu do vašeho prostoru kódu.

Krok 4 (možnost 1: s GitHub Copilotem):

  1. Spusťte novou relaci chatu tak, že vyberete zobrazení chatu a pak vyberete +.
  2. Zeptejte se na @workspace, jak se aplikace připojuje k databázi? Copilot vám může poskytnout určité vysvětlení o SQLAlchemy, například jak se URI připojení konfiguruje v azureproject/development.py a azureproject/production.py.
  3. Zeptejte se , @workspace V produkčním režimu je moje aplikace spuštěná ve webové aplikaci App Service, která používá Azure Service Connector k připojení k flexibilnímu serveru PostgreSQL pomocí typu klienta Django. Jaké názvy proměnných prostředí potřebuji použít? Copilot vám může poskytnout návrh kódu podobný návrhu v možnost 2: bez GitHub Copilota a dokonce vám může říci, abyste udělali změnu v souboru azureproject/production.py.
  4. Otevřete azureproject/production.py v průzkumníku a přidejte návrh kódu. GitHub Copilot vám pokaždé nedává stejnou odpověď. Odpovědi nejsou vždy správné. Možná budete muset položit další otázky, abyste vyladili jeho odpověď. Tipy najdete v tématu Co můžu dělat s GitHub Copilotem v kódu?

Krok 4 (možnost 2: bez GitHub Copilotu):

  1. V průzkumníku otevřete azureproject/production.py.
  2. Najděte okomentovaný kód (řádky 3–8) a odkomentujte ho. Tato změna vytvoří připojovací řetězec pro SQLAlchemy pomocí AZURE_POSTGRESQL_USER, AZURE_POSTGRESQL_PASSWORD, AZURE_POSTGRESQL_HOST a AZURE_POSTGRESQL_NAME.

Krok 5:

  1. Vyberte rozšíření Správa verzí.
  2. Do textového pole zadejte zprávu potvrzení, například Configure Azure database connection. Nebo vyberte a nechte GitHub Copilot vygenerovat potvrzovací zprávu za vás.
  3. Vyberte Potvrdit a potvrďte akci ano.
  4. Vyberte Synchronizovat změny 1 a potvrďte OK.

Krok 6: Zpět na stránce Deployment Center na webu Azure Portal:

  1. Vyberte Protokoly, pak zvolte Aktualizovat pro zobrazení nového spuštění nasazení.
  2. V položce protokolu pro spuštění nasazení vyberte položku Sestavit/Nasadit protokoly s nejnovějším časovým razítkem.

Krok 7: Přejdete do úložiště GitHub. Akce GitHubu je spuštěná. Soubor pracovního postupu definuje dvě samostatné fáze, sestavení a nasazení. Počkejte na spuštění GitHubu a zobrazte stav Úspěch. Trvá to asi 5 minut.

Máte problémy? Projděte si průvodce odstraňováním potíží.

Generování schématu databáze

S databází PostgreSQL chráněnou virtuální sítí je nejjednodušší způsob, jak spouštět migrace databází Flask , v relaci SSH s kontejnerem Linuxu ve službě App Service.

Krok 1: Zpět na stránce služby App Service v nabídce vlevo

  1. Vyberte Vývojové nástroje>SSH.
  2. Vyberte Přejít.

Krok 2: V relaci SSH spusťte flask db upgradepříkaz . Pokud proběhne úspěšně, služba App Service se úspěšně připojuje k databázi.

Návod

V relaci SSH se změny souborů v /home můžou zachovat i po restartování aplikace. Změny mimo /home se neuchovávají.

Máte problémy? Projděte si část Řešení potíží.

Přechod do aplikace

Krok 1: Na stránce služby App Service :

  1. V nabídce vlevo vyberte Přehled.
  2. Vyberte adresu URL aplikace.

Krok 2: Přidejte do seznamu několik restaurací. Blahopřejeme, spouštíte webovou aplikaci ve službě Aplikace Azure Service se zabezpečeným připojením ke službě Azure Database for PostgreSQL.

Přenášet diagnostické protokoly

Aplikace Azure Service zachytává všechny protokoly konzoly, které vám pomůžou diagnostikovat problémy s aplikací. Ukázková aplikace obsahuje print() příkazy, které tuto funkci předvádějí, jak je znázorněno tady.

@app.route('/', methods=['GET'])
def index():
    print('Request for index page received')
    restaurants = Restaurant.query.all()
    return render_template('index.html', restaurants=restaurants)

Krok 1: Na stránce služby App Service :

  1. V nabídce vlevo vyberte Monitorování>protokolů služby App Service.
  2. V části Protokolování aplikace vyberte Systém souborů.
  3. V horní nabídce vyberte Uložit.

Krok 2: V nabídce vlevo vyberte Stream protokolu. Zobrazí se protokoly pro vaši aplikaci, včetně protokolů platformy a protokolů z kontejneru.

Další informace o protokolování v aplikacích v Pythonu najdete v tématu Nastavení služby Azure Monitor pro vaši aplikaci v Pythonu.

Vyčistěte zdroje

Po dokončení můžete odstranit všechny prostředky z předplatného Azure odstraněním skupiny prostředků.

Krok 1: Na panelu hledání v horní části webu Azure Portal:

  1. Zadejte název skupiny prostředků.
  2. Vyberte tuto skupinu prostředků.

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

Krok 3:

  1. Pro potvrzení odstranění zadejte název skupiny prostředků.
  2. Vyberte Odstranit.
  3. Potvrďte akci Odstranit znovu.

Vytvoření prostředků Azure a nasazení ukázkové aplikace

V tomto kroku vytvoříte prostředky Azure a nasadíte ukázkovou aplikaci do App Service v Linuxu. Kroky použité v tomto kurzu vytvoří sadu prostředků zabezpečených ve výchozím nastavení, které zahrnují App Service a Azure Database for PostgreSQL.

Vývojový kontejner už má Azure Developer CLI (AZD).

  1. V kořenovém adresáři úložiště spusťte příkaz azd init.

    azd init --template python-app-service-postgresql-infra
    
  2. Po zobrazení výzvy zadejte následující odpovědi:

    Otázka Odpověď
    Aktuální adresář není prázdný. Chcete inicializovat projekt zde v '<vašem adresáři>'? Y
    Co chcete s těmito soubory dělat? Zachovat stávající soubory beze změny
    Zadejte nový název prostředí. Zadejte jedinečný název. Šablona AZD používá tento název jako součást názvu DNS vaší webové aplikace v Azure (<app-name>-<hash>.azurewebsites.net). Jsou povoleny alfanumerické znaky a spojovníky.
  3. Přihlaste se k Azure spuštěním příkazu azd auth login a následováním pokynů:

    azd auth login
    
  4. Pomocí příkazu azd provision vytvořte potřebné prostředky Azure. Podle pokynů vyberte požadované předplatné a umístění prostředků Azure.

    azd provision
    

    Dokončení azd provision příkazu trvá přibližně 15 minut. Mezipaměť Redis trvá nejvíce času. Následně upravte kód tak, aby fungoval se službou App Service a nasadit změny pomocí azd deploy. Příkaz během spuštění poskytuje zprávy o procesu zřizování a nasazení, včetně odkazu na nasazení v Azure.

    Tato šablona AZD obsahuje soubory (azure.yaml a adresář infrastruktury ), které ve výchozím nastavení generují zabezpečenou architekturu s následujícími prostředky Azure:

    • Skupina prostředků: Kontejner pro všechny vytvořené prostředky.
    • Plán služby App Service: Definuje výpočetní prostředky pro Službu App Service. Vytvoří plán Linuxu na úrovni Basic .
    • App Service: Představuje vaši aplikaci a spouští se v plánu služby App Service.
    • Virtuální síť: Integrovaná s aplikací App Service a izoluje provoz back-endové sítě.
    • Privátní koncové body: Přístupové koncové body pro klíčový trezor a mezipaměť Redis ve virtuální síti.
    • Síťová rozhraní: Představuje privátní IP adresy, jednu pro každý privátní koncový bod.
    • Flexibilní server Azure Database for PostgreSQL: Přístupný pouze z virtuální sítě. Databáze a uživatel se pro vás vytvoří na serveru.
    • Privátní zóna DNS: Umožňuje vyřešení DNS serveru PostgreSQL ve virtuální síti.
    • Pracovní prostor Služby Log Analytics: Slouží jako cílový kontejner vaší aplikace k odeslání protokolů, kde můžete také dotazovat protokoly.
    • Azure Cache for Redis: Přístupné pouze prostřednictvím jeho privátního koncového bodu.
    • Trezor klíčů: Přístupný pouze ze svého privátního koncového bodu. Slouží ke správě tajných kódů pro aplikaci App Service.

    Jakmile příkaz dokončí vytváření prostředků a nasazení kódu aplikace poprvé, nasazená ukázková aplikace ještě nefunguje. Pokud se chcete připojit k databázi v Azure, musíte provést malé změny.

Máte problémy? Projděte si část Řešení potíží.

Použijte připojovací řetězec databáze

Šablona AZD, kterou použijete, vygenerovala proměnné připojení pro vás už jako nastavení aplikace. Vypíše je do terminálu. Nastavení aplikace je jedním ze způsobů, jak udržovat tajné kódy připojení mimo úložiště kódu.

  1. Ve výstupu AZD vyhledejte nastavení AZURE_POSTGRESQL_USER, AZURE_POSTGRESQL_PASSWORD, AZURE_POSTGRESQL_HOSTa AZURE_POSTGRESQL_NAME. Pokud chcete tajné kódy zachovat v bezpečí, zobrazí se jenom názvy nastavení. Ve výstupu AZD vypadají takto:

    App Service app has the following connection settings:
            - AZURE_POSTGRESQL_NAME
            - AZURE_POSTGRESQL_HOST
            - AZURE_POSTGRESQL_USER
            - AZURE_POSTGRESQL_PASSWORD
            - AZURE_REDIS_CONNECTIONSTRING
            - AZURE_KEYVAULT_RESOURCEENDPOINT
            - AZURE_KEYVAULT_SCOPE
    
  2. Šablona AZD vám pro usnadnění práci ukáže přímý odkaz na stránku nastavení aplikace. Najděte odkaz a otevřete ho na nové kartě prohlížeče.

Máte problémy? Projděte si část Řešení potíží.

Úprava vzorového kódu a opětovné nasazení

  1. V prostředí GitHub Codespaces spusťte novou chatovací relaci tak, že vyberete možnost Chat a pak vyberete +.

  2. Zeptejte se @workspace, jak se aplikace připojuje k databázi? Copilot vám může poskytnout vysvětlení SQLAlchemy, například jak je identifikátor URI jeho připojení konfigurován v azureproject/development.py a azureproject/production.py.

  3. Zeptejte se na @workspace, v produkčním režimu je moje aplikace spuštěná ve webové aplikaci App Service, která používá Azure Service Connector k připojení k flexibilnímu serveru PostgreSQL pomocí typu klienta Django. Jaké názvy proměnných prostředí potřebuji? Copilot vám může dát návrh kódu podobný návrhu v Možnost 2: bez GitHub Copilot a dokonce může doporučit změnu v souboru azureproject/production.py.

  4. Otevřete azureproject/production.py v průzkumníku a přidejte návrh kódu.

    GitHub Copilot vám pokaždé nedává stejnou odpověď. Odpovědi nejsou vždy správné. Možná budete muset položit další otázky, abyste vyladili jeho odpověď. Tipy najdete v tématu Co můžu dělat s GitHub Copilotem v kódu?.

  5. V terminálu spusťte azd deploy.

    azd deploy
    

Máte problémy? Projděte si část Řešení potíží.

Generování schématu databáze

S databází PostgreSQL chráněnou virtuální sítí je nejjednodušší způsob, jak spouštět migrace databází Flask , v relaci SSH s kontejnerem Linuxu ve službě App Service.

  1. Ve výstupu AZD vyhledejte adresu URL relace SSH a přejděte na ni v prohlížeči. Ve výstupu to vypadá takto:

    Open SSH session to App Service container at: <URL>
    
  2. V relaci SSH spusťte flask db upgrade. Pokud proběhne úspěšně, služba App Service se úspěšně připojuje k databázi.

    Snímek obrazovky ukazuje příkazy ke spuštění v prostředí SSH a jejich výstupu.

    Poznámka:

    Kromě restartování aplikace se můžou zachovat jenom změny v /home souborech. Změny mimo /home se neuchovávají.

Máte problémy? Projděte si část Řešení potíží.

Přechod do aplikace

  1. Ve výstupu AZD najděte adresu URL aplikace a přejděte na ni v prohlížeči. Adresa URL vypadá takto ve výstupu AZD:

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service web
      - Endpoint: <URL>
    
  2. Přidejte do seznamu několik restaurací.

    Snímek obrazovky webové aplikace Flask s PostgreSQL běžící v Azure zobrazující restaurace a recenze restaurací

    Gratulujeme! Spouštíte webovou aplikaci ve službě Azure App Service se zabezpečeným připojením ke službě Azure Database for PostgreSQL.

Máte problémy? Projděte si část Řešení potíží.

Přenášet diagnostické protokoly

Aplikace Azure Služba může zaznamenávat protokoly konzoly, které vám pomůžou diagnostikovat problémy s aplikací. Šablona AZD již umožňuje protokolování do místního systému souborů a odesílá protokoly do pracovního prostoru služby Log Analytics.

Ukázková aplikace obsahuje print() příkazy k předvedení této funkce, jak je znázorněno v následujícím fragmentu kódu.

@app.route('/', methods=['GET'])
def index():
    print('Request for index page received')
    restaurants = Restaurant.query.all()
    return render_template('index.html', restaurants=restaurants)

Ve výstupu AZD vyhledejte odkaz na streamování protokolů služby App Service a přejděte na něj v prohlížeči.

Přečtěte si další informace o protokolování v aplikacích Pythonu v řadě o nastavení služby Azure Monitor pro vaši aplikaci v Pythonu.

Máte problémy? Projděte si část Řešení potíží.

Vyčistěte zdroje

Pokud chcete odstranit všechny prostředky Azure v aktuálním prostředí nasazení, spusťte azd down a postupujte podle pokynů.

azd down

Řešení problémů

Tady jsou některé problémy, se kterými se můžete setkat při pokusu o práci v tomto kurzu a postupu při jejich řešení.

Nemůžu se připojit k relaci SSH

Pokud se nemůžete připojit k relaci SSH, nepovedlo se spustit samotnou aplikaci. Podrobnosti najdete v diagnostických protokolech . Například pokud se objeví chyba, jako je KeyError: 'AZURE_POSTGRESQL_HOST', může to znamenat, že chybí proměnná prostředí. Možná jste odebrali nastavení aplikace.

Při spouštění migrací databází se zobrazí chyba

Pokud dojde k nějakým chybám souvisejícím s připojením k databázi, zkontrolujte, jestli se nastavení aplikace (AZURE_POSTGRESQL_USER, AZURE_POSTGRESQL_PASSWORDAZURE_POSTGRESQL_HOSTa AZURE_POSTGRESQL_NAME) nezměnilo nebo odstranilo. Bez toho řetězce připojení nemůže příkaz migrace komunikovat s databází.

Nejčastější dotazy

Kolik stojí toto nastavení?

Ceny vytvořených prostředků jsou následující:

  • Plán služby App Service se vytvoří na úrovni Basic a dá se vertikálně navýšit nebo snížit. Podívejte se na ceny služby App Service.
  • Flexibilní server PostgreSQL se vytváří v nejnižší škálovatelné úrovni Standard_B1ms s minimální velikostí úložiště, kterou lze škálovat nahoru nebo dolů. Podívejte se na ceny služby Azure Database for PostgreSQL.
  • Za virtuální síť se neúčtují poplatky, pokud nenakonfigurujete další funkce, jako je například propojení sítě. Podívejte se na ceny služby Azure Virtual Network.
  • Za privátní zónu DNS se účtují malé poplatky. Podívejte se na ceny Azure DNS.

Jak se mohu připojit k serveru PostgreSQL, který je chráněný virtuální sítí, pomocí jiných nástrojů?

  • Pro základní přístup z nástroje příkazového řádku můžete spustit psql při relaci SSH aplikace.
  • Pokud se chcete připojit z desktopového nástroje, musí být váš počítač ve virtuální síti. Může to být například virtuální počítač Azure připojený k jedné z podsítí nebo počítače v místní síti, který má připojení VPN typu site-to-site s virtuální sítí Azure.
  • Azure Cloud Shell můžete také integrovat s virtuální sítí.

Jak místní vývoj aplikací funguje s GitHub Actions?

Pro každý automaticky vygenerovaný soubor pracovního postupu ze služby App Service, jako příklad, se spustí nové sestavení a nasazení pro každý git push. Z místního klonu úložiště GitHub provedete požadované aktualizace a nasdílíte je na GitHub. Například:

git add .
git commit -m "<some-message>"
git push origin main

Jak ladit chyby během nasazení GitHub Actions?

Pokud v automaticky vygenerovaném souboru pracovního postupu GitHubu selže krok, zkuste upravit neúspěšný příkaz a vygenerovat více podrobného výstupu. Můžete například získat podrobný výstup příkazu python přidáním možnosti -d. Potvrďte a nasdílejte změny, aby se aktivovalo další nasazení do služby App Service.

Nemám oprávnění k vytvoření uživatelsky přiřazené identity

Viz Nastavení nasazení GitHub Actions z Centra nasazení.

Co můžu dělat s GitHub Copilotem v kódu?

Můžete si všimnout, že zobrazení chatu GitHub Copilot už bylo k dispozici, když jste vytvořili kódový prostor. Pro usnadnění vašeho pohodlí zahrneme rozšíření chatu GitHub Copilot do definice kontejneru. Viz .devcontainer/devcontainer.json. Potřebujete účet GitHub Copilot. K dispozici je 30denní bezplatná zkušební verze.

Několik tipů pro vás při komunikaci s GitHub Copilotem:

  • V jedné chatové relaci se otázky a odpovědi vzájemně rozvíjejí. Otázky můžete upravit tak, aby vyladily odpověď, kterou dostanete.
  • GitHub Copilot ve výchozím nastavení nemá přístup k žádnému souboru ve vašem úložišti. Pokud chcete položit otázky k souboru, otevřete ho nejprve v editoru.
  • Pokud chcete, aby GitHub Copilot měl při přípravě odpovědí přístup ke všem souborům v úložišti, začněte svou otázkou @workspace. Další informace najdete v tématu Use the @workspace agent.
  • V chatové relaci může GitHub Copilot navrhovat změny a také @workspace naznačit, kde tyto změny provést, ale změny za vás nesmí provádět. Je na vás přidat navrhované změny a otestovat je.

V dalším kurzu se dozvíte, jak zabezpečit aplikaci pomocí vlastní domény a certifikátu.

Zjistěte, jak App Service spouští aplikaci v Pythonu: