Megosztás a következőn keresztül:


Oktatóanyag: Java Spring Boot-webalkalmazás létrehozása a Linuxon és az Azure Cosmos DB-n futó Azure-alkalmazás Szolgáltatással

Ebben az oktatóanyagban megtudhatja, hogyan hozhat létre, konfigurálhat és helyezhet üzembe egy biztonságos Spring Boot-alkalmazást Azure-alkalmazás Szolgáltatásban, amely egy Azure-beli MongoDB-adatbázishoz (valójában egy Cosmos DB-adatbázishoz és a MongoDB API-hoz) csatlakozik. Ha végzett, egy Java SE-alkalmazás fog futni a Linuxon futó Azure-alkalmazás szolgáltatásban.

Képernyőkép arról, hogy a Spring Boot-alkalmazás adatokat tárol a Cosmos DB-ben.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Hozzon létre egy biztonságos alapértelmezett architektúrát Azure-alkalmazás Szolgáltatáshoz és az Azure Cosmos DB-hez a MongoDB API-val.
  • A kapcsolati titkos kulcsok biztonságossá tételéhez használjon felügyelt identitást és Key Vault-hivatkozásokat.
  • Spring Boot-mintaalkalmazás üzembe helyezése az App Service-ben egy GitHub-adattárból.
  • Az App Service alkalmazásbeállításainak elérése az alkalmazáskódban.
  • Végezze el a frissítéseket, és telepítse újra az alkalmazáskódot.
  • Diagnosztikai naplók streamelése az App Service-ből.
  • Az alkalmazás kezelése az Azure Portalon.
  • Azonos architektúra kiépítése és üzembe helyezése az Azure Developer CLI használatával.
  • Optimalizálja a fejlesztési munkafolyamatot a GitHub Codespaces és a GitHub Copilot használatával.

Előfeltételek

  • Egy Azure-fiók, aktív előfizetéssel. Ha nem rendelkezik Azure-fiókkal, ingyenesen létrehozhat egyet.
  • Egy GitHub-fiók. ingyenesen is beszerezhet egyet.
  • Java-ismeretek a Spring Framework fejlesztésével.
  • (Nem kötelező) A GitHub Copilot kipróbálásához egy GitHub Copilot-fiók. 30 napos ingyenes próbaverzió érhető el.
  • Egy Azure-fiók, aktív előfizetéssel. Ha nem rendelkezik Azure-fiókkal, ingyenesen létrehozhat egyet.
  • Az Azure Developer CLI telepítve van. Kövesse az Azure Cloud Shell lépéseit, mert már telepítve van az Azure Developer CLI.
  • Java-ismeretek a Spring Framework fejlesztésével.
  • (Nem kötelező) A GitHub Copilot kipróbálásához egy GitHub Copilot-fiók. 30 napos ingyenes próbaverzió érhető el.

Ugrás a végére

Ebben az oktatóanyagban gyorsan üzembe helyezheti a mintaalkalmazást, és megtekintheti, hogy fut-e az Azure-ban. Futtassa a következő parancsokat az Azure Cloud Shellben, és kövesse a következő utasításokat:

mkdir msdocs-spring-boot-mongodb-sample-app
cd msdocs-spring-boot-mongodb-sample-app
azd init --template msdocs-spring-boot-mongodb-sample-app
azd up

1. A minta futtatása

Először állítson be egy adatvezérelt mintaalkalmazást kiindulási pontként. Az Ön kényelme érdekében a mintaadattár tartalmaz egy fejlesztői tárolókonfigurációt. A fejlesztői tároló mindent tartalmaz, ami egy alkalmazás fejlesztéséhez szükséges, beleértve a MongoDB-adatbázist, a gyorsítótárat és a mintaalkalmazás által igényelt összes környezeti változót. A fejlesztői tároló egy GitHub-kódtérben futtatható, ami azt jelenti, hogy a mintát bármely számítógépen futtathatja webböngészővel.

1. lépés: Új böngészőablakban:

  1. Jelentkezzen be a GitHub-fiókjába.
  2. Navigáljon a https://github.com/Azure-Samples/msdocs-spring-boot-mongodb-sample-app/fork lapra
  3. Törölje a jelölést : Csak a főág másolása. Az összes ágat szeretnéd.
  4. Válassza az Elágazás létrehozása lehetőséget.

2. lépés: A GitHub-elágazásban:

  1. Válassza ki a kezdő ág fő>starter-no-infra elemét. Ez az ág csak a mintaprojektet tartalmazza, és nincs Azure-nal kapcsolatos fájl vagy konfiguráció.
  2. Válassza a Kód>létrehozása kódteret a starter-no-infra rendszeren. A kódtér beállítása néhány percet vesz igénybe.

