Sdílet prostřednictvím


Kurz: Sestavení a nasazení webové aplikace v Pythonu pomocí Azure Container Apps a PostgreSQL

Tento článek je součástí série kurzů o kontejnerizaci a nasazení webové aplikace v Pythonu do Azure Container Apps. Container Apps umožňuje nasazovat kontejnerizované aplikace bez nutnosti spravovat složitou infrastrukturu.

V tomto kurzu:

  • Vytvoření kontejneru ukázkové webové aplikace v Pythonu (Django nebo Flask) sestavením image kontejneru v cloudu
  • Nasaďte image kontejneru do Azure Container Apps.
  • Definujte proměnné prostředí, které aplikaci kontejneru umožňují připojit se k flexibilnímu serveru Azure Database for PostgreSQL instanci, ve které ukázková aplikace ukládá data.

Následující diagram znázorňuje úlohy v tomto kurzu: sestavení a nasazení image kontejneru.

Diagram služeb zapojených do nasazení aplikace v Pythonu na Azure Container Apps, s částmi týkajícími se ručního sestavení obrazu zvýrazněnými.

Požadavky

Pokud nemáte předplatné Azure, vytvořte si bezplatný účet předtím, než začnete.

Příkazy Azure CLI můžete spouštět v Azure Cloud Shellu nebo na pracovní stanici s nainstalovaným Azure CLI.

Pokud používáte místně, přihlaste se a nainstalujte potřebné moduly pro tento kurz podle těchto kroků:

  1. V případě potřeby se přihlaste k Azure a ověřte:

    az login
    
  2. Ujistěte se, že používáte nejnovější verzi Azure CLI:

    az upgrade
    
  3. Nainstalujte nebo upgradujte containerapp a rozšíření Azure CLI rdbms-connect pomocí příkazu az extension add:

    az extension add --name containerapp --upgrade
    az extension add --name rdbms-connect --upgrade
    

    Poznámka:

    Pokud chcete zobrazit seznam rozšíření nainstalovaných ve vašem systému, můžete použít příkaz az extension list. Například:

    az extension list --query [].name --output tsv
    

Získání ukázkové aplikace

Vytvoření forku a naklonování ukázkového kódu do vývojového prostředí:

  1. Přejděte do úložiště GitHub ukázkové aplikace (Django nebo Flask) a vyberte Fork.

    Postupujte podle pokynů k vytvoření odnože úložiště do vašeho účtu na GitHubu. Úložiště kódu si také můžete stáhnout přímo na místní počítač bez forku nebo účtu GitHubu. Pokud ale použijete metodu stahování, v dalším kurzu této série nebudete moct nastavit kontinuální integraci a průběžné doručování (CI/CD).

  2. Pomocí příkazu git clone naklonujte forkované úložiště do složky python-container:

    # Django
    git clone https://github.com/<github-username>/msdocs-python-django-azure-container-apps.git python-container
    
    # Flask
    # git clone https://github.com/<github-username>/msdocs-python-flask-azure-container-apps.git python-container
    
  3. Změňte adresář:

    cd python-container
    

Sestavení image kontejneru z kódu webové aplikace

Po provedení těchto kroků budete mít instanci služby Azure Container Registry, která obsahuje image kontejneru Dockeru sestavenou z ukázkového kódu.

  1. Pomocí příkazu az group create vytvořte skupinu prostředků:

    az group create \
        --name pythoncontainer-rg \
        --location <location>
    

    Nahraďte <lokace> jednou z hodnot lokace Azure Name z výstupu příkazu az account list-locations -o table.

  2. Vytvořte registr kontejneru pomocí příkazu az acr create:

    az acr create \
        --resource-group pythoncontainer-rg \
        --name <registry-name> \
        --sku Basic \
        --admin-enabled
    

    Název, který používáte pro <název registru> musí být jedinečný v rámci Azure a musí obsahovat 5 až 50 alfanumerických znaků.

  3. Přihlaste se k registru pomocí příkazu az acr login:

    az acr login --name <registry-name>
    

    Příkaz přidá do názvu "azurecr.io", aby se vytvořil plně kvalifikovaný název registru. Pokud je přihlášení úspěšné, zobrazí se zpráva Přihlášení bylo úspěšné. Pokud přistupujete k registru z předplatného, které se liší od předplatného, ve kterém jste registr vytvořili, použijte přepínač --suffix.

    Pokud se přihlášení nezdaří, ujistěte se, že démon Dockeru běží ve vašem systému.

  4. Sestavte image pomocí příkazu az acr build:

    az acr build \
        --registry <registry-name> \
        --resource-group pythoncontainer-rg \
        --image pythoncontainer:latest .
    

    Platí tyto aspekty:

    • Tečka (.) na konci příkazu označuje umístění zdrojového kódu, který se má sestavit. Pokud tento příkaz nespouštíte v kořenovém adresáři ukázkové aplikace, zadejte cestu ke kódu.

    • Pokud spouštíte příkaz v Azure Cloud Shellu, použijte git clone k prvnímu načtení úložiště do prostředí Cloud Shell. Potom změňte adresář na kořen projektu tak, aby tečka (.) byla interpretována správně.

    • Pokud možnost (stejná jako--image) vynecháte -t , příkaz zařadí do fronty sestavení místního kontextu bez toho, aby ho nasdílel do registru. Sestavení bez nabízení může být užitečné ke kontrole sestavení image.

  5. Pomocí příkazu az acr repository list ověřte, že image kontejneru byla vytvořena:

    az acr repository list --name <registry-name>
    

