Gyakori üzembehelyezési hibák elhárítása a Azure Container Apps

Ez a cikk segít azonosítani és elhárítani azokat az üzembehelyezési hibákat, amelyekhez leggyakrabban támogatási eszkalációra van szükség Azure Container Apps. Minden forgatókönyv tartalmazza a tüneteket, a portál és a parancssori felület diagnosztikai lépéseit és a megoldásokat.

Keresse meg a tünetet a gyorshivatkozási táblázatban, és kövesse az egyező forgatókönyvre mutató hivatkozást.

Tünetek gyors áttekintése

Hibajelenség Scenario
Az üzembe helyezés kiépítési hibával meghiúsul, nincs létrehozva korrektúra Kép lekérési hibái
A verzió létrejött, de az állapot Failed vagy Degraded Tároló-összeomlási és -indítási hibák
A titkos kód vagy a környezeti változó futásidőben üres vagy hiányzik Titkos kulcsok elérésének problémái
A Key Vault-hivatkozás sikertelen az üzembe helyezés során vagy futásidőben Key Vault-hivatkozási hibák
A felügyelt identitáshívások a 401-et vagy a 403-at adják vissza A felügyelt identitás helytelen konfigurációja
Az Init-tároló lefagy vagy meghibásodik, az alkalmazás soha nem indul el Inicializálás időzítési problémái
A revízió ki van osztva, de meg van jelölve Degraded Az állapotellenőrzések hibái
Az alkalmazás rendben van, de a kérések hibát adnak vissza, vagy nem érkezik válasz Bejövő és forgalomirányítási problémák
A beállításjegyzék-hitelesítés sikertelen (401 vagy NEM ENGEDÉLYEZETT) Tárolóregisztrációs adatbázis hitelesítése

Hol érdemes keresni: diagnosztikai felületek

Az üzembehelyezési hibák kivizsgálásához használja az alábbi diagnosztikai felületeket.

Felület Mit mutat ez Hozzáférés
Problémák diagnosztizálása és megoldása Automatizált detektorok a gyakori problémákhoz, a hibaelhárítási kategóriákhoz és az irányított elemzéshez. A Azure portálon nyissa meg a tárolóalkalmazást, és válassza a Problémák diagnosztizálása és megoldása lehetőséget.
Rendszernaplók Platformszintű események: kép lekérési állapota, mintavételi eredmények, identitáshibák, titkos szinkronizálási eredmények. az containerapp logs show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --type system --tail 50 vagy a Log Analytics ContainerAppSystemLogs_CL táblát.
Konzolnaplók Az alkalmazás stdout/stderr kimenete: veremnyomkövetések, indítási üzenetek, futásidejű hibák. az containerapp logs show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --tail 100 vagy a portál Log stream paneljén.
HTTP-naplók Bejövő rétegbeli kérelemnaplók: állapotkódok, késés, útvonalak, újrapróbálkozások, válasz részletei. Bejelentkezés Azure Monitor környezeti diagnosztikai beállításokon keresztül. Log Analytics ContainerAppHTTPLogs táblázat.
Revízió részletes tulajdonságai provisioningState, provisioningError, healthState, runningStaterunningStateDetails. az containerapp revision show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --revision <REV> -o json vagy a portál Verziók panelje.
Üzembe helyezési idő hibái Alkalmazásszintű provisioningState , és provisioningError ha nem jön létre korrektúra. az containerapp show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> -o json

Kép lekérési hibái

A rendszerkép-lekéréses hibák az üzembe helyezési hibák egyik leggyakoribb okai. Ezek általában azelőtt fordulnak elő, hogy Azure Container Apps használható változatot hozhatnának létre.

Symptoms

  • Nincs korrektúra létrehozva.
  • provisioningState az Failed.
  • A hibaüzenet megemlíti a(z) ImagePullBackOff, UNAUTHORIZED vagy manifest unknown elemet.

Hol érdemes keresni: kép lekéréses diagnosztikái