3. lépés: A kódtér termináljában:

  1. Futtassa az mvn package spring-boot:run parancsot.
  2. Amikor megjelenik az értesítésYour application running on port 8080 is available., válassza a Megnyitás böngészőben lehetőséget. A mintaalkalmazásnak egy új böngészőlapon kell megjelennie. A Jetty-kiszolgáló leállításához írja be a következőt Ctrl+C: .

Tipp.

Erről az adattárról a GitHub Copilotot is megkérdezheti. Példa:

  • @workspace Mit tesz ez a projekt?
  • @workspace Hogyan csatlakozik az alkalmazás az adatbázishoz?
  • @workspace Mit tesz a .devcontainer mappa?

Problémákat tapasztal? Tekintse meg a hibaelhárítási szakaszt.

2. Az App Service és a Cosmos DB létrehozása

Először hozza létre az Azure-erőforrásokat. Az oktatóanyagban használt lépések az App Service-t és az Azure Cosmos DB-t is tartalmazó, alapértelmezés szerint biztonságos erőforrások készletét hozzák létre. A létrehozási folyamathoz a következőket kell megadnia:

  • A webalkalmazás neve . Ez az alkalmazás https://<app-name>-<hash>.<region>.azurewebsites.netDNS-nevének részeként használatos.
  • A régió , amely fizikailag futtatja az alkalmazást a világon. Az alkalmazás DNS-nevének részeként is használják.
  • Az alkalmazás futtatókörnyezeti vereme . Itt választhatja ki az alkalmazáshoz használni kívánt Java-verziót.
  • Az alkalmazás üzemeltetési terve . Ez a tarifacsomag, amely tartalmazza az alkalmazás funkcióit és skálázási kapacitását.
  • Az alkalmazás erőforráscsoportja . Az erőforráscsoportokkal (logikai tárolóban) csoportosíthatja az alkalmazáshoz szükséges Összes Azure-erőforrást.

Jelentkezzen be az Azure Portalra, és kövesse az alábbi lépéseket a Azure-alkalmazás szolgáltatás erőforrásainak létrehozásához.

1. lépés: Az Azure Portalon:

  1. Írja be a "webalkalmazás-adatbázis" kifejezést az Azure Portal tetején található keresősávba.
  2. Válassza ki a Web App + Adatbázis címkével ellátott elemet a Marketplace címsora alatt. A létrehozási varázslót közvetlenül is megnyithatja.

2. lépés: A Webalkalmazás létrehozása + Adatbázis lapon töltse ki az űrlapot az alábbiak szerint.

  1. Erőforráscsoport: Válassza az Új létrehozása lehetőséget, és használja az msdocs-spring-cosmosdb-tutorial nevet.
  2. Régió: Bármely Önhöz közeli Azure-régió.
  3. Név: msdocs-spring-cosmosdb-XYZ , ahol az XYZ tetszőleges három véletlenszerű karakter. Ennek a névnek az Azure-on belül egyedinek kell lennie.
  4. Futtatókörnyezeti verem: Java 21.
  5. Java webkiszolgáló verem: Java SE (Embedded Web Server).
  6. Motor: Cosmos DB API a MongoDB-hez. A Cosmos DB egy teljes körűen felügyelt NoSQL-, relációs és vektoradatbázis szolgáltatásként az Azure-ban.
  7. Üzemeltetési terv: Alapszintű. Ha készen áll, felskálázhat egy éles tarifacsomagra.
  8. Válassza az Áttekintés + létrehozás lehetőséget.
  9. Az ellenőrzés befejezése után válassza a Létrehozás lehetőséget.

3. lépés: Az üzembe helyezés néhány percet vesz igénybe. Az üzembe helyezés befejeződése után válassza az Erőforrás megnyitása gombot. Közvetlenül az App Service-alkalmazásba kerül, de a következő erőforrások jönnek létre:

  • Erőforráscsoport: Az összes létrehozott erőforrás tárolója.
  • App Service-csomag: Meghatározza az App Service számítási erőforrásait. Létrejön egy Linux-csomag az alapszinten .
  • App Service: Az alkalmazást jelöli, és az App Service-csomagban fut.
  • Virtuális hálózat: Integrálva az App Service alkalmazással, és elkülöníti a háttérhálózat forgalmát.
  • Azure Cosmos DB: Csak a privát végpontja mögött érhető el. Az adatbázisfiókban létrejön egy adatbázis.
  • Privát végpontok: Hozzáférési végpontok az adatbázis-kiszolgálóhoz és a Redis-gyorsítótárhoz a virtuális hálózaton.
  • saját DNS zónák: Engedélyezze az adatbázis-kiszolgáló és a Redis-gyorsítótár DNS-feloldását a virtuális hálózaton.