Poznámka:

Kroky v této části vytvoří registr kontejneru na úrovni služby Basic. Tato úroveň je optimalizovaná pro náklady s sadou funkcí a propustností určenou pro scénáře vývojářů a je vhodná pro požadavky tohoto kurzu. V produkčních scénářích byste pravděpodobně použili úroveň služby Standard nebo Premium. Tyto úrovně poskytují vylepšené úrovně úložiště a propustnosti.

Chcete-li se dozvědět více, viz úrovně služby Azure Container Registry. Pro informace o cenách se podívejte na ceník služby Azure Container Registry.

Vytvoření instance flexibilního serveru PostgreSQL

Ukázková aplikace (Django nebo Flask) ukládá data kontroly restaurace v databázi PostgreSQL. V těchto krocích vytvoříte server, který bude obsahovat databázi.

  1. K vytvoření serveru PostgreSQL v Azure použijte příkaz az postgres flexible-server create. Není neobvyklé, že se tento příkaz spustí několik minut, než se dokončí.

    az postgres flexible-server create \
       --resource-group pythoncontainer-rg \
       --name <postgres-server-name>  \
       --location <location> \
       --admin-user demoadmin \
       --admin-password <admin-password> \
       --active-directory-auth Enabled \
       --tier burstable \
       --sku-name standard_b1ms \
       --public-access 0.0.0.0 
    

    Použijte tyto hodnoty:

    • pythoncontainer-rg: Název skupiny prostředků, kterou tento kurz používá. Pokud jste použili jiný název, změňte tuto hodnotu.

    • <postgres-server-name>: Název databázového serveru PostgreSQL. Tento název musí být jedinečný ve všech Azure. Koncový bod serveru je https://<postgres-server-name>.postgres.database.azure.com. Povolené znaky jsou AZ, 09a pomlčky (-).

    • <umístění>: Použijte stejné umístění, které jste použili pro webovou aplikaci. <umístění> je jednou z hodnot Name umístění Azure z výstupu příkazu az account list-locations -o table.

    • <uživatelské jméno správce>: Uživatelské jméno pro účet správce. Nemůže to být azure_superuser, admin, administrator, root, guestani public. Pro účely tohoto kurzu použijte demoadmin.

    • <heslo správce>: Heslo uživatele správce. Musí obsahovat 8 až 128 znaků ze tří z následujících kategorií: velká písmena anglické abecedy, malá písmena anglické abecedy, číslice a jiné než alfanumerické znaky.

      Důležité

      Při vytváření uživatelských jmen nebo hesel nepoužívejte znak dolaru ($). Později při vytváření proměnných prostředí s těmito hodnotami má tento znak speciální význam v kontejneru Linuxu, který používáte ke spouštění aplikací v Pythonu.

    • --active-directory-auth: Tato hodnota určuje, jestli je na serveru PostgreSQL povolené ověřování Microsoft Entra. Nastavte ho na Enabled.

    • --sku-name: Název cenové úrovně a konfigurace výpočetních prostředků; například Standard_B1ms. Další informace najdete v tématu o cenách služby Azure Database for PostgreSQL. Pokud chcete zobrazit seznam dostupných úrovní, použijte az postgres flexible-server list-skus --location <location>.

    • --public-access: Použijte 0.0.0.0. Umožňuje veřejný přístup k serveru z jakékoli služby Azure, jako je kontejnerové aplikace.

    Poznámka:

    Pokud plánujete pracovat se serverem PostgreSQL z vaší místní pracovní stanice pomocí nástrojů, je nutné přidat pravidlo brány firewall pro IP adresu vaší pracovní stanice pomocí příkazu az postgres flexible-server firewall-rule create.

  2. Pomocí příkazu az ad signed-in-user show získejte ID objektu vašeho uživatelského účtu. Toto ID použijete v dalším příkazu.

    az ad signed-in-user show --query id --output tsv
    
  3. Pomocí příkazu az postgres flexible-server ad-admin create přidejte svůj uživatelský účet jako správce Microsoft Entra k serveru PostgreSQL.

    az postgres flexible-server ad-admin create \
       --resource-group pythoncontainer-rg \
       --server-name <postgres-server-name>  \
       --display-name <your-email-address> \
       --object-id <your-account-object-id>
    

    Jako ID objektu účtu použijte hodnotu, kterou jste získali v předchozím kroku.

