Az Azure Spring Apps gyakori problémáinak elhárítása

Feljegyzés

Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.

Ez a cikk a következőre vonatkozik: ✔️ Basic/Standard ✔️ Enterprise

Ez a cikk útmutatást nyújt az Azure Spring Apps fejlesztési problémáinak elhárításához. További információ: Azure Spring Apps – gyakori kérdések.

Rendelkezésre állással, teljesítménnyel és alkalmazással kapcsolatos problémák

Az alkalmazás nem indítható el

Ha az alkalmazás nem indul el, előfordulhat, hogy a végpontja nem csatlakoztatható, vagy néhány újrapróbálkozás után egy 502-et ad vissza.

Hibaelhárításhoz exportálja a naplókat az Azure Log Analyticsbe. A Spring-alkalmazásnaplók táblájának neve AppPlatformLogsforSpring. További információ: Naplók és metrikák elemzése diagnosztikai beállításokkal.

A naplókban a következő hibaüzenet jelenhet meg: org.springframework.context.ApplicationContextException: Unable to start web server

Az üzenet két valószínű probléma egyikét jelzi:

  • Hiányzik az egyik bab vagy annak egyik függősége.
  • A bean egyik tulajdonsága hiányzik vagy érvénytelen. Ebben az esetben a "java.lang.IllegalArgumentException" jelenik meg.

A szolgáltatáskötések alkalmazásindítási hibákat is okozhatnak. A naplók lekérdezéséhez használjon a kötött szolgáltatásokhoz kapcsolódó kulcsszavakat. Tegyük fel például, hogy az alkalmazás egy helyi rendszeridőre beállított MySQL-példányhoz van kötéssel. Ha az alkalmazás nem indul el, a következő hibaüzenet jelenhet meg a naplóban:

"java.sql.SQLException: A kiszolgáló időzónájának "Koordinált egyetemes idő" értéke ismeretlen, vagy egynél több időzónát jelöl."

A hiba kijavításához lépjen a server parameters MySQL-példányra, és módosítsa az értéket a time_zone SYSTEMértékről +0:00 értékre.

Az alkalmazás összeomlik, vagy váratlan hibát ad vissza

Az alkalmazás összeomlásának hibakeresésekor először ellenőrizze az alkalmazás futó állapotát és felderítési állapotát. Ehhez nyissa meg az Azure Portal alkalmazásait, és győződjön meg arról, hogy az összes alkalmazás állapota fut és fel van állítva.

  • Ha az állapot fut , de a felderítési állapot nem UP, lépjen a "Az alkalmazás nem regisztrálható" szakaszra.

  • Ha a felderítési állapot UP, lépjen a Metrikák elemre az alkalmazás állapotának ellenőrzéséhez. Vizsgálja meg a következő metrikákat:

    • tomcat.global.error:

      Itt minden Spring-alkalmazás kivételt meg kell számolni. Ha ez a szám nagy, lépjen az Azure Log Analyticsbe az alkalmazásnaplók vizsgálatához.

    • jvm.memory.max:

      Az alkalmazás számára elérhető maximális memóriamennyiség. Előfordulhat, hogy az összeg nem definiált, vagy idővel megváltozhat, ha meg van adva. Ha meg van adva, a felhasznált és a lekötött memória mennyisége mindig kisebb vagy egyenlő a maximális értéknél. Előfordulhat azonban, hogy a memóriafoglalás meghiúsul egy OutOfMemoryError üzenettel, ha a lefoglalás megkísérli növelni a felhasznált memóriát, például a lekötött >memóriát, még akkor is, ha a felhasznált <= maximális érték továbbra is igaz. Ilyen esetben próbálja meg növelni a maximális halomméretet a -Xmx paraméter használatával.

    • jvm.memory.used:

      Az alkalmazás által jelenleg használt bájtokban lévő memória mennyisége. Egy normál terhelésű Java-alkalmazás esetében ez a metrikasorozat egy fűrészlapmintát alkot, ahol a memóriahasználat folyamatosan nő és kis lépésekben csökken, és hirtelen sokat csökken, majd a minta ismét megjelenik. Ez a metrikasorozat a Java virtuális gépen belüli szemétgyűjtés miatt fordul elő, ahol a gyűjtési műveletek a fűrészgép-mintán lévő cseppeket jelölik.

      Ez a metrika fontos a memóriaproblémák azonosításához, például:

      • Egy memóriarobbanás az elején.
      • Egy adott logikai útvonal túlfeszültség-memóriafoglalása.
      • Fokozatos memóriavesztés.

    További információ: Metrikák.

    Feljegyzés

    Ezek a metrikák csak Spring Boot-alkalmazásokhoz érhetők el. A metrikák engedélyezéséhez adja hozzá a spring-boot-starter-actuator függőséget. További információ: Az alkalmazás kezelése és monitorozása a Spring Boot Actuator használatával című szakasz.

  • Ha az alkalmazás nem indul el, ellenőrizze, hogy az alkalmazás rendelkezik-e érvényes jvm-paraméterekkel. Ha a jvm-memória túl magas, a következő hibaüzenet jelenhet meg a naplókban:

    "a szükséges memória 2728741K nagyobb, mint 2000M a foglaláshoz"