Problémákat tapasztal? Tekintse meg a hibaelhárítási szakaszt.

3. A kapcsolat titkos kulcsának védelme

A létrehozási varázsló már alkalmazásbeállításként létrehozta a kapcsolati sztringet. A biztonsági ajánlott eljárás azonban az, hogy a titkos kulcsokat teljesen kizárja az App Service-ből. A titkos kulcsokat egy kulcstartóba helyezi át, és a Service Connectors segítségével kulcstartó-referenciára módosítja az alkalmazásbeállítást.

1. lépés: Az App Service oldalán:

  1. A bal oldali menüben válassza a Beállítások > környezet változói lehetőséget.
  2. A AZURE_COSMOS_CONNECTIONSTRING mellett válassza az Érték megjelenítése lehetőséget. Ez a kapcsolati sztring lehetővé teszi a privát végpont mögött biztonságos Cosmos DB-adatbázishoz való csatlakozást. A titkos kód azonban közvetlenül az App Service-alkalmazásban lesz mentve, ami nem a legjobb. Ezt meg fogja változtatni.

2. lépés: Kulcstartó létrehozása a titkos kódok biztonságos kezeléséhez.

  1. A felső keresősávon írja be a "key vault" kifejezést, majd válassza a Marketplace>Key Vault lehetőséget.
  2. Az erőforráscsoportban válassza az msdocs-spring-cosmosdb-tutorial lehetőséget.
  3. A Key Vault nevében írjon be egy nevet, amely csak betűkből és számokból áll.
  4. A Régióban állítsa a mintahelyre erőforráscsoportként.

3. lépés:

  1. Válassza a Hálózatkezelés lapot.
  2. Törölje a jelölést a nyilvános hozzáférés engedélyezése jelölőnégyzetből.
  3. Válassza a Privát végpont létrehozása lehetőséget.
  4. Az erőforráscsoportban válassza az msdocs-spring-cosmosdb-tutorial lehetőséget.
  5. A Key Vault nevében írjon be egy nevet, amely csak betűkből és számokból áll.
  6. A Régióban állítsa a mintahelyre erőforráscsoportként.
  7. A párbeszédpanel Hely területén válassza ki ugyanazt a helyet, mint az App Service-alkalmazás.
  8. Az erőforráscsoportban válassza az msdocs-spring-cosmosdb-tutorial lehetőséget.
  9. Írja be az msdocs-spring-cosmosdb-XYZVaultEndpoint nevet.
  10. A virtuális hálózatban válassza az msdocs-spring-cosmosdb-XYZVnet elemet.
  11. Az alhálózatban msdocs-spring-cosmosdb-XYZSubnet.
  12. Kattintson az OK gombra.
  13. Válassza a Felülvizsgálat + létrehozás, majd a Létrehozás lehetőséget. Várja meg, amíg a Key Vault üzembe helyezése befejeződik. A következőt kell látnia: "Az üzembe helyezés befejeződött".

4. lépés:

  1. A felső keresősávba írja be az msdocs-spring-cosmosdb, majd az msdocs-spring-cosmosdb-XYZ nevű App Service-erőforrást.
  2. Az App Service lap bal oldali menüjében válassza a Beállítások > szolgáltatás-összekötő lehetőséget. Már van egy összekötő, amelyet az alkalmazáslétrehozó varázsló hozott létre Önnek.
  3. Jelölje be az összekötő melletti jelölőnégyzetet, majd válassza a Szerkesztés lehetőséget.
  4. Az Alapszintű beállítások lapon állítsa az ügyféltípust SpringBoot értékre. Ez a beállítás létrehozza a Spring Boot-specifikus környezeti változókat.
  5. Válassza a Hitelesítés lapot.
  6. Válassza a Titkos kulcs tárolása lehetőséget a Key Vaultban.
  7. A Key Vault-kapcsolat területen válassza az Új létrehozása lehetőséget. A szerkesztési párbeszédpanel tetején megnyílik a Kapcsolat létrehozása párbeszédpanel.

5. lépés: A Key Vault-kapcsolat Kapcsolat létrehozása párbeszédpaneljén:

  1. A Key Vaultban válassza ki a korábban létrehozott kulcstartót.
  2. Válassza a Felülvizsgálat és létrehozás lehetőséget. Látnia kell, hogy a rendszer által hozzárendelt felügyelt identitás ki van jelölve.
  3. Amikor az ellenőrzés befejeződött, válassza a Létrehozás lehetőséget.