Poznámka:

Kroky v této části vytvoří server PostgreSQL s jedním virtuálním jádrem a omezenou pamětí v cenové úrovni Burstable. Úroveň Burstable je cenově nižší možností pro úlohy, které nepotřebují nepřetržitě plný procesor a jsou vhodné pro požadavky tohoto kurzu. U produkčních úloh můžete upgradovat na cenovou úroveň Pro obecné účely nebo Optimalizováno pro paměť. Tyto úrovně poskytují vyšší výkon, ale zvyšují náklady.

Další informace naleznete v části Možnosti výpočtů v Azure Database for PostgreSQL - flexibilní server. Informace o cenách najdete v tématu ceny služby Azure Database for PostgreSQL.

Vytvoření databáze na serveru

V tuto chvíli máte server PostgreSQL. V této části vytvoříte na serveru databázi.

Pomocí příkazu az postgres flexible-server db create vytvořte databázi s názvem restaurants_reviews:

az postgres flexible-server db create \
   --resource-group pythoncontainer-rg \
   --server-name <postgres-server-name> \
   --database-name restaurants_reviews

Použijte tyto hodnoty:

  • pythoncontainer-rg: Název skupiny prostředků, kterou tento kurz používá. Pokud jste použili jiný název, změňte tuto hodnotu.
  • <postgres-server-name>: Název serveru PostgreSQL.

K připojení k databázi můžete použít také příkaz az postgres flexible-server connect a pak pracovat s příkazy psql . Při práci s psql je často jednodušší používat Azure Cloud Shell, protože prostředí obsahuje všechny závislosti pro vás.

Můžete se také připojit k flexibilnímu serveru Azure Database for PostgreSQL a vytvořit databázi pomocí psql nebo integrovaného vývojového prostředí, které podporuje PostgreSQL, například Azure Data Studio. Postup použití psql najdete v tématu Konfigurace spravované identity v databázi PostgreSQL dále v tomto článku.

Vytvoření spravované identity přiřazené uživatelem

Vytvořte spravovanou identitu přiřazenou uživatelem, která se použije jako identita pro aplikaci kontejneru, když je spuštěná v Azure.

Poznámka:

Pokud chcete vytvořit spravovanou identitu přiřazenou uživatelem, potřebuje váš účet přispěvatele spravované identity přiřazení role.

Pomocí příkazu az identity create vytvořte spravovanou identitu přiřazenou uživatelem:

az identity create --name my-ua-managed-id --resource-group pythoncontainer-rg

Konfigurace spravované identity v databázi PostgreSQL

