Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
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ů:
V případě potřeby se přihlaste k Azure a ověřte:
az loginUjistěte se, že používáte nejnovější verzi Azure CLI:
az upgradeNainstalujte nebo upgradujte
containerapp a rozšíření Azure CLI rdbms-connect pomocí příkazuaz extension add :az extension add --name containerapp --upgrade az extension add --name rdbms-connect --upgradePozná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í:
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).
Na příkazovém řádku v konzole 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-containerZměň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.
Pokud spouštíte příkazy v prostředí Git Bash na počítači s Windows, před pokračováním zadejte následující příkaz:
#!/bin/bash export MSYS_NO_PATHCONV=1Pomocí příkazu az group create vytvořte skupinu prostředků:
#!/bin/bash RESOURCE_GROUP_NAME=<resource-group-name> LOCATION=<location> az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATIONVytvořte registr kontejneru pomocí příkazu az acr create:
#!/bin/bash REGISTRY_NAME=<registry-name> #The name that you use for *\<registry-name>* must be unique within Azure, and it must contain 5 to 50 alphanumeric characters. az acr create \ --resource-group $RESOURCE_GROUP_NAME \ --name $REGISTRY_NAME \ --sku Basic \ --admin-enabled truePřihlaste se k registru pomocí příkazu az acr login:
az acr login --name $REGISTRY_NAMEPří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.
Sestavte image pomocí příkazu az acr build:
#!/bin/bash az acr build \ --registry $REGISTRY_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --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 clonek 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.
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.
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čí.
#!/bin/bash ADMIN_USERNAME=demoadmin ADMIN_PASSWORD=<admin-password> # Use a strong password that meets the requirements for PostgreSQL. POSTGRES_SERVER_NAME=<postgres-server-name> az postgres flexible-server create \ --resource-group $RESOURCE_GROUP_NAME \ --name $POSTGRES_SERVER_NAME \ --location $LOCATION \ --admin-user $ADMIN_USERNAME \ --admin-password $ADMIN_PASSWORD \ --version 16 \ --tier Burstable \ --sku-name Standard_B1ms \ --public-access 0.0.0.0 \ --microsoft-entra-auth Enabled \ --storage-size 32 \ --backup-retention 7 \ --high-availability Disabled \ --yesPoužijte tyto hodnoty:
<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 jsouAZ,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
Nameumístění Azure z výstupu příkazuaz 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,guestanipublic. Pro účely tohoto kurzu použijtedemoadmin.<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.
--version: Použijte16. Určuje verzi PostgreSQL, která se má použít pro server.--tier: PoužijteBurstable. Určuje cenovou úroveň serveru. Ú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.--sku-name: Název cenové úrovně a konfigurace výpočetních prostředků; napříkladStandard_B1ms. Další informace najdete v tématu o cenách služby Azure Database for PostgreSQL. Pokud chcete zobrazit seznam dostupných úrovní, použijteaz postgres flexible-server list-skus --location <location>.--public-access: Použijte0.0.0.0. Umožňuje veřejný přístup k serveru z jakékoli služby Azure, jako je kontejnerové aplikace.--microsoft-entra-auth: PoužijteEnabled. Umožňuje ověřování Microsoft Entra na serveru.--storage-size: Použijte32. Určuje velikost úložiště v gigabajtech (GB) pro server. Minimum je 32 GB.--backup-retention: Použijte7. Určuje počet dní, po který se mají uchovávat zálohy pro server. Minimum je 7 dní.--high-availability: PoužijteDisabled. Zakáže vysokou dostupnost serveru. Pro účely tohoto kurzu se nevyžaduje vysoká dostupnost.--yes: Přijímá podmínky použití pro server PostgreSQL.
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.
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.
#!/bin/bash CALLER_OBJECT_ID=$(az ad signed-in-user show --query id -o tsv) CALLER_DISPLAY_NAME=$(az ad signed-in-user show --query userPrincipalName -o tsv)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.
#!/bin/bash az postgres flexible-server microsoft-entra-admin create \ --server-name "$POSTGRES_SERVER_NAME" \ --resource-group "$RESOURCE_GROUP_NAME" \ --display-name "$CALLER_DISPLAY_NAME" \ --object-id "$CALLER_OBJECT_ID" \ --type UserPomocí příkazu az postgres flexible-server firewall-rule create přidejte pravidlo, které webové aplikaci umožňuje přístup k flexibilnímu serveru PostgreSQL. V následujícím příkazu nakonfigurujete bránu firewall serveru tak, aby přijímala připojení z vývojové pracovní stanice pomocí veřejné IP adresy:
MY_IP=$(curl -s ifconfig.me) az postgres flexible-server firewall-rule create \ --name "$POSTGRES_SERVER_NAME" \ --resource-group "$RESOURCE_GROUP_NAME" \ --rule-name allow-my-ip \ --start-ip-address "$MY_IP" \ --end-ip-address "$MY_IP" ```
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:
#!/bin/bash
DATABASE_NAME=restaurants_reviews
az postgres flexible-server db create \
--resource-group $RESOURCE_GROUP_NAME \
--server-name $POSTGRES_SERVER_NAME \
--database-name $DATABASE_NAME
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:
UA_MANAGED_IDENTITY_NAME=<managed-identity-name> # Use a unique name for the managed identity, such as-"my-ua-managed-id".
az identity create \
--name $UA_MANAGED_IDENTITY_NAME
--resource-group $RESOURCE_GROUP_NAME
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.
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.
#!/bin/bash MY_ACCESS_TOKEN=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken) echo $MY_ACCESS_TOKENPřidejte spravovanou identitu přiřazenou uživatelem jako roli databáze na serveru PostgreSQL pomocí příkazu az postgres flexible-server execute:
#!/bin/bash az postgres flexible-server execute \ --name "$POSTGRES_SERVER_NAME" \ --admin-user "$CALLER_DISPLAY_NAME" \ --admin-password "$ACCESS_TOKEN" \ --database-name postgres \ --querytext "SELECT * FROM pgaadauth_create_principal('$UA_MANAGED_IDENTITY_NAME', false, false);"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.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:
#!/bin/bash SQL_GRANTS=$(cat <<EOF GRANT CONNECT ON DATABASE $DATABASE_NAME TO "$UA_MANAGED_IDENTITY_NAME"; GRANT USAGE, CREATE ON SCHEMA public TO "$UA_MANAGED_IDENTITY_NAME"; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "$UA_MANAGED_IDENTITY_NAME"; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "$UA_MANAGED_IDENTITY_NAME"; EOF ) az postgres flexible-server execute \ --name "$POSTGRES_SERVER_NAME" \ --admin-user "$CALLER_DISPLAY_NAME" \ --admin-password "$MY_ACCESS_TOKEN" \ --database-name "$DATABASE_NAME" \ --querytext "$SQL_GRANTS"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.
Vytvořte prostředí Container Apps pomocí příkazu az containerapp env create:
#!/bin/bash APP_ENV_NAME=<app-env-name> # Use a unique name for the environment, such as "python-container-env". az containerapp env create \ --name $APP_ENV_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATIONPomocí příkazu az acr credential show získejte přihlašovací údaje pro instanci služby Azure Container Registry:
#!/bin/bash REGISTRY_CREDS=$(az acr credential show -n "$REGISTRY_NAME" --query "[username,passwords[0].value]" -o tsv) REGISTRY_USERNAME=$(echo "$REGISTRY_CREDS" | head -n1) REGISTRY_PASSWORD=$(echo "$REGISTRY_CREDS" | tail -n1)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.
Pomocí příkazu az identity show získejte ID klienta a ID prostředku spravované identity přiřazené uživatelem:
UA_CLIENT_ID=$(az identity show \ --name "$UA_MANAGED_IDENTITY_NAME" \ --resource-group "$RESOURCE_GROUP_NAME" \ --query clientId -o tsv) UA_RESOURCE_ID=$(az identity show \ --name "$UA_MANAGED_IDENTITY_NAME" \ --resource-group "$RESOURCE_GROUP_NAME" \ --query id -o 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.Spuštěním následujícího příkazu vygenerujte hodnotu tajného klíče:
AZURE_SECRET_KEY=$(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-cdo dvojitých uvozovek místo jednoduchých uvozovek. V závislosti na vašem prostředí můžete také potřebovat vyvolat Python pomocípynebopy -3.Vytvořte v prostředí kontejnerovou aplikaci pomocí příkazu az containerapp create:
az containerapp create \ --name "$CONTAINER_APP_NAME" \ --resource-group "$RESOURCE_GROUP_NAME" \ --environment "$APP_ENV_NAME" \ --image "$REGISTRY_NAME.azurecr.io/$IMAGE_NAME" \ --target-port "$TARGET_PORT" \ --ingress external \ --registry-server "$REGISTRY_NAME.azurecr.io" \ --registry-username "$REGISTRY_USERNAME" \ --registry-password "$REGISTRY_PASSWORD" \ --user-assigned "$UA_RESOURCE_ID" \ --env-vars \ DBHOST="$POSTGRES_SERVER_NAME" \ DBNAME="$DATABASE_NAME" \ DBUSER="$UA_MANAGED_IDENTITY_NAME" \ RUNNING_IN_PRODUCTION=1 \ AZURE_CLIENT_ID="$UA_CLIENT_ID" \ AZURE_SECRET_KEY="$AZURE_SECRET_KEY"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 $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAMEPotom na příkazové řádce shellu zadejte
python manage.py migrate.Pro revize kontejneru nemusíte migrovat.
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í.
Ř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:
- Přejděte na zobrazení Azure (Ctrl+Shift+A) a rozbalte předplatné, ve kterém právě pracujete.
- 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
stderrPythonu astdoutzprávy ve sloupci Stream_s. VýstupprintPythonu jestdoutzpráv.
- V Azure CLI použijte příkaz az containerapp logs show.
- V Azure portálu přejděte do prostředku správy revizí kontejnerové aplikace a zkontrolujte, stav zřízení kontejneru:
- 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.