6. lépés: Ismét megjelenik az alapértelmezettConnector szerkesztési párbeszédpanelje.

  1. A Hitelesítés lapon várja meg, amíg létrejön a Key Vault-összekötő. Ha elkészült, a Key Vault kapcsolat legördülő listája automatikusan kiválasztja azt.
  2. Válassza a Tovább: Hálózatkezelés lehetőséget.
  3. Válassza a Tűzfalszabályok konfigurálása lehetőséget a célszolgáltatáshoz való hozzáférés engedélyezéséhez. Ha a "Nincs privát végpont a célszolgáltatáson" üzenet jelenik meg, hagyja figyelmen kívül. Az alkalmazáslétrehozás varázsló már egy privát végponttal biztosította a Cosmos DB-adatbázist.
  4. Válassza a Mentés lehetőséget. Várja meg, amíg megjelenik a frissítés sikeres értesítése.

7. lépés: A módosítások ellenőrzése:

  1. A bal oldali menüben válassza ismét a Környezeti változók lehetőséget.
  2. Győződjön meg arról, hogy a spring.data.mongodb.uri alkalmazásbeállítás létezik. Az alapértelmezett összekötő létrehozta Önnek, és a Spring Boot-alkalmazás már használja a változót.
  3. Az alkalmazásbeállítás mellett válassza az Érték megjelenítése lehetőséget. Az értéknek meg kell lennie @Microsoft.KeyVault(...), ami azt jelenti, hogy ez egy kulcstartó-hivatkozás , mert a titkos kulcs most már a kulcstartóban van kezelve.

Problémákat tapasztal? Tekintse meg a hibaelhárítási szakaszt.

4. Mintakód üzembe helyezése

Ebben a lépésben konfigurálja a GitHub üzembe helyezését a GitHub Actions használatával. Ez csak egy az App Service-ben történő üzembe helyezés számos módja közül, de nagyszerű módja annak is, hogy folyamatos integrációt nyújtsunk az üzembe helyezési folyamatba. Alapértelmezés szerint a GitHub-adattár minden git push eleme elindítja a buildelési és üzembe helyezési műveletet.

1. lépés: A bal oldali menüben válassza az Üzembe helyezési>központ lehetőséget.

2. lépés: Az Üzembehelyezési központ lapon:

  1. A Forrás területen válassza a GitHubot. Alapértelmezés szerint a GitHub Actions van kiválasztva buildszolgáltatóként.
  2. Jelentkezzen be a GitHub-fiókjába, és kövesse az utasításokat az Azure engedélyezéséhez.
  3. A Szervezetben válassza ki a fiókját.
  4. Az Adattárban válassza az msdocs-spring-boot-mongodb-sample-app lehetőséget.
  5. Az Ágban válassza a starter-no-infra lehetőséget. Ez ugyanaz az ág, amelyben a mintaalkalmazással dolgozott, azure-ral kapcsolatos fájlok és konfigurációk nélkül.
  6. Hitelesítési típus esetén válassza a felhasználó által hozzárendelt identitást.
  7. A felső menüben válassza a Mentés lehetőséget. Az App Service véglegesít egy munkafolyamat-fájlt a kiválasztott GitHub-adattárba a .github/workflows címtárban. Alapértelmezés szerint az üzembehelyezési központ létrehoz egy felhasználó által hozzárendelt identitást a munkafolyamathoz a Microsoft Entra (OIDC-hitelesítés) használatával történő hitelesítéshez. Alternatív hitelesítési lehetőségekért lásd : Üzembe helyezés az App Service-ben a GitHub Actions használatával.

3. lépés:

  1. Válassza a Naplók lapot. Láthatja, hogy egy új üzembe helyezés már lefutott, de az állapot sikertelen.
  2. Válassza a Build/Deploy Logs lehetőséget. Megnyílik egy böngészőlap az elágaztatott adattár Műveletek lapjára a GitHubon. A széljegyzetekben a hiba The string 'java21' is not valid SeVer notation for a Java versionjelenik meg. Ha szeretné, a lap sikertelen buildelési lépését választva további információt kaphat.

4. lépés: A hiba azt mutatja, hogy hiba történt a GitHub-munkafolyamat során. A javításhoz először kérje le a legújabb módosításokat a kódtérbe. Futtassa git pull origin starter-no-infraújra a mintaelágazás GitHub-kódterében. Ezzel lekéri az újonnan véglegesített munkafolyamat-fájlt a kódtérbe.