Nakonfigurujte spravovanou identitu jako roli na serveru PostgreSQL a udělte jí potřebná oprávnění pro restaurants_reviews databázi. Bez ohledu na to, jestli používáte Azure CLI nebo psql, musíte se připojit k serveru Azure PostgreSQL pomocí uživatele, který je nakonfigurovaný jako správce Microsoft Entra ve vaší instanci serveru. Spravované identity a další role správce Microsoftu na vašem serveru můžou konfigurovat jenom účty Microsoft Entra nakonfigurované jako správce PostgreSQL.

  1. Získejte přístupový token pro váš účet Azure pomocí příkazu az account get-access-token. Přístupový token použijete v dalších krocích.

    az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken
    

    Vrácený token je dlouhý. Nastavte jeho hodnotu v prostřední proměnné tak, aby se používala v příkazech v dalším kroku:

    MY_ACCESS_TOKEN=<your-access-token>
    
  2. Přidejte spravovanou identitu přiřazenou uživatelem jako roli databáze na serveru PostgreSQL pomocí příkazu az postgres flexible-server execute:

    az postgres flexible-server execute \
        --name <postgres-server-name> \
        --database-name postgres \
        --querytext "select * from pgaadauth_create_principal('"my-ua-managed-id"', false, false);select * from pgaadauth_list_principals(false);" \
        --admin-user <your-Azure-account-email> \
        --admin-password $MY_ACCESS_TOKEN
    

    Použijte tyto hodnoty:

    • Pokud jste pro spravovanou identitu použili jiný název, nahraďte my-ua-managed-id v příkazu pgaadauth_create_principal názvem vaší spravované identity.

    • Jako hodnotu --admin-user použijte e-mailovou adresu vašeho účtu Azure.

    • Pro --admin-password hodnotu použijte přístupový token z výstupu předchozího příkazu bez uvozovek.

    • Ujistěte se, že je název databáze postgres.

    Poznámka:

    Pokud na místní pracovní stanici spouštíte příkaz az postgres flexible-server execute, ujistěte se, že jste přidali pravidlo brány firewall pro IP adresu pracovní stanice. Pravidlo můžete přidat pomocí příkazu az postgres flexible-server firewall-rule create. Stejný požadavek existuje také pro příkaz v dalším kroku.

  3. Udělte spravované identitě přiřazené uživatelem potřebná oprávnění k databázi restaurants_reviews pomocí následujícího příkazu az postgres flexible-server execute:

    az postgres flexible-server execute \
        --name <postgres-server-name> \
        --database-name restaurants_reviews \
        --querytext "GRANT CONNECT ON DATABASE restaurants_reviews TO \"my-ua-managed-id\";GRANT USAGE ON SCHEMA public TO \"my-ua-managed-id\";GRANT CREATE ON SCHEMA public TO \"my-ua-managed-id\";GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO \"my-ua-managed-id\";ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO \"my-ua-managed-id\";" \
        --admin-user <your-Azure-account-email> \
        --admin-password $MY_ACCESS_TOKEN
    

    Použijte tyto hodnoty:

    • Pokud jste pro spravovanou identitu použili jiný název, nahraďte všechny instance my-ua-managed-id v příkazu názvem vaší spravované identity. V řetězci dotazu je pět instancí.

    • Jako hodnotu --admin-user použijte e-mailovou adresu vašeho účtu Azure.

    • Pro --admin-password hodnotu použijte přístupový token z předchozího výstupu bez uvozovek.

    • Ujistěte se, že je název databáze restaurants_reviews.

    Tento příkaz Azure CLI se připojí k databázi restaurants_reviews na serveru a vydá následující příkazy SQL:

    GRANT CONNECT ON DATABASE restaurants_reviews TO "my-ua-managed-id";
    GRANT USAGE ON SCHEMA public TO "my-ua-managed-id";
    GRANT CREATE ON SCHEMA public TO "my-ua-managed-id";
    GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "my-ua-managed-id";
    ALTER DEFAULT PRIVILEGES IN SCHEMA public
    GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "my-ua-managed-id";
    

Nasazení webové aplikace do Container Apps

Kontejnerové aplikace se nasazují do prostředí azure Container Apps , která fungují jako zabezpečená hranice. V následujících krocích vytvoříte prostředí a kontejner uvnitř prostředí. Kontejner pak nakonfigurujete tak, aby byl web viditelný externě.

