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.
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:
- Jelentkezzen be a GitHub-fiókjába.
- Navigáljon a https://github.com/Azure-Samples/msdocs-spring-boot-mongodb-sample-app/fork lapra
- Törölje a jelölést : Csak a főág másolása. Az összes ágat szeretnéd.
- Válassza az Elágazás létrehozása lehetőséget.
2. lépés: A GitHub-elágazásban:
- 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ó.
- 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:
- Futtassa az
mvn package spring-boot:run
parancsot. - Amikor megjelenik az értesítés
Your 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őtCtrl
+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.net
DNS-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:
- Írja be a "webalkalmazás-adatbázis" kifejezést az Azure Portal tetején található keresősávba.
- 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.
- Erőforráscsoport: Válassza az Új létrehozása lehetőséget, és használja az msdocs-spring-cosmosdb-tutorial nevet.
- Régió: Bármely Önhöz közeli Azure-régió.
- 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 21.
- Java webkiszolgáló verem: Java SE (Embedded Web Server).
- 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.
- Üzemeltetési terv: Alapszintű. Ha készen áll, felskálázhat egy éles tarifacsomagra.
- 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 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:
- A bal oldali menüben válassza a Beállítások > környezet változói lehetőséget.
- 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.
- A felső keresősávon írja be a "key vault" kifejezést, majd válassza a Marketplace>Key Vault lehetőséget.
- Az erőforráscsoportban válassza az msdocs-spring-cosmosdb-tutorial lehetőséget.
- A Key Vault nevében írjon be egy nevet, amely csak betűkből és számokból áll.
- A Régióban állítsa a mintahelyre erőforráscsoportként.
3. lépés:
- Válassza a Hálózatkezelés lapot.
- Törölje a jelölést a nyilvános hozzáférés engedélyezése jelölőnégyzetből.
- Válassza a Privát végpont létrehozása lehetőséget.
- Az erőforráscsoportban válassza az msdocs-spring-cosmosdb-tutorial lehetőséget.
- A Key Vault nevében írjon be egy nevet, amely csak betűkből és számokból áll.
- A Régióban állítsa a mintahelyre erőforráscsoportként.
- A párbeszédpanel Hely területén válassza ki ugyanazt a helyet, mint az App Service-alkalmazás.
- Az erőforráscsoportban válassza az msdocs-spring-cosmosdb-tutorial lehetőséget.
- Írja be az msdocs-spring-cosmosdb-XYZVaultEndpoint nevet.
- A virtuális hálózatban válassza az msdocs-spring-cosmosdb-XYZVnet elemet.
- Az alhálózatban msdocs-spring-cosmosdb-XYZSubnet.
- Kattintson az OK gombra.
- 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:
- A felső keresősávba írja be az msdocs-spring-cosmosdb, majd az msdocs-spring-cosmosdb-XYZ nevű App Service-erőforrást.
- 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.
- Jelölje be az összekötő melletti jelölőnégyzetet, majd válassza a Szerkesztés lehetőséget.
- 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.
- Válassza a Hitelesítés lapot.
- Válassza a Titkos kulcs tárolása lehetőséget a Key Vaultban.
- 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:
- A Key Vaultban válassza ki a korábban létrehozott kulcstartót.
- 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.
- 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.
- 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.
- Válassza a Tovább: Hálózatkezelés lehetőséget.
- 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.
- 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:
- A bal oldali menüben válassza ismét a Környezeti változók lehetőséget.
- 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.
- 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:
- A Forrás területen válassza a GitHubot. Alapértelmezés szerint a GitHub Actions van kiválasztva buildszolgáltatóként.
- Jelentkezzen be a GitHub-fiókjába, és kövesse az utasításokat az Azure engedélyezéséhez.
- A Szervezetben válassza ki a fiókját.
- Az Adattárban válassza az msdocs-spring-boot-mongodb-sample-app lehetőséget.
- 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.
- Hitelesítési típus esetén válassza a felhasználó által hozzárendelt identitást.
- 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:
- Válassza a Naplók lapot. Láthatja, hogy egy új üzembe helyezés már lefutott, de az állapot sikertelen.
- 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 version
jelenik 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):
- Indítsa el az új csevegési munkamenetet a Csevegés nézet kiválasztásával, majd válassza a +lehetőséget.
- 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.
- 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):
- 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. - Módosítsa a következő értékre
java-version
:'21'
.
6. lépés:
- Válassza ki a Forrásvezérlő bővítményt.
- 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.
- Válassza a Véglegesítés lehetőséget, majd erősítse meg igennel.
- 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:
- 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.
- 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:
- A bal oldali menüben válassza az Áttekintés lehetőséget.
- 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:
- A bal oldali menüben válassza az App Service-naplók lehetőséget.
- Az Alkalmazásnaplózás területen válassza a Fájlrendszer lehetőséget.
- 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:
- Adja meg az erőforráscsoport nevét.
- 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:
- Erősítse meg a törlést az erőforráscsoport nevének beírásával.
- Válassza a Törlés lehetőséget.
- 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).
Futtassa
azd init
az adattár gyökerét.azd init --template javase-app-service-cosmos-redis-infra
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.Jelentkezzen be az Azure-ba a
azd auth login
parancs futtatásával és a parancssor követésével:azd auth login
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.
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.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.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
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/
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.
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 üzembe helyezett mintaalkalmazás nem jeleníti meg a feladatlistaalkalmazást
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 Conflict
meg, 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?
- Hogyan futtatja az adatbázis migrálását a virtuális hálózat mögötti Cosmos DB-adatbázissal?
- Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions használatával?
- Nincs jogosultságom felhasználó által hozzárendelt identitás létrehozására
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
- Azure Java-fejlesztőknek
- Spring Boot
- Azure Cosmos DB-hez készült Spring Data
- Azure Cosmos DB és -App Service Linux
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.