5. lépés (1. lehetőség: a GitHub Copilottal):

  1. Indítsa el az új csevegési munkamenetet a Csevegés nézet kiválasztásával, majd válassza a +lehetőséget.
  2. Kérdezze meg a következőt: "@workspace Miért jelenik meg a hiba a GitHub-műveletekben: A "java21" sztring érvénytelen SemVer-jelölés Java-verzió esetén." A Copilot esetleg magyarázatot ad, és akár a kijavítandó munkafolyamat-fájlra mutató hivatkozást is megadja.
  3. Nyissa meg a .github/workflows/starter-no-infra_msdocs-spring-cosmosdb-123.yaml böngészőt, és végezze el a javasolt javítást. A GitHub Copilot nem minden alkalommal ad ugyanazt a választ, előfordulhat, hogy további kérdéseket kell feltennie a válasz finomhangolásához. Tippekért lásd: Mit tehetek a GitHub Copilottal a kódtérben?

5. lépés (2. lehetőség: a GitHub Copilot nélkül):

  1. Nyissa meg a .github/workflows/starter-no-infra_msdocs-spring-cosmosdb-123.yaml böngészőt, és keresse meg a setup-java@v4 műveletet.
  2. Módosítsa a következő értékre java-version : '21'.

6. lépés:

  1. Válassza ki a Forrásvezérlő bővítményt.
  2. A szövegmezőbe írjon be egy véglegesítési üzenetet, például Fix error in java-version: . Vagy válassza ki és hagyja, hogy a GitHub Copilot véglegesítési üzenetet hozzon létre Önnek.
  3. Válassza a Véglegesítés lehetőséget, majd erősítse meg igennel.
  4. Válassza a Módosítások szinkronizálása 1 lehetőséget, majd erősítse meg az OK gombot.

7. lépés: Vissza az Üzembehelyezési központ lapra az Azure Portalon:

  1. A Naplók lapon válassza a Frissítés lehetőséget. Egy új üzembehelyezési futtatás már elindult a véglegesített módosításokból.
  2. Az üzembe helyezési futtatás naplóelemében válassza ki a Build/Deploy Logs bejegyzést a legújabb időbélyeggel.

8. lépés: A GitHub-adattárba kerül, és láthatja, hogy a GitHub-művelet fut. A munkafolyamat-fájl két különálló szakaszt határoz meg, a buildelést és az üzembe helyezést. Várja meg, amíg a GitHub fut, és megjeleníti a Kész állapotot.

Problémákat tapasztal? Tekintse meg a hibaelhárítási szakaszt.

5. Tallózás az alkalmazáshoz

1. lépés: Az App Service oldalán:

  1. A bal oldali menüben válassza az Áttekintés lehetőséget.
  2. Válassza ki az alkalmazás URL-címét.

2. lépés: Adjon hozzá néhány feladatot a listához. Gratulálunk, egy webalkalmazást futtat a Azure-alkalmazás Service-ben, biztonságos kapcsolattal az Azure Cosmos DB-vel.

Problémákat tapasztal? Tekintse meg a hibaelhárítási szakaszt.

6. Diagnosztikai naplók streamelése

Azure-alkalmazás szolgáltatás rögzíti a konzolon megjelenő összes üzenet kimenetét, hogy segítsen diagnosztizálni az alkalmazással kapcsolatos problémákat. A mintaalkalmazás szabványos Log4j-naplózási utasításokat tartalmaz ennek a képességnek a bemutatásához, ahogyan az a következő kódrészletben látható:

private static Logger logger = LoggerFactory.getLogger(TodoListController.class);

@Autowired
private TodoItemRepository todoItemRepository;

public TodoListController() {
}

/**
 * HTTP GET
 */
@GetMapping(path = "/api/todolist/{index}", produces = {MediaType.APPLICATION_JSON_VALUE})
public TodoItem getTodoItem(@PathVariable("index") String index) {
    logger.info("GET request access '/api/todolist/{}' path.", index);
    return todoItemRepository.findById(index).get();
}

1. lépés: Az App Service oldalán:

  1. A bal oldali menüben válassza az App Service-naplók lehetőséget.
  2. Az Alkalmazásnaplózás területen válassza a Fájlrendszer lehetőséget.
  3. A felső menüben válassza a Mentés lehetőséget.

2. lépés: A bal oldali menüben válassza a Naplóstream lehetőséget. Láthatja az alkalmazás naplóit, beleértve a platformnaplókat és a tárolón belüli naplókat.

További információ a Java-alkalmazásokban való naplózásról az Azure Monitor OpenTelemetry engedélyezése .NET-, Node.js-, Python- és Java-alkalmazásokhoz című sorozatban.

Problémákat tapasztal? Tekintse meg a hibaelhárítási szakaszt.

7. Erőforrások törlése

Ha végzett, törölheti az összes erőforrást az Azure-előfizetéséből az erőforráscsoport törlésével.

1. lépés: Az Azure Portal tetején található keresősávon:

  1. Adja meg az erőforráscsoport nevét.
  2. Válassza ki az erőforráscsoportot.

2. lépés: Az erőforráscsoport lapján válassza az Erőforráscsoport törlése lehetőséget.

