Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk egy oktatóanyag-sorozat része, amely bemutatja, hogyan tárolózhat és helyezhet üzembe Python-webalkalmazásokat az Azure Container Apps
Ebben az oktatóanyagban ön:
- Python-minta webalkalmazás (Django vagy Flask) tárolóba helyezése tárolórendszerkép felhőben történő létrehozásával.
- Helyezze üzembe a tárolórendszerképet az Azure Container Appsben.
- Definiáljon olyan környezeti változókat, amelyek lehetővé teszik a tárolóalkalmazás számára, hogy csatlakozzon egy Azure Database for PostgreSQL - Rugalmas Szerver példányhoz, ahol a mintaalkalmazás adatokat tárol.
Az alábbi ábra az oktatóanyagban szereplő feladatokat emeli ki: tárolórendszerképek létrehozása és üzembe helyezése.
Előfeltételek
Ha nem rendelkezik Azure-előfizetéssel, a kezdés előtt hozzon létre egy ingyenes fiókot.
Azure CLI-parancsokat futtathat
Ha helyileg fut, az alábbi lépéseket követve jelentkezzen be, és telepítse az oktatóanyaghoz szükséges modulokat:
Jelentkezzen be az Azure-ba, és szükség esetén hitelesítse:
az loginGyőződjön meg arról, hogy az Azure CLI legújabb verzióját futtatja:
az upgradeTelepítse vagy frissítse a containerapp és rdbms-connect Azure CLI-bővítményeket az az extension add paranccsal:
az extension add --name containerapp --upgrade az extension add --name rdbms-connect --upgradeFeljegyzés
A rendszeren telepített bővítmények listázásához használhatja az az extension list parancsot. Például:
az extension list --query [].name --output tsv
Mintaalkalmazás letöltése
Forkold és klónozd a mintakódot a fejlesztői környezetedbe.
Nyissa meg a mintaalkalmazás GitHub-adattárát (Django vagy Flask), és válassza a Fork lehetőséget.
Az adattár GitHub-fiókodba való forkolásához kövesse az alábbi lépéseket. A kódtárat közvetlenül a helyi gépére is letöltheti elágaztatás vagy GitHub-fiók nélkül. Ha azonban a letöltési módszert használja, a sorozat következő oktatóanyagában nem fogja tudni beállítani a folyamatos integrációt és a folyamatos kézbesítést (CI/CD).
A konzol parancssorában a git klónozási paranccsal klónozza az elágaztatott adattárat a Python-container mappába:
# 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-containerMódosítsa a könyvtárat:
cd python-container
Tárolórendszerkép létrehozása webalkalmazás-kódból
A lépések elvégzése után rendelkezni fog egy Azure Container Registry-példánysal, amely a mintakódból létrehozott Docker-tárolórendszerképet tartalmazza.
Ha parancsokat futtat egy Git Bash-héjban Windows operációs rendszerű számítógépen, folytatás előtt adja meg a következő parancsot:
#!/bin/bash export MSYS_NO_PATHCONV=1Hozzon létre egy erőforráscsoportot az az group create paranccsal:
#!/bin/bash RESOURCE_GROUP_NAME=<resource-group-name> LOCATION=<location> az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATIONHozzon létre egy tárolóregisztrációt az az acr create paranccsal:
#!/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 trueJelentkezzen be a regisztrációs adatbázisba az az acr login parancs használatával:
az acr login --name $REGISTRY_NAMEA parancs hozzáadja a "azurecr.io" nevet a névhez a teljes beállításjegyzéknév létrehozásához. Ha a bejelentkezés sikeres, megjelenik a "Bejelentkezés sikeres" üzenet. Ha a beállításjegyzéket olyan előfizetésből éri el, amely eltér attól, amelyben a beállításjegyzéket létrehozta, használja a
--suffixkapcsolót.Ha a bejelentkezés sikertelen, győződjön meg arról, hogy a Docker démon fut a rendszeren.
A rendszerképet az az acr build paranccsal hozhatja létre:
#!/bin/bash az acr build \ --registry $REGISTRY_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --image pythoncontainer:latest .Ezeket a szempontokat kell figyelembe venni:
A parancs végén található pont (
.) jelzi a buildelendő forráskód helyét. Ha nem a mintaalkalmazás gyökérkönyvtárában futtatja ezt a parancsot, adja meg a kód elérési útját.Ha az Azure Cloud Shellben futtatja a parancsot, a
git clonehasználatával először lekérheti az adattárat a Cloud Shell-környezetbe. Ezután módosítsa a könyvtárat a projekt gyökerére, hogy a pont (.) megfelelően legyen értelmezve.Ha kihagyja a
-t(ugyanazzal a beállítással--imagemegegyező) beállítást, a parancs egy helyi környezetbeli buildet állít elő anélkül, hogy leküldi azt a beállításjegyzékbe. A leküldés nélküli építés hasznos lehet a rendszerkép buildjeinek ellenőrzéséhez.
Győződjön meg arról, hogy a tárolólemezkép az az acr-adattárlista paranccsal jött létre:
az acr repository list --name $REGISTRY_NAME
Feljegyzés
Az ebben a szakaszban ismertetett lépések létrehoznak egy tárolóregisztrációs adatbázist az Alapszintű szolgáltatási szinten. Ez a szint költségoptimalizált, a fejlesztői forgatókönyvek számára megcélzott funkciókészlettel és átviteli sebességgel, és megfelel az oktatóanyag követelményeinek. Éles helyzetekben valószínűleg a Standard vagy a Premium szolgáltatási szintet használná. Ezek a szintek fokozott tárolási és átviteli sebességet biztosítanak.
További információ: Azure Container Registry szolgáltatásszintek. A díjszabásról további információt az Azure Container Registry díjszabási .
Rugalmas PostgreSQL-kiszolgálópéldány létrehozása
A mintaalkalmazás (Django vagy Flask) egy PostgreSQL-adatbázisban tárolja az éttermi felülvizsgálati adatokat. Ezekben a lépésekben létre kell hoznia az adatbázist tartalmazó kiszolgálót.
Az az postgres flexible-server create paranccsal hozza létre a PostgreSQL-kiszolgálót az Azure-ban. Nem ritka, hogy a parancs néhány percig fut, mielőtt befejeződik.
#!/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 \ --yesHasználja az alábbi értékeket:
<postgres-server-name>: A PostgreSQL adatbázis szerver neve. Ennek a névnek az összes Azure-ban egyedinek kell lennie. A kiszolgálóvégpont
https://<postgres-server-name>.postgres.database.azure.com. Az engedélyezett karakterekAZ,09és kötőjel (-).<hely>: Használja ugyanazt a helyet, amelyet a webalkalmazáshoz használt. <hely> az egyik azon Azure-hely
Nameértékek közül, amelyek aaz account list-locations -o tableparancs kimenetében találhatók.<rendszergazdai felhasználónév>: A rendszergazdai fiók felhasználóneve. Nem lehet
azure_superuser,admin,administrator,root,guestvagypublic. Ehhez az oktatóanyaghoz használjademoadmin.<rendszergazdai jelszó>: A rendszergazdai felhasználó jelszava. Az alábbi kategóriák közül háromból 8–128 karaktert kell tartalmaznia: angol nagybetűk, angol kisbetűk, számok és nem alfanumerikus karakterek.
Fontos
Felhasználónevek vagy jelszavak létrehozásakor ne használja a dollárjel ($) karaktert. Később, amikor környezeti változókat hoz létre ezekkel az értékekkel, ez a karakter különleges jelentéssel rendelkezik a Python-alkalmazások futtatásához használt Linux-tárolóban.
--version: Használd16. Meghatározza a kiszolgálóhoz használandó PostgreSQL-verziót.--tier: HasználdBurstable. Meghatározza a kiszolgáló tarifacsomagjait. A kipukkasztható szint alacsonyabb költségű lehetőség olyan számítási feladatokhoz, amelyeknek nincs szükségük a teljes cpu-ra folyamatosan, és megfelelnek az oktatóanyag követelményeinek.--sku-name: A tarifacsomag és a számítási konfiguráció neve; példáulStandard_B1ms. További információkért tekintse meg az Azure Database for PostgreSQL díjszabását. Az elérhető szintek listázásához használja aaz postgres flexible-server list-skus --location <location>.--public-access: Használd0.0.0.0. Lehetővé teszi a kiszolgáló nyilvános elérését bármely Azure-szolgáltatásból, például a Container Appsből.--microsoft-entra-auth: HasználdEnabled. Engedélyezi a Microsoft Entra-hitelesítést a kiszolgálón.--storage-size: Használd32. A kiszolgáló tárhelyméretét gigabájtban (GB) adja meg. A minimum 32 GB legyen.--backup-retention: Használd7. Megadja a kiszolgáló biztonsági mentéseinek megőrzéséhez szükséges napok számát. A minimum 7 napos.--high-availability: HasználdDisabled. Letiltja a kiszolgáló magas rendelkezésre állását. Ehhez az oktatóanyaghoz nincs szükség magas rendelkezésre állásra.--yes: Elfogadja a PostgreSQL-kiszolgáló használati feltételeit.
Feljegyzés
Ha a PostgreSQL-kiszolgálót a helyi munkaállomásáról eszközökkel szeretné használni, akkor a az postgres flexible-server firewall-rule create paranccsal hozzá kell adnia egy tűzfalszabályt a munkaállomás IP-címéhez.
Használja a az ad signed-in-user show parancsot a felhasználói fiókjának objektumazonosítójának lekérdezéséhez. Ezt az azonosítót a következő parancsban fogja használni.
#!/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)A az postgres rugalmas kiszolgáló ad-admin create paranccsal adja hozzá a felhasználói fiókját Microsoft Entra-rendszergazdaként a PostgreSQL-kiszolgálón:
#!/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 UserAz az postgres rugalmas kiszolgálói tűzfalszabály létrehozása paranccsal adjon hozzá egy szabályt, amely lehetővé teszi a webalkalmazás számára a rugalmas PostgreSQL-kiszolgáló elérését. Az alábbi parancsban úgy konfigurálja a kiszolgáló tűzfalát, hogy a nyilvános IP-cím használatával fogadja el a fejlesztői munkaállomásról érkező kapcsolatokat:
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" ```
Feljegyzés
Az ebben a szakaszban ismertetett lépések létrehoznak egy PostgreSQL-kiszolgálót egyetlen virtuális maggal és korlátozott memóriával a Burstable tarifacsomagban. A kipukkasztható szint alacsonyabb költségű lehetőség olyan számítási feladatokhoz, amelyeknek nincs szükségük a teljes cpu-ra folyamatosan, és megfelelnek az oktatóanyag követelményeinek. Éles számítási feladatok esetén az általános célú vagy a memóriaoptimalizált tarifacsomagra frissíthet. Ezek a szintek nagyobb teljesítményt nyújtanak, de növelik a költségeket.
További információ az Azure Database for PostgreSQL - rugalmas kiszolgáló számítási lehetőségeiről: . A díjszabásról további információt az Azure Database for PostgreSQL díjszabási
Adatbázis létrehozása a kiszolgálón
Jelenleg egy PostgreSQL-kiszolgálóval rendelkezik. Ebben a szakaszban egy adatbázist hoz létre a kiszolgálón.
Az az postgres flexible-server db create parancs használatával hozzon létre egy restaurants_reviewsnevű adatbázist:
#!/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
Az az postgres flexible-server connect paranccsal is csatlakozhat az adatbázishoz, majd psql-parancsokkal dolgozhat. Amikor a psql-lel dolgozik, általában könnyebb az Azure Cloud Shell- használata, mert a shell tartalmazza az összes függőséget.
A rugalmas Azure Database for PostgreSQL-kiszolgálóhoz is csatlakozhat, és létrehozhat egy adatbázist psql vagy egy Olyan IDE használatával, amely támogatja a PostgreSQL-t, például Azure Data Studio. A psql használatával kapcsolatos lépésekért tekintse meg A felügyelt identitás konfigurálása a PostgreSQL-adatbázisban a cikk későbbi részében.
Felhasználó által hozzárendelt felügyelt identitás létrehozása
Hozzon létre egy felhasználó által hozzárendelt felügyelt identitást a tárolóalkalmazás identitásaként, amikor az Azure-ban fut.
Feljegyzés
Felhasználó által hozzárendelt felügyelt identitás létrehozásához a fióknak szüksége van a felügyelt identitás-közreműködői szerepkör-hozzárendelésre.
Az az identity create paranccsal hozzon létre egy felhasználó által hozzárendelt kezelői identitást:
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
Felügyelt identitás konfigurálása a PostgreSQL-adatbázisban
Konfigurálja a felügyelt identitást szerepkörként a PostgreSQL-kiszolgálón, majd adja meg a szükséges engedélyeket a restaurants_reviews adatbázishoz. Akár az Azure CLI-t, akár a psql-t használja, csatlakoznia kell az Azure PostgreSQL-kiszolgálóhoz egy olyan felhasználóval, aki Microsoft Entra-rendszergazdaként van konfigurálva a kiszolgálópéldányon. Csak a PostgreSQL-rendszergazdaként konfigurált Microsoft Entra-fiókok konfigurálhatnak felügyelt identitásokat és más Microsoft-rendszergazdai szerepköröket a kiszolgálón.
Szerezze be az Azure-fiókjához tartozó hozzáférési jogkivonatot az az account get-access-token paranccsal. A hozzáférési jogkivonatot a következő lépésekben használhatja.
#!/bin/bash MY_ACCESS_TOKEN=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken) echo $MY_ACCESS_TOKENAdja hozzá a felhasználó által hozzárendelt felügyelt identitást adatbázis-szerepkörként a PostgreSQL-kiszolgálóján a az postgres flexible-server execute parancs használatával:
#!/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);"Feljegyzés
Ha a
az postgres flexible-server executeparancsot a helyi munkaállomáson futtatja, győződjön meg arról, hogy hozzáadott egy tűzfalszabályt a munkaállomás IP-címéhez. A az postgres flexible-server firewall-rule create parancs használatával hozzáadhat egy szabályt. Ugyanez a követelmény a következő lépésben is érvényes a parancsra.Adja meg a felhasználó által hozzárendelt felügyelt identitásnak a szükséges engedélyeket a restaurants_reviews adatbázishoz az alábbi az postgres rugalmas kiszolgálói végrehajtási parancs használatával:
#!/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"Ez az Azure CLI-parancs csatlakozik a kiszolgáló restaurants_reviews adatbázisához, és a következő SQL-parancsokat adja ki:
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";
A webalkalmazás üzembe helyezése a Container Appsben
A tárolóalkalmazások az Azure Container Apps környezetekbenvannak üzembe helyezve, amelyek biztonságos határként működnek. A következő lépésekben létrehoz egy környezetet és egy tárolót a környezeten belül. Ezután úgy konfigurálja a tárolót, hogy a webhely külsőleg látható legyen.
Ezekhez a lépésekhez az Azure Container Apps bővítményre van szükség, containerapp.
Hozzon létre egy Container Apps-környezetet a az containerapp env create parancs használatával:
#!/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 $LOCATIONAz Azure Container Registry-példány bejelentkezési hitelesítő adatainak lekérése az az acr credential show paranccsal:
#!/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)A tárolóalkalmazás 5. lépésben történő létrehozásakor a parancs kimenetéből visszaadott felhasználónevet és jelszó egyikét használja.
Az az identity show paranccsal kérje le a felhasználó által hozzárendelt, felügyelt identitás ügyfélazonosítóját és erőforrásazonosítóját:
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)Az 5. lépésben a tárolóalkalmazás létrehozásakor a parancs kimenetéből származó ügyfél-azonosító (GUID) és erőforrás-azonosító értékét kell használnia. Az erőforrás-azonosító a következő formátumot használja:
/subscriptions/<subscription-id>/resourcegroups/pythoncontainer-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-ua-managed-id.A titkos kulcs értékének létrehozásához futtassa a következő parancsot:
AZURE_SECRET_KEY=$(python -c 'import secrets; print(secrets.token_hex())')A titkos kulcs értékével környezeti változót állíthat be a tárolóalkalmazás 5. lépésben történő létrehozásakor.
Feljegyzés
Az ebben a lépésben megjelenő parancs egy Bash shell-hez készült. A környezetétől függően előfordulhat, hogy meg kell hívnia a Pythont
python3használatával. Windows rendszeren a parancsot a-cparaméterben dupla idézőjelek közé kell foglalnia, nem pedig egyetlen idézőjelbe. Előfordulhat, hogypyvagypy -3használatával is meg kell hívnia a Pythont a környezetétől függően.Hozzon létre egy tárolóalkalmazást a környezetben az az containerapp create paranccsal:
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"Csak Django esetén migráljon és hozzon létre egy adatbázissémát. (A Flask-mintaalkalmazásban ez automatikusan megtörténik, és kihagyhatja ezt a lépést.)
Csatlakozás az az containerapp exec paranccsal:
az containerapp exec \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAMEEzután a rendszerhéj parancssorában adja meg a
python manage.py migrate.A tároló változatainak migrálása nem szükséges.
Tesztelje a webhelyet.
A korábban megadott
az containerapp createparancs egy alkalmazás URL-címét adja meg, amellyel tallózhat az alkalmazásban. Az URL-címazurecontainerapps.iovégződik. Nyissa meg az URL-címet egy böngészőben. Másik lehetőségként használhatja az az containerapp browse parancsot.
Íme egy példa a minta webhelyre egy étterem hozzáadása és két vélemény hozzáadása után.
Üzemelő példány hibaelhárítása
Elfelejtette az alkalmazás URL-címét a webhely eléréséhez
Az Azure Portalon:
- Lépjen a tárolóalkalmazás Áttekintés lapjára, és keresse meg alkalmazás URL-címét.
A(z) VS Code-ban:
- Lépjen az Azure nézetre (Ctrl+Shift+A), majd bontsa ki azt az előfizetést, amelyben dolgozik.
- Nyissa meg a Container Apps csomópontot, bontsa ki a felügyelt környezetet, kattintson a jobb gombbal a python-container-appelemre, majd válassza a Tallózáslehetőséget. A VS Code megnyitja a böngészőt az alkalmazás URL-címével.
Az Azure CLI-ben:
- Használja a
az containerapp show -g pythoncontainer-rg -n python-container-app --query properties.configuration.ingress.fqdnparancsot.
A VS Code-ban az Azure-beli buildrendszerkép hibát ad vissza
Ha a következő üzenet jelenik meg: "Hiba: nem sikerült letölteni a környezetet. Ellenőrizze, hogy az URL-cím helytelen-e" a VS Code Kimeneti ablakban, frissítse a beállításjegyzéket a Docker-bővítményben. A frissítéshez válassza ki a Docker-bővítményt, lépjen a Regisztrációk szakaszra, keresse meg a regisztrációt, és válassza ki.
Ha ismét futtatja a Build Image-et az Azure feladatban, ellenőrizze, hogy létezik-e a beállításjegyzéke egy korábbi futtatásból. Ha igen, használja.
Az Azure Portalon hozzáférési hiba jelenik meg egy tárolóalkalmazás létrehozása során
A "Nem érhető el az ACR<név>.azurecr.io" hozzáférési hiba akkor fordul elő, ha egy Azure Container Registry-példány rendszergazdai hitelesítő adatai le vannak tiltva.
A rendszergazdai állapot portálon való ellenőrzéséhez nyissa meg az Azure Container Registry-példányt, válassza ki a hozzáférési kulcsokat erőforrást, és győződjön meg arról, hogy rendszergazdai felhasználói engedélyezve van.
A tárolórendszerkép nem jelenik meg az Azure Container Registry-példányban
- Ellenőrizze az Azure CLI-parancs vagy a VS Code kimenetét, és keressen üzeneteket a sikeresség megerősítéséhez.
- Ellenőrizze, hogy a beállításjegyzék neve helyesen lett-e megadva a buildelési parancsban az Azure CLI-vel vagy a VS Code feladatkéréseiben.
- Győződjön meg arról, hogy a hitelesítő adatai nem jártak le. A VS Code-ban például keresse meg a célregisztrációs adatbázist a Docker-bővítményben, és frissítse. Az Azure CLI-ben futtassa a(z)
az loginparancsot.
A webhely "Hibás kérés (400)" értéket ad vissza
Ha "Hibás kérés (400)" hibaüzenetet kap, ellenőrizze, hogy a PostgreSQL környezeti változói átkerülnek-e a tárolóba. A 400-os hiba gyakran azt jelzi, hogy a Python-kód nem tud csatlakozni a PostgreSQL-példányhoz.
Az oktatóanyagban használt mintakód ellenőrzi a tárolókörnyezet változójának meglétét RUNNING_IN_PRODUCTION, amely bármilyen értékre beállítható (például 1).
A webhely a "Nem található (404)" értéket adja vissza
- Ellenőrizze az alkalmazás URL- értékét a tároló Áttekintés lapján. Ha az alkalmazás URL-címe tartalmazza a "belső" szót, a bejövő forgalom nincs megfelelően beállítva.
- Ellenőrizze a tároló bejövő forgalmát. Az Azure portálon például lépjen a tároló Ingress erőforrásához. Győződjön meg arról, hogy HTTP-bejövő engedélyezve van, és a forgalom fogadása bárhonnan, van kiválasztva.
A webhely nem indul el, "stream-időtúllépést" kap, vagy nem ad vissza semmit.
- Ellenőrizze a naplókat:
- Az Azure Portalon nyissa meg a tárolóalkalmazás változatkezelési erőforrását, és ellenőrizze tároló üzembe helyezési állapotának:
- Ha az állapot kiépítés alatt van, várjon, amíg a kiépítés befejeződik.
- Ha az állapot Sikertelen, jelölje ki a változatot, és tekintse meg a konzol naplókat. Válassza ki az oszlopok sorrendjét a generált idő, Stream_sés Log_smegjelenítéséhez. Rendezze a naplókat a legutóbbiak szerint, és keresse meg a Python-
stderrésstdoutüzeneteket a Stream_s oszlopban. A Pythonprintkimenete astdoutüzenet.
- Az Azure CLI-ben használja az az containerapp logs show parancsot.
- Az Azure Portalon nyissa meg a tárolóalkalmazás változatkezelési erőforrását, és ellenőrizze tároló üzembe helyezési állapotának:
- Ha a Django-keretrendszert használja, ellenőrizze, hogy a restaurants_reviews táblák léteznek-e az adatbázisban. Ha nem, használjon konzolt a tároló eléréséhez és futtatásához
python manage.py migrate.