Az Azure Portalon lépjen a Container App>Revisions oldalra (a lista üres, vagy sikertelen elemet jelenít meg) >Diagnose and solve problems, majd keressen rá az "image" kifejezésre.

# Check app-level provisioning state and error
az containerapp show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> \
  --query "{provisioning:properties.provisioningState, error:properties.provisioningError, latestRevision:properties.latestRevisionName}" -o json

# List revisions (expect empty or failed)
az containerapp revision list -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> \
  --query "[].{name:name, health:properties.healthState, provisioning:properties.provisioningState}" -o table

Gyakori okok és megoldások

A probléma oka Hibajelzés Megoldás
A képcímke nem létezik manifest unknown, tag not found Ellenőrizze, hogy a pontos címke létezik-e a beállításjegyzékben: az acr repository show-tags --name <AZURE_CONTAINER_REGISTRY_NAME> --repository <REPOSITORY_NAME>
A beállításjegyzék hitelesítést igényel UNAUTHORIZED: authentication required Konfigurálja a regisztrációs adatbázis hitelesítő adatait a konténeralkalmazásban. Használjon rendszergazdai hitelesítő adatokat vagy felügyelt identitást az ACR lekéréséhez. Lásd a tárolóregisztrációs adatbázis hitelesítését.
Helytelen beállításjegyzék-állomásnév name unknown, DNS-feloldási hiba Ellenőrizze, hogy az --image érték a megfelelő <REGISTRY>.azurecr.io gazdagépnevet használja-e.
A tűzfal vagy az NSG blokkolja a tárolóregisztert Kapcsolati időkorlát Ha egyéni virtuális hálózatot használ, győződjön meg arról, hogy kimenő hozzáférés van a beállításjegyzékhez. Adja hozzá a AzureContainerRegistry szolgáltatáscímkét vagy az FQDN-szabályokat.

Konténer-összeomlási és indítási hibák

Ezt a szakaszt akkor használja, ha egy változat létrejön, de a számítási feladat nem indul el vagy nem fut.

Symptoms

  • A korrektúra létrejön, de healthState az .Unhealthy
  • runningState az Failed.
  • Előfordulhat, hogy a konzolnaplók üresek (a tároló kilép a kimenet írása előtt).

Hol érdemes keresni: összeomlási és indítási diagnosztika

Az Azure portálon lépjen a Container App>Verziók lapra, válassza ki a sikertelen verziót, és nyissa meg az Események lapot. Ellenőrizze a BackOff vagy CrashLoopBackOff eseményeket.

# Inspect revision detail
az containerapp revision show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --revision <REV> \
  --query "{health:properties.healthState, running:properties.runningState, details:properties.runningStateDetails, error:properties.provisioningError}" -o json

# Pull console logs (if any output was written)
az containerapp logs show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --tail 100

# Pull system logs for platform-level events
az containerapp logs show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --type system --tail 50

Gyakori okok és megoldások

A probléma oka Hibajelzés Megoldás
Az alkalmazás összeomlik indításkor Veremnapló a konzolnaplókban Javítsa ki az alkalmazáshibát. Ha a naplók üresek, az összeomlás az stdout kiürítése előtt történik. Adjon hozzá korai naplózást, vagy állítsa be a futtatókörnyezetet a kimeneti pufferelés letiltására (például PYTHONUNBUFFERED=1).
Érvénytelen parancs vagy belépési pont exec format error, executable file not found Ellenőrizze, hogy a tároló command és args megfelel-e annak, amit a rendszerkép elvár. Ellenőrizze a(z) properties.template.containers[].command elemet itt: az containerapp revision show.
Hiányzó környezeti változó KeyError, undefined, null hivatkozás Ellenőrizze, hogy az összes szükséges env var be van-e állítva. Lásd a titkos kód elérésének problémáit.
Nincs elegendő erőforrás OOMKilled Memória- és PROCESSZORkorlátok növelése a tárolón: az containerapp update -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --cpu 1.0 --memory 2.0Gi.