3. lépés:

  1. Erősítse meg a törlést az erőforráscsoport nevének beírásával.
  2. Válassza a Törlés lehetőséget.
  3. Erősítse meg újra a Törlés gombot.

2. Azure-erőforrások létrehozása és mintaalkalmazás üzembe helyezése

Ebben a lépésben létrehozza az Azure-erőforrásokat, és üzembe helyez egy mintaalkalmazást a Linuxon futó App Service-ben. Az oktatóanyagban használt lépések az App Service-t és az Azure Cosmos DB-t is tartalmazó, alapértelmezés szerint biztonságos erőforrások készletét hozzák létre.

A fejlesztői tárolóban már megtalálható az Azure Developer CLI (AZD).

  1. Futtassa azd initaz adattár gyökerét.

    azd init --template javase-app-service-cosmos-redis-infra
    
  2. Amikor a rendszer kéri, adja meg a következő válaszokat:

    Kérdés Válasz
    Az aktuális könyvtár nem üres. Inicializálni szeretne egy projektet itt a "saját könyvtárában>"?< Y
    Mit szeretne tenni ezekkel a fájlokkal? Meglévő fájljaim változatlanul tartása
    Adjon meg egy új környezetnevet Írjon be egy egyedi nevet. Az AZD-sablon ezt a nevet használja a webalkalmazás DNS-nevének részeként az Azure-ban (<app-name>-<hash>.azurewebsites.net). Alfanumerikus karakterek és kötőjelek engedélyezettek.
  3. Jelentkezzen be az Azure-ba a azd auth login parancs futtatásával és a parancssor követésével:

    azd auth login
    
  4. Hozza létre a szükséges Azure-erőforrásokat, és telepítse az alkalmazáskódot a azd up paranccsal. Kövesse az utasításokat az Azure-erőforrások kívánt előfizetésének és helyének kiválasztásához.

    azd up
    

    A azd up parancs végrehajtása körülbelül 15 percet vesz igénybe (a Redis-gyorsítótár a legtöbb időt veszi igénybe). Emellett lefordítja és üzembe helyezi az alkalmazáskódot, de később módosítja a kódot, hogy működjön az App Service-lel. Amíg fut, a parancs üzeneteket küld a kiépítési és üzembe helyezési folyamatról, beleértve az Azure-beli üzembe helyezésre mutató hivatkozást is. Amikor befejeződik, a parancs egy hivatkozást is megjelenít az üzembe helyezési alkalmazásra.

    Ez az AZD-sablon olyan fájlokat (azure.yaml és infra könyvtár) tartalmaz, amelyek az alábbi Azure-erőforrásokkal létrehoznak egy alapértelmezett, biztonságos architektúrát:

    • Erőforráscsoport: Az összes létrehozott erőforrás tárolója.
    • App Service-csomag: Meghatározza az App Service számítási erőforrásait. Létrejön egy Linux-csomag a B1 szinten.
    • App Service: Az alkalmazást jelöli, és az App Service-csomagban fut.
    • Virtuális hálózat: Integrálva az App Service alkalmazással, és elkülöníti a háttérhálózat forgalmát.
    • Azure Cosmos DB-fiók a MongoDB API-val: Csak a privát végpontja mögött érhető el. A rendszer létrehoz egy adatbázist a kiszolgálón.
    • Azure Cache for Redis: Csak a virtuális hálózaton belülről érhető el.
    • Key Vault: Csak a privát végpontja mögött érhető el. Az App Service-alkalmazás titkos kulcsainak kezelésére szolgál.
    • Privát végpontok: Hozzáférési végpontok a kulcstartóhoz, az adatbázis-kiszolgálóhoz és a Redis-gyorsítótárhoz a virtuális hálózaton.
    • saját DNS zónák: Engedélyezze a Cosmos DB-adatbázis, a Redis-gyorsítótár és a kulcstartó DNS-feloldását a virtuális hálózaton.
    • Log Analytics-munkaterület: Az alkalmazás céltárolójaként szolgál a naplók elküldéséhez, ahol a naplókat is lekérdezheti.

Problémákat tapasztal? Tekintse meg a hibaelhárítási szakaszt.

3. A kapcsolati sztring ellenőrzése