Az Azure Log Analyticsről további információt a Log Analytics használatának első lépései az Azure Monitorban című témakörben talál.

Az alkalmazás CPU- vagy memóriahasználata magas

Ha az alkalmazás magas processzor- vagy memóriahasználatot tapasztal, két dolog egyike igaz:

  • Minden alkalmazáspéldány magas processzor- vagy memóriahasználatot tapasztal.
  • Egyes alkalmazáspéldányok magas processzor- vagy memóriahasználatot tapasztalnak.

Annak megállapításához, hogy melyik helyzet alkalmazható, kövesse az alábbi lépéseket:

  1. Lépjen a Metrikák elemre, és válassza ki a szolgáltatás CPU-kihasználtságának százalékos vagy a használt szolgáltatásmemóriát.
  2. Adjon hozzá egy App= szűrőt annak megadásához, hogy melyik alkalmazást szeretné figyelni.
  3. A metrikák felosztása példány szerint.

Ha minden példány magas processzor- vagy memóriahasználatot tapasztal, akkor vagy fel kell skáláznia az alkalmazást, vagy fel kell skáláznia a processzor- vagy memóriahasználatot. További információ : Oktatóanyag: Alkalmazások skálázása az Azure Spring Appsben.

Ha egyes példányok magas processzor- vagy memóriahasználatot tapasztalnak, ellenőrizze a példány állapotát és felderítési állapotát.

További információ: Metrikák az Azure Spring Appshez.

Ha az összes példány működik, lépjen az Azure Log Analyticsbe az alkalmazásnaplók lekérdezéséhez és a kódlogika áttekintéséhez. Ez az áttekintés segít megállapítani, hogy ezek közül bármelyik hatással lehet-e a skálázás particionálására. További információ: Naplók és metrikák elemzése diagnosztikai beállításokkal.

Az Azure Log Analyticsről további információt a Log Analytics használatának első lépései az Azure Monitorban című témakörben talál. A naplók lekérdezése a Kusto lekérdezési nyelv használatával.

Ellenőrzőlista a Spring-alkalmazás Azure Spring Appsben való üzembe helyezéséhez

Az alkalmazás előkészítése előtt győződjön meg arról, hogy az megfelel a következő feltételeknek:

  • Az alkalmazás helyileg futtatható a java-futtatókörnyezet megadott verziójával.
  • A környezeti konfiguráció (CPU/RAM/Instances) megfelel az alkalmazásszolgáltató által beállított minimális követelménynek.
  • A konfigurációelemek a várt értékekkel rendelkeznek. További információ: Spring Cloud Config Server-példány beállítása a szolgáltatáshoz. A nagyvállalati csomagról az Alkalmazáskonfigurációs szolgáltatás használata című témakörben olvashat.
  • A környezeti változók a várt értékekkel rendelkeznek.
  • A JVM-paraméterek a várt értékekkel rendelkeznek.
  • Javasoljuk, hogy tiltsa le vagy távolítsa el a beágyazott Config Server - és Spring Service Registry-szolgáltatásokat az alkalmazáscsomagból.
  • Ha vannak szolgáltatáskötéssel kötni kívánt Azure-erőforrások, ellenőrizze, hogy a célerőforrások működnek-e.

Konfigurálás és felügyelet