Titkos kulcsok elérésének problémái

Ebben a szakaszban elháríthatja azokat a hiányzó vagy üres titkos kódértékeket, amelyek megszakítják az alkalmazáskonfigurációt futásidőben.

Symptoms

  • A tároló elindul, de az alkalmazás meghiúsul, mert a várt konfigurációs érték üres vagy hiányzik.
  • A titkos kulcsokra hivatkozó környezeti változóknak nincs értékük.

Hol érdemes keresni: titkos referenciák diagnosztikái

A Azure portálon lépjen a Tárolóalkalmazás>beállításai>titkos kulcsok elemre a titkos kód meglétének ellenőrzéséhez. Ezután lépjen a Container AppRevisions (>) lapra, válassza ki a változatot, és ellenőrizze a Tároló részletei>környezeti változókat, hogy a hivatkozás helyes-e.

# List secrets defined on the app
az containerapp secret list -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> -o table

# Show the revision template to verify env var references
az containerapp revision show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --revision <REV> \
  --query "properties.template.containers[].env" -o json

Gyakori okok és megoldások

A probléma oka Hibajelzés Megoldás
Titkos kódnév eltérése Az env var értéke üres A secretRef környezeti változónak pontosan meg kell egyeznie a titkos névvel (kis- és nagybetűk megkülönböztetése).
A titkos kód nincs definiálva Ismeretlen titkos kódra hivatkozó üzembehelyezési hiba Adja meg a titkos kulcsot a telepítés előtt: az containerapp secret set -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --secrets mysecret=myvalue.
Titkos kód frissítve, de a változat nem újraindult A régi érték megmarad Helyezzen üzembe egy új változatot, vagy indítsa újra a meglévőt: az containerapp revision restart -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --revision <REV>. A titkos kódok frissítése önmagában nem indít el új változatot.
A titok törölve lett, miközben egy revízió még hivatkozik rá A tároló nem indul el Helyezzen üzembe egy új változatot, amely eltávolítja a törölt titkos kódra mutató hivatkozást, majd inaktiválja a régi változatokat.

Important

A Container Appsben a titkos kódok hatóköre az alkalmazásra terjed ki, a környezeti változók hivatkozásai azonban a változatra terjednek ki. A titkos kulcs értékének módosítása nem terjed át automatikusan a futó revíziókra. A frissített érték érvénybe lépéséhez létre kell hoznia egy új változatot, vagy újra kell indítania a meglévőt.

Key Vault referenciahibák

Ezt a szakaszt akkor használja, ha Key Vault által támogatott titkos kulcsok nem oldhatók fel az üzembe helyezés során vagy az alkalmazás futtatása közben.

Symptoms

  • Az üzembe helyezés meghiúsul, vagy a titkos kód értéke nem érhető el.
  • A rendszernaplók Key Vault hozzáférési hibákra hivatkoznak.
  • provisioningErrora Key Vault hitelesítési vagy engedélyezési hibáját említi.

Hol érdemes keresni: Key Vault hozzáférés-diagnosztika

Az Azure Portalon nyissa meg a Tárolóalkalmazás>Beállítások>Titkos kódok elemet (keresse a Key Vault-hivatkozásnál látható figyelmeztető ikont). Ezután lépjen a Container App>Diagnosztizálás és problémamegoldás lapra, és keressen rá a „Key Vault” kifejezésre.

# List secrets and check for Key Vault reference status
az containerapp secret list -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> -o json

# Verify managed identity is assigned
az containerapp identity show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME>

Gyakori okok és megoldások