Az Ön által használt AZD-sablon már alkalmazásbeállításokként létrehozta a kapcsolati változókat, és azokat az ön kényelme érdekében a terminálon adja ki. Az alkalmazásbeállítások az egyik módja annak, hogy a kapcsolat titkos kulcsait ne használja a kódtárban.

  1. Az AZD-kimenetben keresse meg az alkalmazásbeállítást spring.data.mongodb.uri. Csak a beállításnevek jelennek meg. Így néznek ki az AZD-kimenetben:

     App Service app has the following app settings:
             - spring.data.mongodb.uri
             - spring.data.mongodb.database
             - spring.redis.host
             - spring.redis.port
             - spring.redis.password
             - spring.redis.database
             - spring.redis.ssl
             - spring.cloud.azure.keyvault.secret.credential.managed_identity_enabled
             - spring.cloud.azure.keyvault.secret.endpoint
             - azure.keyvault.uri
             - azure.keyvault.scope
     

    spring.data.mongodb.uri az Azure-beli Cosmos DB-adatbázishoz való kapcsolódási URI-t tartalmazza. Ez egy standard Spring Data-változó, amelyet az alkalmazás már használ az src/main/resources/application.properties fájlban.

  2. Az Explorerben lépjen az src/main/resources/application.properties lapra , és ellenőrizze, hogy a Spring Boot-alkalmazás már használja a változót az spring.data.mongodb.uri adatok eléréséhez.

  3. Az Ön kényelme érdekében az AZD-sablon kimenete az alkalmazás alkalmazásbeállítási oldalára mutató közvetlen hivatkozást jeleníti meg. Keresse meg a hivatkozást, és nyissa meg egy új böngészőlapon.

    Ha a kulcs értékét tekinti spring.data.mongodb.uri, annak kell lennie @Microsoft.KeyVault(...), ami azt jelenti, hogy ez egy kulcstartó-hivatkozás , mert a titkos kulcs a kulcstartóban van kezelve.

Problémákat tapasztal? Tekintse meg a hibaelhárítási szakaszt.

4. Tallózás az alkalmazáshoz

  1. Az AZD-kimenetben keresse meg az alkalmazás URL-címét, és keresse meg a böngészőben. Az URL-cím így néz ki az AZD-kimenetben:

     Deploying services (azd deploy)
    
       (✓) Done: Deploying service web
       - Endpoint: https://<app-name>-<hash>.azurewebsites.net/
     
  2. Adjon hozzá néhány feladatot a listához.

    Képernyőkép a Tomcat webalkalmazásról, amelyen az Azure-ban futó MySQL feladatok láthatók.

    Gratulálunk, egy webalkalmazást futtat a Azure-alkalmazás Service-ben, biztonságos kapcsolattal az Azure Cosmos DB-vel.

Problémákat tapasztal? Tekintse meg a hibaelhárítási szakaszt.

5. Diagnosztikai naplók streamelése

Azure-alkalmazás szolgáltatás rögzítheti a konzolnaplókat az alkalmazással kapcsolatos problémák diagnosztizálásához. A kényelem kedvéért az AZD-sablon már engedélyezte a naplózást a helyi fájlrendszerbe , és a naplókat egy Log Analytics-munkaterületre szállítja.

A mintaalkalmazás szabványos Log4j-naplózási utasításokat tartalmaz ennek a képességnek a bemutatásához, ahogyan az a következő kódrészletben látható:

private static Logger logger = LoggerFactory.getLogger(TodoListController.class);

@Autowired
private TodoItemRepository todoItemRepository;

public TodoListController() {
}

/**
 * HTTP GET
 */
@GetMapping(path = "/api/todolist/{index}", produces = {MediaType.APPLICATION_JSON_VALUE})
public TodoItem getTodoItem(@PathVariable("index") String index) {
    logger.info("GET request access '/api/todolist/{}' path.", index);
    return todoItemRepository.findById(index).get();
}

Az AZD-kimenetben keresse meg az App Service-naplók streameléséhez és a böngészőben való navigáláshoz használt hivatkozást. A hivatkozás így néz ki az AZD-kimenetben:

Stream App Service logs at: https://portal.azure.com/#@/resource/subscriptions/<subscription-guid>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name>/logStream

További információ a Java-alkalmazásokban való naplózásról az Azure Monitor OpenTelemetry engedélyezése .NET-, Node.js-, Python- és Java-alkalmazásokhoz című sorozatban.

Problémákat tapasztal? Tekintse meg a hibaelhárítási szakaszt.

6. Erőforrások tisztítása

Ha törölni szeretné az összes Azure-erőforrást az aktuális üzemi környezetben, futtassa azd down és kövesse az utasításokat.

azd down

Hibaelhárítás

Az Azure Cosmos DB portál üzembehelyezési nézete ütközési állapotot jelenít meg

Az előfizetéstől és a kiválasztott régiótól függően előfordulhat, hogy az Azure Cosmos DB üzembe helyezési állapota jelenik Conflictmeg, a művelet részleteiben az alábbi üzenettel:

Sorry, we are currently experiencing high demand in <region> region, and cannot fulfill your request at this time.