Problémába ütköztem egy Azure Spring Apps-szolgáltatáspéldány létrehozásával kapcsolatban

Ha azure Spring Apps-szolgáltatáspéldányt állít be az Azure Portal használatával, az Azure Spring Apps elvégzi az ön számára az ellenőrzést.

Ha azonban az Azure CLI vagy az Azure Resource Manager sablon használatával próbálja beállítani az Azure Spring Apps szolgáltatáspéldányt, ellenőrizze, hogy megfelel-e a következő feltételeknek:

  • Az előfizetés aktív.
  • Az Azure Spring Apps a használt régióban érhető el. További információkért tekintse meg az Azure Spring Apps gyakori kérdéseit.
  • A példány erőforráscsoportja már létrejött.
  • Az erőforrás neve megfelel az elnevezési szabálynak. A név csak kisbetűket, számokat és kötőjeleket tartalmazhat. Az első karakternek betűnek kell lennie. Az utolsó karakternek betűnek vagy számnak kell lennie. Az értéknek 2–32 karaktert kell tartalmaznia.

Ha a Resource Manager-sablonnal szeretné beállítani az Azure Spring Apps szolgáltatáspéldányt, először tekintse meg az Azure Resource Manager-sablonok szerkezetét és szintaxisát.

Az Azure Spring Apps szolgáltatáspéldány neve altartománynév azuremicroservices.iokérésére szolgál, ezért a beállítás meghiúsul, ha a név ütközik egy meglévővel. További részleteket a tevékenységnaplókban találhat.

Nem tudok .NET Core-alkalmazást üzembe helyezni

Az Azure Portal vagy a Resource Manager-sablon használatával nem tölthet fel .zip fájlt egy .NET Core Steeltoe-alkalmazáshoz.

Amikor az alkalmazáscsomagot az Azure CLI használatával telepíti, az Azure CLI rendszeres időközönként lekérdezi az üzembe helyezés állapotát, és végül megjeleníti az üzembe helyezés eredményét.

Győződjön meg arról, hogy az alkalmazás a megfelelő .zip fájlformátumban van csomagolva. Ha nincs megfelelően csomagolva, a folyamat nem válaszol, vagy hibaüzenet jelenik meg.

Nem tudok JAR-csomagot üzembe helyezni

Az Azure Portal vagy a Resource Manager-sablon használatával nem tölthet fel Java-archívumfájlt (JAR)/forráscsomagot.

Amikor az alkalmazáscsomagot az Azure CLI használatával telepíti, az Azure CLI rendszeres időközönként lekérdezi az üzembe helyezés állapotát, és végül megjeleníti az üzembe helyezés eredményét.

Ha a lekérdezés megszakad, továbbra is használhatja a következő parancsot az üzembehelyezési naplók lekéréséhez:

az spring app show-deploy-log --name <app-name>

Győződjön meg arról, hogy az alkalmazás a megfelelő végrehajtható JAR formátumban van csomagolva. Ha nem megfelelően van csomagolva, a következő példához hasonló hibaüzenet jelenik meg: Error: Invalid or corrupt jarfile /jar/11111111-1111-1111-1111-111111111111.

Nem tudok forráscsomagot üzembe helyezni

A JAR/forráscsomag nem tölthető fel az Azure Portal vagy a Resource Manager-sablon használatával.

Amikor az alkalmazáscsomagot az Azure CLI használatával telepíti, az Azure CLI rendszeres időközönként lekérdezi az üzembe helyezés állapotát, és végül megjeleníti az üzembe helyezés eredményét.

Ha a lekérdezés megszakad, továbbra is használhatja a következő parancsot a buildelési és üzembehelyezési naplók lekéréséhez:

az spring app show-deploy-log --name <app-name>

Egy Azure Spring Apps-szolgáltatáspéldány azonban egyszerre csak egy buildelési feladatot indíthat el egy forráscsomaghoz. További információ: Alkalmazás üzembe helyezése és átmeneti környezet beállítása az Azure Spring Appsben.

Az alkalmazás nem regisztrálható

A legtöbb esetben ez a helyzet akkor fordul elő, ha a szükséges függőségek és szolgáltatásfelderítés nincs megfelelően konfigurálva a Projektobjektum-modell (POM) fájlban. Miután konfigurálta, a szolgáltatásregisztrációs adatbázis beépített kiszolgálóvégpontja környezeti változóként lesz injektálva az alkalmazásba. Az alkalmazások ezután regisztrálják magukat a Service Registry-kiszolgálón, és felderítenek más függő alkalmazásokat.

