Hibaelhárítás konténer-alkalmazás esetén

Az Azure Container Apps naplóinak és konfigurációs beállításainak áttekintése feltárhatja a mögöttes problémákat, ha a tárolóalkalmazás nem működik megfelelően. Az alábbi útmutató segítséget nyújt a tárolóalkalmazás részleteinek megkereséséhez és megtekintéséhez.

Forgatókönyvek

Az alábbi táblázat az Azure Container Apps használata során felmerülő problémákat és a megoldásukhoz használható műveleteket sorolja fel.

Forgatókönyv Leírás Műveletek
Minden forgatókönyv Naplók megtekintése

Problémák diagnosztizálása és megoldása
Hiba az új változat üzembe helyezésekor Hibaüzenet jelenik meg, amikor új változatot próbál üzembe helyezni. Ellenőrizze, hogy a Container Apps fel tudja-e húzni a konténerképet
A kiépítés túl sokáig tart Az új változat üzembe helyezése után az új változat kiépítési állapotú, a feldolgozás pedig határozatlan ideig fut. Ellenőrizze, hogy az állapotfelmérések helyesen vannak-e konfigurálva
A verzió csökkentett teljesítményű Az új változat üzembe helyezése több mint 10 percet vesz igénybe. Végül kiépített állapotú, de csökkentett futási állapotú. A Futó állapot elemleírás a következőket mutatja: Details: Deployment Progress Deadline Exceeded. 0/1 replicas ready. Ellenőrizze, hogy az állapotfelmérések helyesen vannak-e konfigurálva
A végpontokra irányuló kérések sikertelenek A tárolóalkalmazás végpontja nem válaszol a kérésekre. Bejövő forgalom konfigurációjának áttekintése
A kérések visszaadott állapota 403 A tárolóalkalmazás végpontja 403-ás HTTP-hibával válaszol a kérelmekre (hozzáférés megtagadva). Ellenőrizze, hogy helyes-e a hálózati konfiguráció
A válaszok nem úgy érkeztek, ahogy vártuk A tárolóalkalmazás végpontja válaszol a kérésekre, de a válaszok nem a várt módon jelennek meg. Ellenőrizze, hogy a forgalom a megfelelő változatra van-e irányítva

Ellenőrizze, hogy egyedi címkéket használ-e, amikor képeket telepít a tároló-regisztrációsba
Hiányzó paraméterekkel kapcsolatos hiba Hibaüzenetet kap a hiányzó paraméterekről, amikor parancsokat futtat az containerapp az Azure CLI-ben, vagy parancsmagokat futtat az Az.App Azure PowerShell-modulból. Ellenőrizze, hogy telepítve van-e az Azure Container Apps bővítmény legújabb verziója
Az előzetes verziójú funkciók nem érhetők el Az előzetes verziójú funkciók nem érhetők el, ha parancsokat futtat az containerapp az Azure CLI-ben. Annak ellenőrzése, hogy az Azure Container Apps bővítmény engedélyezi-e az előzetes verziójú funkciókat
Key Vault titkos kulcsszinkronizálási hiba Nem tudja lekérni vagy szinkronizálni a titkos kulcsokat az Azure Key Vaultból. Key Vault-referenciák hibaelhárítása
Az alkalmazás vagy a környezet törlése nem működik Ezt a problémát gyakran kíséri egy üzenet, például provisioningState: ScheduledForDelete. A társított virtuális hálózat manuális törlése

Naplók megtekintése

A tárolóalkalmazással kapcsolatos problémák keresése során az egyik első lépés a naplóüzenetek megtekintése. A konzol- és rendszernaplók kimenetét is megtekintheti. A tárolóalkalmazás konzolnaplója rögzíti az alkalmazás stdout és stderr streameket. A Container Apps rendszernaplókat hoz létre a szolgáltatásszintű eseményekhez.

  1. Jelentkezzen be az Azure Portalra.
  2. A Keresősávon adja meg a tárolóalkalmazás nevét.
  3. Az Erőforrások szakaszban válassza ki a tárolóalkalmazás nevét.
  4. A navigációs sávon bontsa ki az Ellenőrzés elemet és válassza a Naplófolyamot (nem Naplók ) lehetőséget.
  5. Ha a Naplóstream lapon az szerepel, hogy Ez a verzió nullára van skálázva., válassza az Ugrás a verziókezeléshez gombot. Helyezzen üzembe egy új változatot, amely legalább 1 replikaszámra van skálázva. További információ: Skálázás az Azure Container Appsben.
  6. A Naplóstream lapon állítsa be naplókatkonzolra vagy rendszerre.