A hibát valószínűleg a kiválasztott régióra vonatkozó előfizetés korlátja okozza. Próbáljon meg másik régiót választani az üzembe helyezéshez.

Az üzembe helyezett mintaalkalmazás nem jeleníti meg a feladatlistaalkalmazást

Ha a feladatlista-alkalmazás helyett egy Hey, Java developers! lap jelenik meg, az App Service valószínűleg továbbra is betölti a frissített tárolót a legújabb kódtelepítésből. Várjon néhány percet, és frissítse az oldalt.

Gyakori kérdések

Mennyibe kerül ez a beállítás?

A létrehozott erőforrások díjszabása a következő:

  • Az App Service-csomag alapszinten jön létre, és fel- vagy leskálázható. Lásd az App Service díjszabását.
  • Az Azure Cosmos DB-fiók kiszolgáló nélküli szinten jön létre, és ennek a szintnek egy kis költsége van. Tekintse meg az Azure Cosmos DB díjszabását.
  • Az Azure Cache for Redis alapszintű, minimális gyorsítótármérettel jön létre. Ez a szint egy kis költséggel jár. Magasabb teljesítményszintekre skálázhatja a magasabb rendelkezésre állás, a fürtözés és más funkciók érdekében. Tekintse meg az Azure Cache for Redis díjszabását.
  • A virtuális hálózat csak akkor számít fel díjat, ha nem konfigurál további funkciókat, például társviszony-létesítést. Tekintse meg az Azure Virtual Network díjszabását.
  • A privát DNS-zóna kis díjat számít fel. Tekintse meg az Azure DNS díjszabását.

Hogyan futtatja az adatbázis migrálását a virtuális hálózat mögötti Cosmos DB-adatbázissal?

Az App Service Java SE-tárolója már rendelkezik hálózati kapcsolattal a Cosmos DB-hez, de nem tartalmaz áttelepítési eszközöket vagy más MongoDB-eszközöket. Néhány lehetőség közül választhat:

  • Adatbázis-áttelepítések automatikus futtatása az alkalmazás indításakor, például Hibernate és Flyway használatával.
  • Az alkalmazás SSH-munkamenetében telepítsen egy migrálási eszközt, például a Flywayt, majd futtassa az áttelepítési szkriptet. Ne feledje, hogy a telepített eszköz csak akkor marad meg az alkalmazás újraindítása után, ha az a /home könyvtárban található.
  • Integrálja az Azure Cloud Shellt a virtuális hálózattal, és onnan futtassa az adatbázis-migrálásokat.

Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions használatával?

Ha például az App Service automatikus munkafolyamat-fájlját használja, mindegyik git push elindít egy új buildet és üzembe helyezést. A GitHub-adattár helyi klónjából elvégezheti a kívánt frissítéseket, és leküldheti a GitHubra. Példa:

git add .
git commit -m "<some-message>"
git push origin main

Nincs jogosultságom felhasználó által hozzárendelt identitás létrehozására

Lásd: A GitHub Actions üzembe helyezésének beállítása az üzembe helyezési központból.

Mit tehetek a GitHub Copilottal a kódtérben?

Észreveheti, hogy a GitHub Copilot csevegőnézete már ott volt a kódtér létrehozásakor. Az Ön kényelme érdekében a GitHub Copilot csevegőbővítményt is belefoglaljuk a tárolódefinícióba (lásd: .devcontainer/devcontainer.json). Azonban szüksége van egy GitHub Copilot-fiókra (30 napos ingyenes próbaverzió érhető el).

Néhány tipp a GitHub Copilot használatához:

  • Egyetlen csevegési munkamenetben a kérdések és válaszok egymásra épülnek, és módosíthatja a kérdéseket, hogy finomhangolja a választ.
  • Alapértelmezés szerint a GitHub Copilot nem rendelkezik hozzáféréssel az adattárban lévő fájlokhoz. Ha fel szeretne kérdezni egy fájlt, először nyissa meg a fájlt a szerkesztőben.
  • Ha azt szeretné, hogy a GitHub Copilot hozzáférhessen az adattárban lévő összes fájlhoz a válaszok előkészítésekor, kezdje a kérdést a következővel @workspace: . További információ: Use the @workspace agent.
  • A csevegési munkamenetben a GitHub Copilot javasolhat módosításokat, és (azokkal együtt @workspace) még azt is, hogy hol végezze el a módosításokat, de önnek nem engedélyezett a módosítások végrehajtása. Önnek kell hozzáadnia a javasolt módosításokat, és tesztelnie kell azt.

Következő lépések

További információ a Java-alkalmazások App Service-en való futtatásáról a fejlesztői útmutatóban.

Megtudhatja, hogyan védheti meg az alkalmazást egyéni tartománnyal és tanúsítvánnyal.