A probléma oka Hibajelzés Megoldás
A felügyelt identitás nincs engedélyezve Managed identity not configured A rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitás engedélyezése: az containerapp identity assign -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --system-assigned.
Hiányzó RBAC-szerepkör Authorization failed, Access denied Adja meg a Key Vault titkos kulcsfelhasználói szerepkört a Key Vault felügyelt identitásának: az role assignment create --role "Key Vault Secrets User" --assignee <IDENTITY_PRINCIPAL_ID> --scope <KEYVAULT_RESOURCE_ID>.
Key Vault tűzfal blokkolja a hozzáférést Kapcsolati időtúllépés, ForbiddenByFirewall Adja hozzá a Container Apps-környezet kimenő IP-címeit a Key Vault tűzfalhoz, vagy konfiguráljon egy privát végpontot. Adja hozzá a AzureKeyVault szolgáltatáscímkét és a login.microsoft.com FQDN-t is, ha az Azure Firewalllal UDR-t használ.
A titkos kód le van tiltva a Key Vault SecretDisabled Engedélyezze a titkos kulcsot a Key Vaultban: Azure Portal > Key Vault > Titkos kulcsok > válassza ki a titkos kulcsot > Engedélyezés.
Hibásan formázott Key Vault URI SecretNotFound, InvalidUri Ellenőrizze az URI formátumát: https://<vault>.vault.azure.net/secrets/<secret-name> vagy https://<vault>.vault.azure.net/secrets/<secret-name>/<version>.
Az RBAC-szerepkör terjedési késleltetése ~5 perc után működik Az RBAC-módosítások propagálása akár 10 percet is igénybe vehet. Az identitásjogkivonat gyorsítótára akár 24 óráig is megmaradhat. Várjon és próbálkozzon újra, vagy telepítsen egy új változatot.

Felügyelt identitás helytelen konfigurálása

Ezt a szakaszt akkor használja, ha a szolgáltatások Azure hitelesítése akkor is meghiúsul, ha az alkalmazás felügyelt identitás használatára van konfigurálva.

Symptoms

  • Az alkalmazáskód a 401-et (jogosulatlan) vagy a 403-at (Tiltott) kapja Azure-szolgáltatások hívásakor.
  • A felügyelt identitás tokenjének lekérése sikertelen.

Hol érdemes keresni: identitás- és engedélyezési diagnosztikák

Az Azure Portalon lépjen a Container App>Beállítások>Identitás menüpontra (ellenőrizze, hogy a rendszer által hozzárendelt identitás On van-e, vagy hogy a felhasználó által hozzárendelt identitások szerepelnek-e a listában). Ezután ellenőrizze a célerőforrás IAM/Hozzáférés-vezérlés paneljén a szerepkör-hozzárendeléseket.

# Verify identity configuration
az containerapp identity show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME>

# Check role assignments for the identity's principal ID
az role assignment list --assignee <PRINCIPAL_ID> --all -o table

Gyakori okok és megoldások

A probléma oka Hibajelzés Megoldás
Nincs hozzárendelt identitás Az SDK hibát jelez ManagedIdentityCredential Identitás hozzárendelése: az containerapp identity assign -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --system-assigned.
Helytelen identitás használata (rendszer vagy felhasználó által hozzárendelt) 403 a célként megadott erőforráson Ha felhasználó által hozzárendelt identitást használ, adja meg az ügyfélazonosítót a kódban: DefaultAzureCredential(managed_identity_client_id="<CLIENT_ID>").
Hiányzó szerepkör-hozzárendelés a célerőforráson 403 hibakód Rendelje hozzá a szükséges szerepkört a célerőforráson (például a Storage Blob Data Contributor szerepkört egy tárfiókon).
Az Init-tárolónak identitásra van szüksége, de nem érhető el Az Init-tároló hitelesítési hibával meghiúsul A csak használatalapú és dedikált számítási feladatprofil-környezetekben az Init-tárolók nem használhatják a felügyelt identitást. Helyezze át az identitásfüggő logikát a fő tárolóba, vagy használjon számítási feladatprofil-használati környezetet, és állítsa be lifecycle: Init az identitást.
A tokengyorsítótár elavult a szerepkör módosítása után A 403 a javítás után percekig megmarad Az identitásjogkivonat gyorsítótára akár 24 óráig is eltarthat. Helyezzen üzembe egy új revíziót a token frissítésének kikényszerítéséhez.