Várjon legalább két percet, mielőtt egy újonnan regisztrált példány elkezdi fogadni a forgalmat.

Ha egy meglévő Spring Cloud-alapú megoldást migrál az Azure-ba, mindenképpen távolítsa el vagy tiltsa le az alkalmi szolgáltatásregisztrációs adatbázist és a konfigurációs kiszolgálópéldányokat , hogy elkerülje az Azure Spring Apps által biztosított felügyelt példányokkal való ütközést.

A Service Registry ügyfélnaplóit az Azure Log Analyticsben is ellenőrizheti. További információ: Naplók és metrikák elemzése diagnosztikai beállításokkal

Az Azure Log Analyticsről további információt a Log Analytics használatának első lépései az Azure Monitorban című témakörben talál. A naplók lekérdezése a Kusto lekérdezési nyelv használatával.

Meg szeretném vizsgálni az alkalmazás környezeti változóit

A környezeti változók tájékoztatják az Azure Spring Apps-keretrendszert, hogy az Azure megértse, hol és hogyan konfigurálhatja az alkalmazást alkotó szolgáltatásokat. A környezeti változók helyességének biztosítása a lehetséges problémák elhárításának első lépése. A Spring Boot Actuator végpont használatával áttekintheti a környezeti változókat.

Figyelmeztetés

Ez az eljárás a tesztvégpont használatával teszi elérhetővé a környezeti változókat. Ne folytassa, ha a tesztvégpont nyilvánosan elérhető, vagy ha tartománynevet rendelt az alkalmazáshoz.

  1. Odamegy https://<your-application-test-endpoint>/actuator/health.

    A végpont engedélyezését {"status":"UP"} jelző válaszhoz hasonló válasz. Ha a válasz negatív, vegye fel a következő függőséget a POM.xml fájlba:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
  2. Ha engedélyezve van a Spring Boot Actuator végpont, nyissa meg az Azure Portalt, és keresse meg az alkalmazás konfigurációs oldalát. Adjon hozzá egy környezeti változót a névvel MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE és az értékkel *.

  3. Indítsa újra az alkalmazást.

  4. Nyissa meg https://<your-application-test-endpoint>/actuator/env és vizsgálja meg a választ. Ennek így kell kinéznie:

    {
        "activeProfiles": [],
        "propertySources": {,
            "name": "server.ports",
            "properties": {
                "local.server.port": {
                    "value": 1025
                }
            }
        }
    }
    

Keresse meg a gyermekcsomópontot.systemEnvironment Ez a csomópont tartalmazza az alkalmazás környezeti változóit.

Fontos

Ne felejtse el megfordítani a környezeti változók expozícióját, mielőtt az alkalmazást elérhetővé tenné a nyilvánosság számára. Nyissa meg az Azure Portalt, keresse meg az alkalmazás konfigurációs oldalát, és törölje a környezeti változót: MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE.

Nem találom az alkalmazás metrikáit vagy naplóit

Az Alkalmazások lapra lépve győződjön meg arról, hogy az alkalmazás állapota fut és felfelé fut.

Ellenőrizze, hogy a JMX engedélyezve van-e az alkalmazáscsomagban. Ez a funkció a konfigurációs tulajdonsággal spring.jmx.enabled=trueengedélyezhető.

Ellenőrizze, hogy engedélyezve van-e a spring-boot-actuator függőség az alkalmazáscsomagban, és hogy sikeresen elindul-e.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Ha az alkalmazásnaplók archiválhatók egy tárfiókba, de nem küldhetők el az Azure Log Analyticsnek, ellenőrizze, hogy helyesen állította-e be a munkaterületet. További információ: Log Analytics-munkaterület létrehozása. Vegye figyelembe azt is, hogy az alapszintű csomag nem biztosít szolgáltatásiszint-szerződést (SLA). További információ: Szolgáltatásiszint-szerződések (SLA) az online szolgáltatásokhoz.

Vállalati csomag

Hiba 112039: Nem sikerült vásárolni az Azure Marketplace-en