A problémák diagnosztizálása és megoldása eszköz használata

A problémák diagnosztizálására és megoldására szolgáló eszközzel megkeresheti a tárolóalkalmazás állapotával, konfigurációjával és teljesítményével kapcsolatos problémákat.

  1. Jelentkezzen be az Azure Portalra.
  2. A Keresősávon adja meg a tárolóalkalmazás nevét.
  3. Az Erőforrások szakaszban válassza ki a tárolóalkalmazás nevét.
  4. A navigációs sávon válassza a Problémák diagnosztizálása és megoldása lehetőséget.
  5. A Problémák diagnosztizálása és megoldása lapon válassza ki a hibaelhárítási kategóriák egyikét.
  6. A navigációs sávon válassza ki az egyik kategóriát a tárolóalkalmazással kapcsolatos problémák megoldásának módjához.

Konténerkép hozzáférhetőségének ellenőrzése

Ha egy új változat üzembe helyezésekor hibaüzenet jelenik meg, ellenőrizze, hogy a Container Apps képes-e lekérni a tárolólemezképet.

  • Győződjön meg arról, hogy a tárolókörnyezet tűzfala nem blokkolja a tárolóregisztrációs adatbázishoz való hozzáférést. További információ: Kimenő forgalom szabályozása felhasználó által megadott útvonalakkal.
  • Ha a meglévő virtuális hálózat az alapértelmezett Azure-beli DNS-kiszolgáló helyett egyéni DNS-kiszolgálót használ, ellenőrizze, hogy a DNS-kiszolgáló megfelelően van-e konfigurálva, és hogy a tárolóregisztrációs adatbázis DNS-keresése nem hiúsul meg. További információ: DNS.
  • Ha a Container Apps felhőalapú buildelési funkciójával létrehozott egy tárolórendszerképet (lásd az Azure Container Apps kód–felhő elérési útját, a rendszerkép nem érhető el nyilvánosan, ezért ez a szakasz nem érvényes.

Konzolalkalmazásként futtatható Docker-tárolók esetében ellenőrizze, hogy a rendszerkép nyilvánosan elérhető-e, ha az alábbi parancsot egy emelt szintű parancssorban futtatja. A parancs futtatása előtt cserélje le az értékekkel körülvett <> helyőrzőket.

docker run --rm <YOUR_CONTAINER_IMAGE>

Ellenőrizze, hogy a Docker hibajelentés nélkül futtatja-e a rendszerképet. Ha Windows rendszeren futtatja a Dockert, győződjön meg arról, hogy a Docker-motor fut.

Ha a rendszerkép nem érhető el nyilvánosan, a következő hibaüzenet jelenhet meg.

docker: Error response from daemon: pull access denied for <YOUR_CONTAINER_IMAGE>, repository does not exist or may require 'docker login': denied: requested access to the resource is denied. See 'docker run --help'.

További információ: Hálózatkezelés az Azure Container Apps-környezetben.

Bejövő forgalom konfigurációjának áttekintése

A tárolóalkalmazás bejövő forgalmának beállításait olyan szabályokkal kényszerítjük ki, amelyek a külső és belső forgalom tárolóalkalmazásba való átirányítását szabályozzák. Ha nem tud csatlakozni a tárolóalkalmazáshoz, tekintse át ezeket a bejövő beállításokat, és győződjön meg arról, hogy a bejövő beállítások nem blokkolják a kéréseket.

  1. Jelentkezzen be az Azure Portalra.
  2. A Keresősávon adja meg a tárolóalkalmazás nevét.
  3. Az Erőforrások területen válassza ki a tárolóalkalmazás nevét.
  4. A navigációs sávon bontsa ki a Beállítások elemet, és válassza a Bejövő forgalom lehetőséget.
Probléma Művelet
Engedélyezve van a hozzáférés? Ellenőrizze, hogy az Engedélyezett jelölőnégyzet be van-e jelölve.
Engedélyezi a külső bejövő forgalmat? Ellenőrizze, hogy bejövő forgalombárhonnan fogad-e forgalmat. Ha a tárolóalkalmazás nem figyeli a HTTP-forgalmat, állítsa a bejövő forgalmata Container Apps-környezetre korlátozott értékre.
Az ügyfél HTTP-t vagy TCP-t használ a tárolóalkalmazás eléréséhez? Ellenőrizze, hogy a bejövő forgalom típusa a megfelelő protokollra van-e beállítva (HTTP vagy TCP).
Az ügyfél támogatja az mTLS-t? Ellenőrizze, hogy az ügyféltanúsítvány módjacsak akkor legyen Kötelező, ha az ügyfél támogatja az mTLS-t. További információ: ügyféltanúsítvány-hitelesítés konfigurálása.
Az ügyfél HTTP/1-et vagy HTTP/2-t használ? Ellenőrizze, hogy az átvitel a megfelelő HTTP-verzióra van-e beállítva (HTTP/1 vagy HTTP/2).
Helyesen van beállítva a célport? Ellenőrizze, hogy a célport ugyanarra a portra van-e beállítva, amelyen a tárolóalkalmazás figyel, vagy ugyanazt a portot, amelyet a tárolóalkalmazás Docker-fájlja tesz elérhetővé.
Megtagadták az ügyfél IP-címét? Ha az IP-biztonsági korlátozások mód nincs beállítva az összes forgalom engedélyezésére, ellenőrizze, hogy az ügyfél nem rendelkezik-e megtagadott IP-címmel.

További információ: Bejövő forgalom az Azure Container Appsben.

Hálózati konfiguráció ellenőrzése

Az Azure rekurzív feloldók az 168.63.129.16 IP-címet használják a kérések megoldásához.

  1. Ha a virtuális hálózat az alapértelmezett Azure-beli DNS-kiszolgáló helyett egyéni DNS-kiszolgálót használ, konfigurálja a DNS-kiszolgálót a nem megoldott DNS-lekérdezések továbbítására 168.63.129.16.
  2. Az NSG vagy a tűzfal konfigurálásakor ne tiltsa le a 168.63.129.16 címet.

További információ: Hálózatkezelés az Azure Container Apps-környezetben.

Állapotadat-mintavételek konfigurációjának ellenőrzése

A TCP-t átvitelként használó összes állapotadat-mintavételi típus (élőképesség, felkészültség és indítás) esetében ellenőrizze, hogy portszámuk megegyezik-e a tárolóalkalmazáshoz konfigurált bejövő célportmal.

  1. Jelentkezzen be az Azure Portalra.
  2. A Keresősávon adja meg a tárolóalkalmazás nevét.
  3. Az Erőforrások területen válassza ki a tárolóalkalmazás nevét.
  4. A navigációs sávon bontsa ki az Alkalmazás elemet, és válassza a Tárolók elemet.
  5. A Konténerek lapon válassza az Állapotvizsgálatok lehetőséget.
  6. Bontsa ki a Liveness-mintavételeket, a Készültségi mintavételeket és az Indítási mintavételeket.
  7. Minden mintavétel esetében ellenőrizze, hogy a port értéke helyes-e.

Frissítse a portértékeket az alábbiak szerint:

  1. Új változat létrehozásához válassza a Szerkesztés és az üzembe helyezés lehetőséget.
  2. Az új változat létrehozása és üzembe helyezése lapon jelölje be a tárolólemezkép melletti jelölőnégyzetet, és válassza a Szerkesztés lehetőséget.
  3. A Tároló szerkesztése ablakban válassza az Állapotminták lehetőséget.
  4. Bontsa ki a Liveness-mintavételeket, a Készültségi mintavételeket és az Indítási mintavételeket.
  5. Minden mintavételhez szerkessze a Port értékét.
  6. Válassza ki a Mentés gombot.
  7. Az Új változat létrehozása és üzembe helyezése lapon válassza a Létrehozás gombot.

Állapotadat-mintavételek konfigurálása hosszabb indítási időre

Ha a bejövő forgalom engedélyezve van, a rendszer automatikusan hozzáadja az alábbi alapértelmezett mintavételeket a fő alkalmazástárolóhoz, ha az egyes típusokhoz nincs definiálva.

Az egyes mintavételtípusok alapértelmezett értékei az alábbiak.

Tulajdonság Indítás Készenlét Élőség
Protokoll TCP TCP TCP
Kikötő Bejövő forgalom célportja Bejövő forgalom célportja Bejövő forgalom célportja
Időkorlát 3 másodperc 5 másodperc n.a.
Időszak 1 másodperc 5 másodperc n.a.
Kezdeti késés 1 másodperc 3 másodperc n.a.
Siker küszöbértéke 1 1 n.a.
Hibaküszöb 240 48 n.a.

Ha a tárolóalkalmazás hosszabb időt vesz igénybe az indításhoz (ami java nyelven gyakori), előfordulhat, hogy testre kell szabnia az élettartam- és készültségi mintavétel kezdeti késleltetési másodperc tulajdonságát ennek megfelelően. A naplókban megtekintheti a tárolóalkalmazás tipikus indítási idejét.

  1. Jelentkezzen be az Azure Portalra.
  2. A Keresősávon adja meg a tárolóalkalmazás nevét.
  3. Az Erőforrások területen válassza ki a tárolóalkalmazás nevét.
  4. A navigációs sávon bontsa ki az Alkalmazás elemet, és válassza a Tárolók elemet.
  5. A Konténerek lapon válassza az Állapotvizsgálatok lehetőséget.
  6. Új változat létrehozásához válassza a Szerkesztés és az üzembe helyezés lehetőséget.
  7. Az új változat létrehozása és üzembe helyezése lapon jelölje be a tárolólemezkép melletti jelölőnégyzetet, és válassza a Szerkesztés lehetőséget.
  8. A Tároló szerkesztése ablakban válassza az Állapotminták lehetőséget.
  9. Bontsa ki a Liveness-mintavételeket.
  10. Ha a létfenntartási ellenőrzések engedélyezése lehetőség van kiválasztva, növelje a kezdeti késleltetési másodpercek értékét.
  11. Bontsa ki a készültségi mintavételeket.
  12. Ha a készenlét-mintavételek engedélyezése lehetőség van kiválasztva, növelje a kezdeti késleltetési másodperc értékét.
  13. Válassza a Mentés lehetőséget.
  14. Az Új változat létrehozása és üzembe helyezése lapon válassza a Létrehozás gombot.

Ezután megtekintheti a naplókat , és ellenőrizheti, hogy a tárolóalkalmazás sikeresen elindul-e.

További információ: Állapotminták használata.

Ellenőrizze, hogy a forgalom a megfelelő változatra van-e irányítva

Ha a tárolóalkalmazás nem a várt módon viselkedik, a probléma az lehet, hogy a kérések elavult változatra vannak irányítva.

  1. Jelentkezzen be az Azure Portalra.
  2. A Keresősávon adja meg a tárolóalkalmazás nevét.
  3. Az Erőforrások területen válassza ki a tárolóalkalmazás nevét.
  4. A navigációs sávon bontsa ki az Alkalmazás elemet, és válassza a Változatok lehetőséget.

Ha a Reviziós módSingle értékre van állítva, az összes forgalom alapértelmezetten a legújabb változatra kerül átirányításra. Az Aktív változatok lapnak csak egy változatot kell felsorolnia, amelynek forgalmi értéke 100%a következő: .

Ha a Reviziós mód be van állítva Multiple, ellenőrizze, hogy nem elavult reviziókra irányítja-e a forgalmat.

A forgalom felosztásának konfigurálásáról további információt az Azure Container Apps forgalomeloszlási szolgáltatásában talál.

Ellenőrizze, hogy telepítve van-e az Azure Container Apps bővítmény legújabb verziója

Ha hibaüzenetet kap a hiányzó paraméterekről, amikor parancsokat futtat az Azure CLI-ben, vagy parancsmagokat futtat az containerapp az Az.App Azure PowerShell modulból, győződjön meg arról, hogy telepítve van az Azure Container Apps bővítmény legújabb verziója.

az extension add --name containerapp --upgrade

Annak ellenőrzése, hogy az Azure Container Apps bővítmény engedélyezi-e az előzetes verziójú funkciókat

Ha az előzetes verziójú funkciók nem érhetők el, amikor parancsokat futtat az containerapp az Azure CLI-ben, engedélyezze az előzetes verziójú funkciókat az Azure Container Apps bővítményben.

az extension add --name containerapp --upgrade --allow-preview true

Az Azure Container Apps-környezet által használt virtuális hálózat manuális törlése

Ha a provisioningState: ScheduledForDelete üzenetet kapja, de a környezete nem tud ténylegesen törölni, győződjön meg arról, hogy manuálisan törli a társított virtuális hálózatot.

  1. Azonosítsa a törölni kívánt környezet által használt virtuális hálózatot. Cserélje le a <HELYŐRZŐket> az Ön értékeire.

    az containerapp env show --resource-group <RESOURCE_GROUP> --name <ENVIRONMENT>
    

    A kimenetben keresse infrastructureSubnetId meg és jegyezze fel a virtuális hálózat azonosítóját. Ilyen például a vNet::myVNet.idvirtuális hálózat azonosítója.

  2. Törölje manuálisan a virtuális hálózatot:

    az network vnet delete --resource-group <RESOURCE_GROUP> --name <VNET_ID>
    
  3. Törölje az Azure Container Apps-környezetet:

    az containerapp env delete --resource-group <RESOURCE_GROUP> --name <ENVIRONMENT> --yes
    

Következő lépések