Jótanács

A Container Apps egy belsőleg elérhető REST-végpontot tesz elérhetővé a felügyelt identitásjogkivonatok beszerzéséhez. A végpont közvetlen meghívása helyett használja a Azure Identity SDK-t (DefaultAzureCredential) a környezetek konzisztens élményéhez.

Inicializálás időzítési problémái

Ezt a szakaszt akkor használja, ha az init-tárolók blokkolják az indítást, vagy sikertelenek, mielőtt a fő tároló megkezdené a forgalom kiszolgálását.

Symptoms

  • Az alkalmazás soha nem éri el a futó állapotot.
  • Az Init-tárolók elakadtak vagy sikertelennek tűnnek.
  • A rendszernaplók azt mutatják, hogy az init-tároló fut, de soha nem fejez be.

Hol keresse: az init tároló diagnosztikája

A Azure portálon lépjen a Container App Revisions (Tárolóalkalmazás-változatok>) lapra, válassza ki a változatot, és nyissa meg az Események lapot. Keresse meg az init tárolóeseményeket.

# Check revision running state
az containerapp revision show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --revision <REV> \
  --query "{running:properties.runningState, details:properties.runningStateDetails}" -o json

# Check init container logs
az containerapp logs show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --container <INIT_CONTAINER_NAME> --tail 100

# System logs for platform events
az containerapp logs show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --type system --tail 50

Gyakori okok és megoldások

A probléma oka Hibajelzés Megoldás
Az Init-tároló egy még nem elérhető szolgáltatástól függ A kapcsolat megtagadva vagy időtúllépés az init tárolónaplókban Adjon hozzá újrapróbálkozési logikát vagy készenlét-ellenőrzést az init-tárolóban. Ne feltételezze, hogy a függő szolgáltatások inicializáláskor érhetők el.
Az Init-tároló soha nem lép ki A korrektúra a következő helyen marad: Provisioning Győződjön meg arról, hogy az init-tároló véges parancsot futtat, és a 0-s kóddal lép ki. A határozatlan ideig futó Init-tárolók megakadályozzák a fő tároló elindítását.
Az Init-tárolónak felügyelt identitásra van szüksége 401 vagy 403 az initkonténerből A csak használatalapú és dedikált számítási feladatprofil-környezetekben a felügyelt identitás nem érhető el az init-tárolók számára. Használjon számítási feladatprofil-használati környezetet, vagy helyezze át az identitásfüggő munkát a fő tárolóba.
Az Init-tároló lemezképének lekérése meghiúsul Ugyanazok a tünetek, mint a rendszerkép-letöltési hibák esetén Alkalmazza ugyanazokat a registry-hitelesítési és lemezképcímke-ellenőrzéseket.
A műveletek sorrendje: a titkos kód még nincs szinkronizálva Az Init-tároló üres titkos kódot olvas be Key Vault titkos kulcs szinkronizálása aszinkron módon történik. Ha az init-tároló egy Key Vault hivatkozott titkos kódtól függ, lehetséges, hogy az érték még nem érhető el. Használjon közvetlen titkos kódokat init-time függőségekhez, vagy adjon hozzá újrapróbálkozásos logikát.

Egészségi állapotellenőrzési hibák

Ezt a részt akkor használja, ha a módosítások sikeresen lettek üzembe helyezve, de az ellenőrző próbák nem kifogástalan vagy leromlott állapotúnak jelölik őket.

Symptoms

  • A revízió üzembe van helyezve, de a futási állapota Degraded.
  • A rendszernaplók az eseményeket a mintavételi hibák részleteivel jelenítik meg Unhealthy .
  • Az alkalmazás helyileg működik, de sikertelen állapotellenőrzéseket hajt végre az ACA-ban.

Hol érdemes keresni: állapotdiagnosztika mintavétele