Tyto kroky vyžadují rozšíření Azure Container Apps containerapp.

  1. Vytvořte prostředí Container Apps pomocí příkazu az containerapp env create:

    az containerapp env create \
    --name python-container-env \
    --resource-group pythoncontainer-rg \
    --location <location>
    

    <umístění> je jednou z hodnot pro umístění Azure Name z výstupu příkazu az account list-locations -o table.

  2. Pomocí příkazu az acr credential show získejte přihlašovací údaje pro instanci služby Azure Container Registry:

    az acr credential show -n <registry-name>
    

    Uživatelské jméno a jedno z hesel vrácených z výstupu příkazu použijete při vytváření aplikace kontejneru v kroku 5.

  3. Pomocí příkazu az identity show získejte ID klienta a ID prostředku spravované identity přiřazené uživatelem:

    az identity show --name my-ua-managed-id --resource-group pythoncontainer-rg --query "[clientId, id]" --output tsv
    

    Při vytváření aplikace kontejneru v kroku 5 použijete hodnotu ID klienta (GUID) a ID prostředku z výstupu příkazu. ID prostředku má následující formát: /subscriptions/<subscription-id>/resourcegroups/pythoncontainer-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-ua-managed-id.

  4. Spuštěním následujícího příkazu vygenerujte hodnotu tajného klíče:

    python -c 'import secrets; print(secrets.token_hex())'
    

    Hodnotu tajného klíče použijete k nastavení proměnné prostředí při vytváření aplikace kontejneru v kroku 5.

    Poznámka:

    Příkaz, který tento krok ukazuje, je pro Bash shell. V závislosti na vašem prostředí možná budete muset vyvolat Python pomocí python3. Ve Windows musíte příkaz uzavřít do parametru -c do dvojitých uvozovek místo jednoduchých uvozovek. V závislosti na vašem prostředí můžete také potřebovat vyvolat Python pomocí py nebo py -3.

  5. Vytvořte v prostředí kontejnerovou aplikaci pomocí příkazu az containerapp create:

    az containerapp create \
    --name python-container-app \
    --resource-group pythoncontainer-rg \
    --image <registry-name>.azurecr.io/pythoncontainer:latest \
    --environment python-container-env \
    --ingress external \
    --target-port <5000 for Flask or 8000 for Django> \
    --registry-server <registry-name>.azurecr.io \
    --registry-username <registry-username> \
    --registry-password <registry-password> \
    --user-assigned <managed-identity-resource-id> \
    --query properties.configuration.ingress.fqdn \
    --env-vars DBHOST="<postgres-server-name>" \
    DBNAME="restaurants_reviews" \
    DBUSER="my-ua-managed-id" \
    RUNNING_IN_PRODUCTION="1" \
    AZURE_CLIENT_ID="<managed-identity-client-id>" \
    AZURE_SECRET_KEY="<your-secret-key>"
    

    Nezapomeňte nahradit všechny hodnoty v hranatých závorkách hodnotami, které používáte v tomto kurzu. Mějte na paměti, že název vaší aplikace kontejneru musí být jedinečný v rámci Azure.

    Hodnota parametru --env-vars je řetězec složený z hodnot oddělených mezerami v key="value" formátu s následujícími hodnotami:

    • DBHOST="\<postgres-server-name>"
    • DBNAME="restaurants_reviews"
    • DBUSER="my-ua-managed-id"
    • RUNNING_IN_PRODUCTION="1"
    • AZURE_CLIENT_ID="\<managed-identity-client-id>"
    • AZURE_SECRET_KEY="\<your-secret-key>"

    Hodnota DBUSER je název uživatelem přiřazené spravované identity.

    Hodnota AZURE_CLIENT_ID je ID klienta uživatelsky přiřazené spravované identity. Tuto hodnotu jste získali v předchozím kroku.

    Hodnota AZURE_SECRET_KEY je hodnota tajného klíče, kterou jste vygenerovali v předchozím kroku.

  6. Pouze pro Django migrujte a vytvořte schéma databáze. (V ukázkové aplikaci Flask se provádí automaticky a můžete tento krok přeskočit.)

    Připojte se pomocí příkazu az containerapp exec:

        az containerapp exec \
            --name python-container-app \
            --resource-group pythoncontainer-rg
    

    Potom na příkazové řádce shellu zadejte python manage.py migrate.

    Pro revize kontejneru nemusíte migrovat.

  7. Otestujte web.

    Příkaz az containerapp create, který jste zadali dříve, vypíše adresu URL aplikace, kterou můžete použít k procházení aplikace. Adresa URL končí azurecontainerapps.io. Přejděte na adresu URL v prohlížeči. Alternativně můžete použít příkaz az containerapp browse .

Tady je příklad ukázkového webu po přidání restaurace a dvou recenzí.

snímek obrazovky s ukázkovým webem vytvořeným v tomto kurzu

Řešení potíží s nasazením

Zapomněli jste adresu URL aplikace pro přístup k webu.