Az Azure Spring Apps Enterprise-csomagpéldány létrehozása "112039" hibakóddal meghiúsul. További információkért tekintse meg a részletes hibaüzenetet a következő listában:

  • "Nem sikerült vásárolni az Azure Marketplace-en, mert a Microsoft.SaaS RP nincs regisztrálva az Azure-előfizetésben.": Az Azure Spring Apps Enterprise-csomag megvásárol egy SaaS-ajánlatot a VMware-től.

    Az Azure Spring Apps Enterprise-példány létrehozása előtt regisztrálnia kell az Microsoft.SaaS erőforrás-szolgáltatót. Tekintse meg, hogyan regisztrálhat erőforrás-szolgáltatót.

  • "Nem sikerült betölteni a katalógus termék vmware-inc.azure-spring-cloud-vmware-tanzu-2 termékét az Azure-előfizetések piacán.": Az Azure-előfizetés számlázási fiókcíme nem a támogatott helyen található.

    További információkért lásd a "Location" (Hely>) piac számára nem elérhető csomagok című szakaszt.<

  • "Nem sikerült vásárolni az Azure Marketplace-en az aláírás ellenőrzése miatt a Marketplace jogi szerződésében. Ellenőrizze, hogy az Azure-előfizetés elfogadta-e a vmware-inc.azure-spring-cloud-vmware-tanzu-2.asa-ent-hr-mtr" feltételeket.: Az Azure-előfizetése nem írta alá az ajánlat feltételeit, és nem tervezi a vásárlást.

    Lépjen az Azure-előfizetésére, és futtassa a következő Azure CLI-parancsot a feltételek elfogadásához:

    az term accept \
        --publisher vmware-inc \
        --product azure-spring-cloud-vmware-tanzu-2 \
        --plan asa-ent-hr-mtr
    

    Ha ez nem segít, az alábbi információkkal kapcsolatba léphet a támogatási csapattal.

    • AZURE_TENANT_ID: az Azure-előfizetést üzemeltető Azure-bérlő azonosítója
    • AZURE_SUBSCRIPTION_ID: az Azure Spring Apps-példány létrehozásához használt Azure-előfizetés azonosítója
    • SPRING_CLOUD_NAME: a sikertelen példány neve
    • ERROR_MESSAGE: a megfigyelt hibaüzenet

Nincs elérhető csomag a piac "<Hely>"

Amikor felkeresi az Azure Spring Apps Enterprise-t az Azure Marketplace-en, az azt jelentheti, hogy "Nincs elérhető csomag a piaci "Hely>"< kifejezéshez, mint az alábbi képen.

Képernyőkép az Azure Portalról, amely azt mutatja, hogy a

Az Azure Spring Apps Enterprise-csomagban az ügyfeleknek egy Azure Marketplace-ajánlaton keresztül kell fizetniük a Tanzu-összetevők licencéért. Az Azure Marketplace-en való vásárláshoz az Azure-előfizetéshez tartozó számlázási fiók országának vagy régiójának az SaaS-ajánlat által támogatott földrajzi helyeken kell lennie.

Az Azure Spring Apps Enterprise mostantól minden olyan földrajzi helyet támogat, amelyet az Azure Marketplace támogat. Tekintse meg a kereskedelmi piactér földrajzi elérhetőségének és pénznemtámogatásának támogatott földrajzi helyek című szakaszát.

Ha rendszergazdai hozzáféréssel rendelkezik, megtekintheti az előfizetéséhez tartozó számlázási fiókot. Lásd a számlázási fiókok megtekintését.

VMware Spring Runtime-támogatásra van szükségem (csak vállalati csomagban)

A nagyvállalati csomag beépített VMware Spring Runtime-támogatással rendelkezik, így támogatási jegyeket nyithat meg a VMware-nek, ha úgy gondolja, hogy a probléma a VMware Spring Runtime-támogatás hatókörébe tartozik. A VMware Spring Runtime támogatásának jobb megértéséhez tekintse meg a VMware Spring Runtime-t. A támogatási szolgáltatás regisztrálásával és használatával kapcsolatos további információkért tekintse meg a VMware nagyvállalati gyik támogatási szakaszát. Egyéb problémák esetén nyisson meg egy támogatási jegyet a Microsoftnál.

Következő lépések