Az Azure Portalon nyissa meg a Container App>Application>Containers>Állapotmintavételek elemet (ellenőrizze az állapotmintavételek konfigurációját). Ezután lépjen a Container AppRevisions (Tárolóalkalmazás >változatai) lapra, válassza ki a változatot, és nyissa meg az Események elemet.

# Check the revision's probe configuration
az containerapp revision show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --revision <REV> \
  --query "properties.template.containers[].probes" -o json

# System logs for probe failure events
az containerapp logs show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --type system --tail 50

Gyakori okok és megoldások

A probléma oka Hibajelzés Megoldás
A próbaport nem egyezik az alkalmazásporttal A mintavétel elutasított kapcsolatot ad vissza Állítsa be a mintavételi portot úgy, hogy megfeleljen az alkalmazás figyelési portjának és a bejövő forgalomnak targetPort.
Az alkalmazás indítása túl sokáig tart A mintavétel sikertelen, mielőtt az alkalmazás készen áll, a változat elindul Degraded Növelje az élőségi és készenléti próbák initialDelaySeconds értékét. Gyakori az Java-alkalmazások esetében.
A mintavételi útvonal nem 200 értéket ad vissza A mintavétel HTTP-hibával meghiúsul Győződjön meg arról, hogy az állapotvégpont 200 értéket ad vissza. HTTP-mintavételek esetén ellenőrizze, hogy létezik-e az elérési út, és megfelelően válaszol-e.
TCP-mintavétel, ha az alkalmazás csak init után köt A próbacsatlakozás azelőtt jön létre, hogy az alkalmazás figyelni kezdene. Használjon nagyobb failureThreshold értékű indítási szondát, hogy az alkalmazásnak legyen ideje a port megnyitására.

Alapértelmezett mintavételi értékek

Ha engedélyezi a bejövő forgalmat, és nem konfigurálja a mintavételeket, az ACA az alábbi alapértelmezett értékeket alkalmazza:

Property Startup Élőség Készenlét
Protocol TCP TCP TCP
Port Bejövő forgalom célportja Bejövő forgalom célportja Bejövő forgalom célportja
Kezdeti késés 1s 1s 3s
Időszak 1s 1s 5 s
Hibaküszöb 240 48 N/A

Bejövő és forgalomirányítási problémák

Akkor használja ezt a részt, ha az alkalmazás fut, de a kérelmek meghiúsulnak, mert az ingress vagy a revízió forgalmi beállításai helytelenek.

Symptoms

  • Az alkalmazás fut és kifogástalan állapotú, de a HTTP-kérések hibát (404, 502) adnak vissza, vagy nincs válasz.
  • Az alkalmazás a az containerapp exec használatával működik, de a nyilvános URL-címen keresztül nem.

Hol keresse: bejövő forgalom és forgalmi diagnosztika

Az Azure Portalon lépjen a Container App>Beállítások>Bejövő forgalom lehetőségre. Ezután nyissa meg a Container App>Application>Revisions (forgalom felosztásának ellenőrzése) elemet.

# Check ingress configuration and traffic split
az containerapp show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> \
  --query "{ingress:properties.configuration.ingress, latestReady:properties.latestReadyRevisionName}" -o json

# Verify the FQDN
az containerapp show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --query "properties.configuration.ingress.fqdn" -o tsv

Gyakori okok és megoldások

A probléma oka Hibajelzés Megoldás
Az Ingress nincs engedélyezve Nincs FQDN hozzárendelve, az alkalmazás nem érhető el Bejövő forgalom engedélyezése: az containerapp ingress enable -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --type external --target-port 8080 --transport auto.
A célport eltérése 502 Hibás átjáró Állítsa be targetPort , hogy megfeleljen az alkalmazás által figyelt portnak.
A forgalom súlya 0% a legújabb változaton A régi változat a forgalmat szolgálja ki Forgalom felosztásának frissítése: az containerapp ingress traffic set -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --revision-weight latest=100.
IP-korlátozás blokkolja az ügyfelet 403 hibakód Ellenőrizze az IP-biztonsági korlátozásokat a bejövő forgalom beállításai között.
Helytelen átvitel (HTTP és TCP) Csatlakozási hibák Ellenőrizze, hogy a bejövő forgalom típusa megegyezik-e az alkalmazás protokolljával.