Na webu Azure Portal:

  • Přejděte na stránku Přehled aplikace kontejneru a vyhledejte adresu URL aplikace .

V editoru VS Code:

  1. Přejděte na zobrazení Azure (Ctrl+Shift+A) a rozbalte předplatné, ve kterém právě pracujete.
  2. Rozbalte uzel Container Apps, rozbalte spravované prostředí, klikněte pravým tlačítkem na python-container-appa poté zvolte Procházet. VS Code otevře prohlížeč s adresou URL aplikace.

V Azure CLI:

  • Použijte příkaz az containerapp show -g pythoncontainer-rg -n python-container-app --query properties.configuration.ingress.fqdn.

V aplikaci VS Code úloha sestavení image v Azure vrátí chybu.

Pokud se zobrazí zpráva Chyba: Nepodařilo se stáhnout kontext. Zkontrolujte, jestli adresa URL není správná" v okně Výstup VS Code aktualizujte registr v rozšíření Dockeru. Pro obnovení vyberte rozšíření Docker, přejděte do části Registry, najděte registraci a vyberte ji.

Pokud znovu spustíte úlohu Build Image v Azure, zkontrolujte, jestli existuje registr z předchozího spuštění. Pokud ano, použijte ho.

Na webu Azure Portal se během vytváření aplikace kontejneru zobrazí chyba přístupu.

Chyba přístupu obsahující "Nelze získat přístup k ACR '<název>.azurecr.io'" nastane, když jsou zakázány přihlašovací údaje správce na instanci Azure Container Registry.

Pokud chcete zkontrolovat stav administrátora na portálu, přejděte do instance služby Azure Container Registry, vyberte prostředek přístupové klíče a ujistěte se, že je povolený uživatel správce.

Vaše image kontejneru se nezobrazuje v instanci služby Azure Container Registry

  • Zkontrolujte výstup příkazu Azure CLI nebo výstupu VS Code a vyhledejte zprávy, které potvrdí úspěch.
  • Zkontrolujte, jestli se název registru správně zadal v příkazu sestavení pomocí Azure CLI nebo v výzev k úlohám VS Code.
  • Ujistěte se, že nevypršela platnost vašich přihlašovacích údajů. Například ve VS Code vyhledejte cílový registr v rozšíření Dockeru a aktualizujte ho. V Azure CLI spusťte az login.

Web vrátí chybný požadavek (400).

Pokud se zobrazí chyba Chybný požadavek (400), zkontrolujte proměnné prostředí PostgreSQL předané do kontejneru. Chyba 400 často značí, že kód Pythonu se nemůže připojit k instanci PostgreSQL.

Vzorový kód použitý v tomto kurzu kontroluje existenci proměnné prostředí kontejneru RUNNING_IN_PRODUCTION, která se dá nastavit na libovolnou hodnotu (například 1).

Webová stránka vrátí "Nenalezena (404)"

  • Na stránce Přehled kontejneru zkontrolujte hodnotu adresy URL aplikace. Pokud adresa URL aplikace obsahuje slovo "internal," nastavení ingressu není správné.
  • Zkontrolujte příchozí přenos dat kontejneru. Například v portálu Azure přejděte k prostředku Ingress kontejneru. Ujistěte se, že je povolen přístup HTTP a je vybráno přijímání provozu odkudkoli.

Webová stránka se nespustí, dostanete časový limit streamu, nebo se nevrátí žádné výsledky.

  • Zkontrolujte protokoly:
    • V Azure portálu přejděte do prostředku správy revizí kontejnerové aplikace a zkontrolujte, stav zřízení kontejneru:
      • Pokud je stav zřizování, vyčkejte, až se zřizování dokončí.
      • Pokud je stav Nepodařilo se, vyberte revizi a zobrazte protokoly konzole. Zvolte pořadí sloupců pro zobrazení Čas generování, Stream_sa Log_s. Seřaďte protokoly podle nejnovějších položek a vyhledejte stderr Pythonu a stdout zprávy ve sloupci Stream_s. Výstup print Pythonu je stdout zpráv.
    • V Azure CLI použijte příkaz az containerapp logs show.
  • Pokud používáte architekturu Django, zkontrolujte, jestli v databázi existují restaurants_reviews tabulky. Pokud ne, použijte konzolu pro přístup ke kontejneru a spusťte python manage.py migrate.

Další krok