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
  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 ki a Kód>kódtér létrehozása 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 a mvn package spring-boot:run programot.
  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 . Az alkalmazás DNS-nevének részeként használják.
  • Az a régió, ahol az alkalmazást fizikailag futtatják a világban. 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. A Azure portálon:

    • A felső keresősávon adja meg az App Service-t.
    • A Szolgáltatások fejléc alatt válassza az App Service lehetőséget.
    • Válassza a Webalkalmazás létrehozása lehetőséget>.

    A létrehozási varázslót közvetlenül is megnyithatja.

  2. A Webalkalmazás létrehozása lap Alapszintű beállítások lapján töltse ki az űrlapot az alábbiak szerint:

    • Erőforráscsoport: Válassza az Új létrehozása lehetőséget, és használja az msdocs-spring-cosmosdb-tutorial nevet.
    • 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.
    • Futtatókörnyezeti verem: Java 25.
    • Java webkiszolgáló köteg: Java SE (Embedded Web Server).
    • Operációs rendszer: Linux.
    • Régió: Bármely Önhöz közeli Azure-régió.
    • Tarifacsomag: Alapszintű. Ha készen áll, áttérhet egy termelési árazási szintre.
  3. Válassza az Adatbázis lapot, és konfigurálja az adatbázist:

    • Válassza az Adatbázis létrehozása lehetőséget.
    • Az Engine területen válassza a Cosmos DB API MongoDB-hez lehetőséget. A Cosmos DB egy teljes körűen felügyelt NoSQL-, relációs és vektoradatbázis szolgáltatásként az Azure-ban.
    • Ne válassza a Azure Cache for Redis létrehozása lehetőséget.
  4. Válassza az Áttekintés + létrehozás lehetőséget. Az ellenőrzés befejezése után válassza a Létrehozás parancsot.

  5. Amikor az üzembe helyezés befejeződik, válassza az Erőforrás megnyitása gombot. Közvetlenül az App Service-alkalmazásba kerül.

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 a virtuális hálózaton lévő adatbázis-kiszolgálóhoz.
  • saját DNS zónák: Az adatbázis-kiszolgáló DNS-feloldásának engedélyezése 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 létrehozta a kapcsolódási karakterláncot alkalmazásbeállításként. 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. Az 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: Kulcstár létrehozása a titkok 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 Helyszín részén válassza ki azt a helyet, amely ugyanaz, 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 alatt 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ásKijelölve van.
  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 elemet. Ez ugyanaz az ág, amelyben a mintaalkalmazással dolgozott, és nincsenek benne Azure-hoz kapcsolódó fájlok vagy konfiguráció.
  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 'java25' is not valid SemVer 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 GitHub műveletekben: A "java25" sztring érvénytelen SemVer-jelölés egy Java verzióhoz." Copilot magyarázatot adhat, és akár a kijavítandó munkafolyamat-fájlra mutató hivatkozást is megadhat.
  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 : '25'.

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.

Nyissa meg az alkalmazást

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 ismét a Törlés választásával.

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. Az adattár gyökérből futtassa azd init.

    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. Emellett lefordítja és üzembe helyezi az alkalmazáskódot, de később módosítania kell a kódot az App Service használatához. 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, az üzembe helyezett alkalmazásra mutató hivatkozást is megjelenít.

    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étrehoznak egy Linux tervet 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 Managed 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 Azure felügyelt Redishez a virtuális hálózaton.
    • saját DNS zónák: Engedélyezze a Cosmos DB-adatbázis, Azure Felügyelt Redis és a virtuális hálózat kulcstartójának DNS-feloldását.
    • 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 egy módot kínálnak a kapcsolat titkos információinak távol tartására a kódtártól.

  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 megnézi spring.data.mongodb.uri értékét, annak @Microsoft.KeyVault(...) kell lennie, ami azt jelenti, hogy ez egy kulcs széf hivatkozás, mert a titok a kulcstárolóban van kezelve.

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

4. Navigáljon 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: <URL>
     
  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: <URL>

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.

Ez a hiba valószínűleg a kiválasztott régióra vonatkozó előfizetés korlátja miatt fordul elő. Próbáljon meg másik régiót választani az üzembe helyezéshez. Az üzembe helyezés többi erőforrásának kapacitása régiónként és előfizetésenként is változhat, ezért győződjön meg arról, hogy a kiválasztott régió rendelkezik kapacitással az App Service-csomaghoz és a Azure Felügyelt Redis -Balanced_B0példányhoz is.

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 a Basic szinten kerül létrehozásra, és fel- és 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.
  • A Azure Managed Redis-példány a kiegyensúlyozott B0 (Balanced_B0) rétegben jön létre a minimális gyorsítótármérettel. Ez a szint egy kis költséggel jár. A magasabb rendelkezésre állás, fürtözés és egyéb funkciók érdekében magasabb teljesítményszintekre skálázhatja. Lásd Azure Managed Redis díjszabását.
  • A virtuális hálózatért nem számítanak fel díjat, hacsak 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ódteremben?

É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.