Tárolóregisztrációs adatbázis hitelesítése

Ezt a szakaszt akkor használja, ha a rendszerkép-lekérések sikertelenek, mert az alkalmazás nem tud hitelesítést végezni a tárolóregisztrációs adatbázisban.

Symptoms

  • Az üzembe helyezés meghiúsul ezzel: UNAUTHORIZED: authentication required.
  • Ez a hiba gyakran elfed más problémákat (például egy rossz képcímkét), mert a beállításjegyzék elutasítja a kérelmet, mielőtt ellenőrizni tudja a címkét.

Hol keresse: regisztrációs adatbázis hitelesítési diagnosztika

A Azure portálon nyissa meg a Tárolóalkalmazás>beállításai>tárolót (ellenőrizze a beállításjegyzék beállításait). Ezután lépjen a Container App>Diagnosztika és problémamegoldás lapra, és keressen rá a „registry” kifejezésre.

# Check configured registries
az containerapp show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> \
  --query "properties.configuration.registries" -o json

# Verify ACR credentials work
az acr login --name <AZURE_CONTAINER_REGISTRY_NAME>
docker pull <AZURE_CONTAINER_REGISTRY_NAME>.azurecr.io/<REPOSITORY_NAME>:<TAG>

Gyakori okok és megoldások

A probléma oka Hibajelzés Megoldás
Nincsenek konfigurálva regisztrációs tárbeli hitelesítő adatok UNAUTHORIZED Beállításjegyzékbeli hitelesítő adatok hozzáadása: az containerapp registry set -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --server <AZURE_CONTAINER_REGISTRY_NAME>.azurecr.io --identity system.
Rendszergazdai hitelesítő adatok le vannak tiltva az ACR-ben UNAUTHORIZED rendszergazdai felhasználóval Rendszergazdai felhasználó engedélyezése: az acr update -n <AZURE_CONTAINER_REGISTRY_NAME> --admin-enabled true. Javasolt: Inkább felügyelt identitást használjon az ACR-ből történő lekéréshez.
A felügyelt identitás nem rendelkezik AcrPull-szerepkörrel UNAUTHORIZED Rendelje hozzá az AcrPull szerepkört: az role assignment create --role AcrPull --assignee <PRINCIPAL_ID> --scope <ACR_RESOURCE_ID>.
Helytelen kiszolgálónév name unknown Ellenőrizze, hogy a regisztrációs kiszolgáló megegyezik-e az ACR-ével: <your-acr>.azurecr.io.

Diagnosztikai munkafolyamat összefoglalása

Ezt a sorozatot akkor használja, ha nem biztos abban, hogy mi nem sikerült:

  1. Futtassa az containerapp show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> -o json. Ellenőrizze provisioningState, provisioningErrorés latestRevisionName.

  2. Futtassa az containerapp revision list -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> -o table. Ha a lista üres, akkor a sikertelenséget rendszerkép-lekérési vagy sablonérvényesítési probléma okozza (rendszerkép-lekérési hibák és tárolóregisztráció hitelesítése). Ha létezik egy módosítás, lépjen tovább a 3. lépésre.

  3. Futtassa az containerapp revision show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --revision <REV> -o json. Jelölje be a(z) healthState, runningState, runningStateDetails és provisioningError elemet.

  4. Futtassa a(z) az containerapp logs show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --type system --tail 50 parancsot a platformszintű események, például a szondák meghibásodásai, az identitással kapcsolatos hibák és a titkok szinkronizálásával kapcsolatos problémák megtekintéséhez.

  5. Futtassa a(z) az containerapp logs show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --tail 100 elemet az alkalmazás stdout/stderr-kimenetének megtekintéséhez, beleértve a veremkivonatokat, a konfigurációs hibákat és a kapcsolódási hibákat.

  6. Futtassa az containerapp identity show -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> az identitáskonfiguráció ellenőrzéséhez, ha a hitelesítéssel kapcsolatos hibák megjelentek az előző lépésekben.

Problémák diagnosztizálása és megoldása a portálon

A Container Apps portál tartalmaz egy Diagnosztizálás és problémamegoldás panelt az automatizált diagnosztikával:

  1. Keresse meg a tárolóalkalmazást az Azure portálon.
  2. Válassza a Problémák diagnosztizálása és megoldása lehetőséget a bal oldali navigációs sávon.
  3. A keresőmező segítségével megkereshet bizonyos diagnosztikai elemeket (például „rendszerkép letöltése”, „állapotvizsgálat” vagy „ingress”).
  4. Válasszon ki egy hibaelhárítási kategória csempét az irányított elemzéshez.

Ez a panel az ajánlott kiindulópont az irányított diagnosztikához. Előfordulhat, hogy a cikk nem minden forgatókönyvét ismerteti, de automatikus ellenőrzéseket biztosít a gyakori problémákhoz.

Log Analytics lekérdezések a mélyebb vizsgálathoz

Ha a CLI kimenete és a portál diagnosztikai adatai nem elegendők, az alapul szolgáló naplókat közvetlenül a Log Analyticsben kérdezheti le. Az alábbi két lekérdezés a platformszintű hibák és a bejövő HTTP-hibák leggyakoribb kiindulópontjait fedi le.

Rendszerszintű hibák keresése

ContainerAppSystemLogs_CL
| where RevisionName_s == "<REV>"
| where Log_s contains "BackOff" or Log_s contains "Failed" or Log_s contains "Error"
  or Reason_s == "Unhealthy"
| project TimeGenerated, Reason_s, Log_s
| order by TimeGenerated desc
| take 50

Ez a lekérdezés a rendszerkép lekérési hibáit, mintavételi hibáit, kiépítési hibáit és egyéb platformeseményeket jeleníti meg.

HTTP-hibák keresése (a HTTP-naplók engedélyezését igényli)

A bejövő réteg HTTP-naplókat generál, és Ön külön engedélyezi őket. Engedélyezze ezeket a naplókat Azure Monitor diagnosztikai beállításokon keresztül a Container Apps által felügyelt környezetben. Miután engedélyezte ezeket, a ContainerAppHTTPLogs tábla megjelenik a Log Analyticsben. Eltarthat néhány percig, amíg a táblázat megjelenik.

ContainerAppHTTPLogs
| where TimeGenerated > ago(1h)
| where StatusCode >= 400
| project TimeGenerated, ContainerAppName, RevisionName, Method, Path,
  StatusCode, ResponseCodeDetails, RequestDuration, RequestId
| order by TimeGenerated desc
| take 100

Ez a lekérdezés szűri a bejövő réteg HTTP-naplóit, hogy csak a meghiúsult kérések jelenjenek meg (állapotkód: 400 vagy újabb) az elmúlt órában. Visszaadja az időbélyeget, az alkalmazás és a változat nevét, a HTTP-metódust és az elérési utat, a hibaállapot-kódot, egy ResponseCodeDetails mezőt, amely jelzi, hogy a hiba a tárolóból (via_upstream) vagy a platformról (route_not_found, ), a kérelem időtartamából származik-e, connection_timeoutvalamint egy egyedi kérésazonosítót, amellyel korrelálhat az alkalmazásnaplókkal.

További lekérdezésekért – beleértve a lassú kérelmek elemzését, a hibaarány revíziónkénti bontását, az egyes kérelmek nyomon követését és a legtöbb hibát okozó végpontokat – lásd: Naplók figyelése az Azure Container Appsben a Log Analytics használatával.