Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oktatóanyag bemutatja, hogyan hozhat létre egy biztonságos Node.js-alkalmazást az Azure App Service-ben , amely egy Azure DocumentDB-adatbázishoz csatlakozik. Az Azure App Service magas skálázható, önjavító web hosting szolgáltatást biztosít a Linux operációs rendszer használatával. Ha végzett, egy Express.js-alkalmazás fut a Linuxon futó Azure App Service-ben.
Ebben az oktatóanyagban a következőket sajátíthatja el:
- 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.
- Node.js 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égezzen frissítéseket, majd telepítse újra az alkalmazás kódját.
- Diagnosztikai naplók streamelése az App Service-ből.
- Az alkalmazás kezelését végezze az Azure portálon.
- Hozza létre ugyanazt az architektúrát, és telepítse az Azure Developer CLI segítségével.
- Optimalizáld a fejlesztési munkafolyamatodat a GitHub Codespaces és a GitHub Copilot segítségével.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Ha még nincs Azure-fiókod, hozhatsz létre egyet ingyen.
- Egy GitHub-fiók. Ingyenesen is beszerezhet egyet.
- A Express.js fejlesztésének ismerete.
- (Opcionális) A GitHub Copilot kipróbálásához egy GitHub Copilot fiókra van szükség. 30 napos ingyenes próba elérhető.
- Egy Azure-fiók, aktív előfizetéssel. Ha még nincs Azure-fiókod, hozhatsz létre egyet ingyen.
- Az Azure Developer CLI telepítve van. A lépéseket végrehajthatja az Azure Cloud Shell használatával, mivel az már tartalmazza az Azure Developer CLI-t.
- A Express.js fejlesztésének ismerete.
- (Opcionális) A GitHub Copilot kipróbálásához egy GitHub Copilot fiókra van szükség. 30 napos ingyenes próba elérhető.
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-nodejs-mongodb-azure-sample-app
cd msdocs-nodejs-mongodb-azure-sample-app
azd init --template msdocs-nodejs-mongodb-azure-sample-app
azd up
A minta futtatása
Állítson be egy adatvezérelt mintaalkalmazást kiindulási pontként. A mintaadattár tartalmaz egy fejlesztői tárolókonfigurációt . A fejlesztői tároló mindennel rendelkezik, amire szüksége van egy alkalmazás fejlesztéséhez. Tartalmazza a mintaalkalmazáshoz szükséges adatbázist, gyorsítótárat és minden 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 GitHub-fiókjába.
- Navigáljon ide: https://github.com/Azure-Samples/msdocs-nodejs-mongodb-azure-sample-app/fork.
- Törölje a kijelölést a Csak a fő ágat másolja lehetőségnél. Akarod az összes ágat.
- Válassza a Fork létrehozása lehetőséget.
2. lépés: A GitHub-forkban:
- Válaszd ki a main>starter-no-infra lehetőséget az indító ág számára. Ez az ág csak a példaprojektet tartalmazza, és nincsenek benne Azure-hoz kapcsolódó fájlok vagy konfigurációk.
- Válassza a Kód>kódteret létrehozása a starter-no-infra területen. A kódtér beállítása néhány percet vesz igénybe.
3. lépés: A codespace terminálban:
- Futtassa a
npm install && npm startprogramot. - Amikor megjelenik az értesítés
Your application running on port 3000 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 Express.js alkalmazás leállításához írja be a következőt
Ctrl+C: .
Jótanács
Erről az adattárról a GitHub Copilotot is megkérdezheti. Például:
- @workspace Mit tesz ez a projekt?
- @workspace Mit tesz a .devcontainer mappa?
Problémákat tapasztal? Nézze meg a Hibaelhárítás szakaszt.
Az App Service és az Azure Cosmos DB létrehozása
Ebben a lépésben létrehozod az Azure erőforrásokat. Az oktatóanyagban használt lépések az App Service-t és az Azure DocumentDB-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 webes alkalmazás Name-ja. Ez az alkalmazás DNS-nevének része.
- Az a régió, ahol az alkalmazást fizikailag futtatják a világban. Az alkalmazás DNS-nevének is része.
- A Runtime stack az alkalmazáshoz. Itt választhatja ki az alkalmazáshoz használni kívánt Node-verziót.
- Az alkalmazás tárhelyterve. Ez az árkategória, amely magában foglalja az alkalmazásod funkciókészletét és méretezhetőségi kapacitását.
- Az alkalmazás erőforráscsoportja. Az erőforráscsoport lehetővé teszi, hogy egy logikai tárolón belül csoportosítsuk 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 portálon:
- Írja be a „webalkalmazás adatbázis” kifejezést az Azure portál tetején található keresősávba.
- Válaszd ki a Piactér cím alatt található Web App + Database címkéjű elemet. Közvetlenül a WebAlkalmazás + adatbázis létrehozása elemre is navigálhat.
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-expressjs-mongodb-tutorial nevet.
- Régió: Bármelyik Azure-régió a közeledben.
- Név: msdocs-expressjs-mongodb-XYZ, ahol az XYZ tetszőleges három véletlenszerű karakter.
- Futtatókörnyezeti verem: Node 24 LTS.
- Motor: Cosmos DB API a MongoDB-hez. Az Azure Cosmos DB egy natív felhőalapú adatbázis, amely 100% MongoDB-kompatibilis API-t kínál. Jegyezze fel az Ön számára létrehozott adatbázisnevet (<app-name-database>). Később szüksége lesz rá.
- Üzemeltetési terv: Alapszintű. Amikor készen állsz, átválthatsz egy termelési árazási szintre.
- 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 gombot.
3. lépés: A telepítés befejezése néhány percet vesz igénybe. Az üzembe helyezés befejezése után válassza az Ugrás az erőforrásra lehetőséget. Közvetlenül az App Service-alkalmazásba kerül. A következő erőforrások jönnek létre:
- Az erőforráscsoport az összes létrehozott erőforrás tárolóját →.
- Az App Service-csomag → Az App Service számítási erőforrásait határozza meg. A Basic szintű Linux terv létrejött.
- Az App Service → Az alkalmazást jelöli, és az App Service-csomagban fut.
- A virtuális hálózat → Integrálva van az App Service alkalmazással, és elkülöníti a háttérbeli hálózati forgalmat.
- A privát végpont → Access-végpontot a virtuális hálózaton lévő adatbázis-erőforráshoz.
- A hálózati adapter → A privát végpont privát IP-címét jelöli.
- Az Azure DocumentDB → Csak a privát végpont mögött érhető el. Az Ön számára létrehozunk egy adatbázist és egy felhasználót a szerveren.
- Privát DNS-zóna → Engedélyezi az Azure Cosmos DB-kiszolgáló DNS-feloldását a virtuális hálózaton.
Problémákat tapasztal? Nézze meg a Hibaelhárítás szakaszt.
Biztonságos kapcsolati titkos kódok
Az üzembe helyezés már alkalmazásbeállításként létrehozta a kapcsolati karakterláncot. Azonban a biztonsági legjobb gyakorlat az, hogy az App Service-ből teljesen tartsuk távol a titkokat. Helyezze át titkos kulcsait egy kulcstartóba, és a Service Connectors segítségével módosítsa az alkalmazásbeállítást Key Vault-referenciaként .
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.
- 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 közvetlenül az App Service-alkalmazásban lesz mentve, ami nem a legjobb. Ezt a konfigurációt meg fogja változtatni.
2. lépés: Kulcstár létrehozása a titkok biztonságos kezeléséhez.
- A felső keresősávon írja be a Key Vaultot, majd válassza a Marketplace>Key Vault lehetőséget.
- Az erőforráscsoportban válassza az msdocs-expressjs-mongodb-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 kijelölést a Nyilvános hozzáférés engedélyezése opcióról.
- Válassza a Privát végpont létrehozása lehetőséget.
- Az erőforráscsoportban válassza az msdocs-expressjs-mongodb-tutorial lehetőséget.
- A Key Vault nevében írjon be egy nevet, amely csak betűkből és számokból áll.
- A Hely területen állítsa be a mintahelyet erőforráscsoportként.
- A párbeszédablakban, a Helyszín mezőben válassza ki ugyanazt a helyszínt, mint amit az App Service alkalmazása használ.
- Az Erőforráscsoportban válassza ki az erőforráscsoportot, például msdocs-expressjs-mongodb-tutorial.
- A Név mezőbe írjon be egy nevet, például msdocs-expressjs-mongodb-VaultEndpoint.
- A virtuális hálózatban válassza az msdocs-expressjs-mongodbVnet lehetőséget.
- Az Alhálózatban válassza az msdocs-expressjs-mongodb-XYZSubnet lehetőséget.
- Kattintson az OK gombra.
- Válassza az Ellenőrzés és létrehozás lehetőséget, majd a Létrehozás lehetőséget. Várja meg, amíg a Key Vault üzembe helyezése befejeződik. Látnia kell , hogy az üzembe helyezés befejeződött.
4. lépés:
- A felső keresősávba írja be az msdocs-expressjs-mongodb kifejezést, majd az msdocs-expressjs-mongodb 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ípustNode.jsértékre.
- Válassza a Hitelesítés lapot.
- Válaszd a Titok tárolása a kulcstárban lehetőséget.
- A Key Vault Connection alatt válassza a Új létrehozása lehetőséget. A Kapcsolódás létrehozása párbeszédablak megnyílik a szerkesztési párbeszédablak tetején.
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 állapota Kiválasztott beállításon van.
- Ha a validáció befejeződött, válassza a Create 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ő. Amikor befejeződik, a Key Vault-kapcsolat legördülő menü automatikusan kiválasztja azt.
- Válassza ki 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 folyamata már biztosította a Cosmos DB-adatbázist egy privát végponttal.
- Válassza az Mentésgombot. Várjon, amíg a frissítés sikeres lesz.
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.
- Az alkalmazásbeállítás AZURE_COSMOS_CONNECTIONSTRING 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 key vault-referencia. A titkos kulcs most a kulcstárban van kezelve.
Problémákat tapasztal? Nézze meg a Hibaelhárítás szakaszt.
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 csupán egy a sok módszer közül, amellyel az App Service-be telepíthetünk, de emellett nagyszerű módja annak is, hogy folytonos integrációt valósítsunk meg a telepítési folyamatunkban. 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 a Telepítés>Telepítési központ lehetőséget.
2. lépés: Az Üzembe helyezé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.
- Jelentkezz be a GitHub fiókodba, és kövesd az utasításokat az Azure engedélyezéséhez.
- A Szervezet menüben válassza ki fiókját.
- Az Adattárban válassza az msdocs-nodejs-mongodb-azure-sample-app lehetőséget.
- A Branch alkalmazásban válaszd ki a starter-no-infra lehetőséget. Ez az a verziókezelő ág, amelyben a te mintaalkalmazásoddal dolgoztál, nincsenek Azure-hoz kapcsolódó fájlok vagy konfigurációk.
- A Hitelesítési típus esetén válassza a Felhasználó által hozzárendelt identitás lehetőséget.
- A felső menüben válassza a Save lehetőséget. Az App Service elhelyez egy munkafolyamat fájlt a kiválasztott GitHub-tárházban, a
.github/workflowskönyvtá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 a Deploy to App Service using GitHub Actions című részt.
3. lépés: Térjen vissza a mintafork GitHub kódtérterületére, és futtassa a git pull origin starter-no-infra parancsot.
Ez a parancs betölti a frissen elkötelezett munkafolyamat-fájlt a kódtérbe.
4. lépés (1. lehetőség: a GitHub Copilot használatával):
- Új csevegési munkamenetet indíthat, ha kiválasztja a Csevegés nézetet, majd kiválasztja a +-t.
- Kérdezze meg a következőt: "@workspace Hogyan csatlakozik az alkalmazás az adatbázishoz?" A Copilot a app.js fájlra és a hívásra
mongoose.connectirányíthatja. - Például van egy kapcsolati sztringváltozóm az Azure-ban, nevű AZURE_COSMOS_CONNECTIONSTRING. A Copilot hasonló kódjavaslatot adhat, mint az a 2. lehetőségnél: GitHub Copilot nélkül, és még azt is megmondhatja, hogy végezze el a módosítást az app.js fájlban.
- Nyissa meg app.js a kezelőben, és adja hozzá a kódjavaslatot a
getAppmetódushoz. A GitHub Copilot nem mindig ugyanazt a választ adja. Szükséged lehet további kérdések feltevésére a válasz pontosításához. Tippekért lásd: Mit tehetek a GitHub Copilot használatával a kódterületemen?.
4. lépés (2. lehetőség: a GitHub Copilot nélkül):
- Nyissa meg a app.js.
- Keresse meg azt a sort, ahol a
mongoose.connectvan meghívva (16. sor), és cserélje le aprocess.env.MONGODB_URIaprocess.env.AZURE_COSMOS_CONNECTIONSTRING || process.env.MONGODB_URI-re.
5. lépés:
- Válassza ki a Source Control kiterjesztést.
- A szövegdobozba írjon egy
Update environment variable-hez hasonló commit üzenetet. Vagy válaszd a
lehetőséget, és hagyd, hogy a GitHub Copilot létrehozza a commit üzenetet számodra. - Válassza a Commit lehetőséget, majd erősítse meg a Igen gombbal.
- Válaszd ki a Sync changes 1 lehetőséget, majd erősítsd meg a OK gombbal.
6. 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.
- A telepítési futás naplóelemében válassza ki a legújabb időbélyeggel rendelkező Build/Deploy Logs bejegyzést.
7. lépés: A GitHub-adattárba kerül, és láthatja, hogy a GitHub-művelet fut. A munkafolyamat-fájl két 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? Nézze meg a Hibaelhárítás szakaszt.
Keresse meg az alkalmazást
1. lépés: Az App Service oldalán:
- A bal oldali menüből válassza a Áttekintés lehetőséget.
- Válaszd ki az alkalmazásod URL-jét.
2. lépés: Adj hozzá néhány feladatot a listához. Gratulálunk, biztonságos, adatvezérelt Node.js alkalmazást futtat az Azure App Service-ben.
Diagnosztikai naplók streamelése
Az Azure App Service rögzíti a konzolra naplózott összes üzenetet, hogy segítsen az alkalmazással kapcsolatos problémák diagnosztizálásában. A mintaalkalmazás minden végpontján konzolnapló-üzeneteket ad ki, hogy bemutassuk ezt a képességet. A végpont például üzenetet küld az adatbázisból lekért feladatok számáról, get és hibaüzenet jelenik meg, ha valami hiba történik.
router.get('/', function(req, res, next) {
Task.find()
.then((tasks) => {
const currentTasks = tasks.filter(task => !task.completed);
const completedTasks = tasks.filter(task => task.completed === true);
console.log(`Total tasks: ${tasks.length} Current tasks: ${currentTasks.length} Completed tasks: ${completedTasks.length}`)
res.render('index', { currentTasks: currentTasks, completedTasks: completedTasks });
})
.catch((err) => {
console.log(err);
res.send('Sorry! Something went wrong.');
});
});
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 Save lehetőséget.
2. lépés: A bal oldali menüből válassza a naplófolyamot. Ön látja az alkalmazás naplóit, beleértve a platformnaplókat és a konténer belsejéből származó naplókat.
Üzembe helyezett fájlok vizsgálata a Kudu használatával
Az Azure App Service egy Kudu nevű webalapú diagnosztikai konzolt biztosít. A konzol lehetővé teszi a webalkalmazás kiszolgálói üzemeltetési környezetének vizsgálatát. A Kudu használatával megtekintheti az Azure-ban üzembe helyezett fájlokat, áttekintheti az alkalmazás üzembe helyezési előzményeit, és akár SSH-munkamenetet is megnyithat az üzemeltetési környezetben.
1. lépés: Az App Service oldalán:
- A bal oldali menüben válassza a Fejlesztőeszközök>speciális eszközök lehetőséget.
- Válassza az Ugrás lehetőséget.
2. lépés: A Kudu lapon válassza a Telepítések lehetőséget.
Ha kódot helyez üzembe az App Service-ben a Git vagy a zip deploy használatával, láthatja a webalkalmazás üzembe helyezésének előzményeit.
3. lépés: Lépjen vissza a Kudu kezdőlapjára, és válassza a Webhely wwwroot lehetőséget.
Megtekintheti az üzembe helyezett mappastruktúrát, és kiválaszthatja a fájlok tallózását és megtekintését.
Erőforrások tisztítása
Amikor befejezted, törölheted az összes erőforrást az Azure előfizetésedből úgy, hogy törlöd az erőforráscsoportot.
1. lépés: Az Azure portál tetején található keresősávban:
- Adja meg az erőforráscsoport nevét.
- Válassza ki az erőforráscsoportot.
2. lépés: A erőforráscsoport oldalán válassza a Erőforráscsoport törlése lehetőséget.
3. lépés:
- A törlés megerősítéséhez adja meg az erőforráscsoport nevét.
- Válassza a Törlés lehetőséget.
Azure-erőforrások létrehozása és mintaalkalmazás üzembe helyezése
Ebben a szakaszban 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).
Az adattár gyökerében futtassa a
azd initparancsot.azd init --template nodejs-app-service-cosmos-redis-infraAmikor megkérdezik, adja meg a következő válaszokat:
Kérdés Válasz Az aktuális könyvtár nem üres. Szeretne inicializálni egy projektet itt <your-directory>?Y Mit szeretnél kezdeni ezekkel a fájlokkal? Tartsa meg a meglévő fájljaimat változatlanul 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 megengedettek.Az Azure-ba való belépéshez futtassa a
azd auth loginparancsot, és kövesse az utasításokat.azd auth loginHozza létre a szükséges Azure erőforrásokat, és telepítse az alkalmazáskódot a
azd upparancs segítségével. 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 upA
azd upparancs végrehajtása körülbelül 15 percet vesz igénybe. A Redis-gyorsítótár a legtöbb időt igénybe veszi. A parancs emellett lefordítja és üzembe helyezi az alkalmazáskódot. Később módosíthatja a kódot, hogy működjön az App Service-ben.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 linket is megjelenít a telepítési alkalmazáshoz.
Ez az AZD sablon olyan fájlokat tartalmaz (azure.yaml és a infra könyvtár), amelyek alapértelmezett módon biztonságos architektúrát hoznak létre a következő Azure-erőforrásokkal:
- 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 App Service az alkalmazásodat képviseli, és az App Service terv keretében fut.
- Virtuális hálózat: Integrálva van az Alkalmazásszolgáltatás alkalmazással, és elkülöníti a háttérhálózati forgalmat.
- Azure Cosmos DB-fiók a MongoDB API-val: Csak a privát végpontja mögött érhető el. Létrehoznak egy adatbázist az ön számára a szerveren.
- 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ül érhető el. Az App Service alkalmazás titkainak kezelésére használják.
- Privát végpontok: Hozzáférési végpontok a kulcstárhoz, az adatbázis szerverhez és a Redis gyorsítótárhoz a virtuális hálózatban.
- 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.
Miután a parancs befejezte az erőforrások létrehozását és az alkalmazáskód első üzembe helyezését, az üzembe helyezett mintaalkalmazás még nem működik. Az Azure-beli adatbázishoz való csatlakozáshoz kis módosításokat kell végrehajtania.
Kapcsolati sztringek 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ódja annak, hogy a kapcsolati titkokat távol tartsuk a kódtárból.
Az AZD-kimenetben keresse meg az alkalmazásbeállítást
AZURE_COSMOS_CONNECTIONSTRING. Csak a beállításnevek jelennek meg. Így néznek ki az AZD-kimenetben:App Service app has the following app settings: - AZURE_COSMOS_CONNECTIONSTRING - AZURE_REDIS_CONNECTIONSTRING - AZURE_KEYVAULT_RESOURCEENDPOINT - AZURE_KEYVAULT_SCOPEAZURE_COSMOS_CONNECTIONSTRINGaz Azure-beli Cosmos DB-adatbázishoz való kapcsolati sztringet tartalmazza. Később a saját kódjában kell használni.Az AZD-sablon 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.
Problémákat tapasztal? Nézze meg a Hibaelhárítás szakaszt.
Mintakód módosítása és ismételt üzembe helyezés
A GitHub-kódtérben indítsa el az új csevegési munkamenetet a Csevegés nézetre kattintva, majd kattintson +a gombra.
Kérdezd, @workspace Hogyan csatlakozik az alkalmazás az adatbázishoz? A Copilot az app.js fájlra és az
mongoose.connecthívásra irányíthat.Például van egy kapcsolati sztringváltozóm az Azure-ban AZURE_COSMOS_CONNECTIONSTRING. A Copilot olyan kódjavaslatot adhat, amely hasonlít a 2. lehetőségre: a GitHub Copilot lépései nélkül, és akár azt is javasolhatja, hogy végezze el a módosítást az app.js fájlban.
Nyissa meg app.js a kezelőben, és adja hozzá a kódjavaslatot a
getAppmetódushoz.A GitHub Copilot nem mindig ugyanazt a választ adja. Szükséged lehet további kérdések feltevésére a válasz pontosításához. Tippekért lásd: Mit tehetek a GitHub Copilot használatával a kódterületemen?.
A kódtér terminálhoz visszatérve futtassa a
azd deployparancsot.azd deploy
Jótanács
Mindig használhatja a azd up-t, amely mind a azd package, azd provision, és azd deploy funkcióit ellátja.
Problémákat tapasztal? Nézze meg a Hibaelhárítás szakaszt.
Keresse meg az alkalmazást
Az AZD kimenetében keresse meg az alkalmazása URL-jét, és nyissa meg azt 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>Adj 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? Nézze meg a Hibaelhárítás szakaszt.
Diagnosztikai naplók streamelése
Az Azure App Service rögzíti a konzolra naplózott összes üzenetet, hogy segítsen az alkalmazással kapcsolatos problémák diagnosztizálásában. A mintaalkalmazás minden végpontján konzolnapló-üzeneteket ad ki, hogy bemutassuk ezt a képességet. A végpont például üzenetet küld az adatbázisból lekért feladatok számáról, get és hibaüzenet jelenik meg, ha valami hiba történik.
router.get('/', function(req, res, next) {
Task.find()
.then((tasks) => {
const currentTasks = tasks.filter(task => !task.completed);
const completedTasks = tasks.filter(task => task.completed === true);
console.log(`Total tasks: ${tasks.length} Current tasks: ${currentTasks.length} Completed tasks: ${completedTasks.length}`)
res.render('index', { currentTasks: currentTasks, completedTasks: completedTasks });
})
.catch((err) => {
console.log(err);
res.send('Sorry! Something went wrong.');
});
});
Az AZD kimenetében keresse meg az App Service naplók streamelésére szolgáló linket, és nyissa meg azt a böngészőben. 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? Nézze meg a Hibaelhárítás szakaszt.
Erőforrások tisztítása
Az aktuális telepítési környezet összes Azure-erőforrásának törléséhez futtassa a azd down parancsot, é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 alkalmazás böngészőoldalán az áll, hogy "Valami hiba történt".
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 egy másik régiót választani a telepítéshez.
Az üzembe helyezett alkalmazás böngészőoldalán az áll, hogy "Valami hiba történt".
Valószínűleg továbbra is módosítania kell a kapcsolati sztringet az alkalmazás kódjában. Lásd: Példakód telepítése.
Gyakori kérdések
- Mennyibe kerül ez a beállítás?
- Hogyan csatlakozhatok a virtuális hálózat mögött más eszközökkel védett Azure Cosmos DB-kiszolgálóhoz?
- Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions használatával?
- Miért olyan lassú a GitHub Actions telepítése?
- Nincs jogosultságom felhasználó által hozzárendelt identitás létrehozására
- Mit csinálhatok a GitHub Copilot-tal a kódtérben?
Mennyibe kerül ez a beállítás?
A létrehozott erőforrások díjszabása a következő:
- Az App Service terv Basic rétegben lett létrehozva, és felfelé vagy lefelé skálázható. Lásd az App Service díjszabását.
- Az Azure Cosmos DB-kiszolgáló egyetlen régióban jön létre, és más régiókba is terjeszthető. Tekintse meg az Azure Cosmos DB díjszabását.
- A virtuális hálózat nem jár költséggel, hacsak nem konfigurál extra funkciókat, mint például a peering. 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 csatlakozhatok a virtuális hálózat mögött más eszközökkel védett Azure Cosmos DB-kiszolgálóhoz?
- A parancssori eszközről való alapszintű hozzáféréshez az alkalmazás SSH-termináljáról is futtatható
mongosh. Az alkalmazás tárolója nem tartalmazza amongosh, ezért kézzel kell telepítenie. Ne feledje, hogy a telepített kliens nem marad meg az alkalmazás újraindítása után. - MongoDB GUI-ügyfélről való csatlakozáshoz a számítógépnek a virtuális hálózaton belül kell lennie. Ez lehet például egy Azure-beli virtuális gép, amely az egyik alhálózathoz csatlakozik, vagy egy helyszíni hálózat számítógépe, amely helyek közötti VPN-kapcsolattal rendelkezik az Azure-beli virtuális hálózattal.
- Ha a MongoDB shellből szeretne csatlakozni az Azure Portalon az Azure Cosmos DB felügyeleti oldaláról, a számítógépnek a virtuális hálózaton belül kell lennie. Ehelyett megnyithatja az Azure Cosmos DB-kiszolgáló tűzfalát a helyi számítógép IP-címéhez, de növeli a konfiguráció támadási felületét.
Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions használatával?
Vegyük példaként az App Service által automatikusan generált munkafolyamat-fájlt, minden git push új építési és telepítési futtatást indít el. GitHub tároló helyi másolatáról elvégezzük a kívánt frissítéseket, majd feltöltjük őket a GitHubra. Például:
git add .
git commit -m "<some-message>"
git push origin main
Miért olyan lassú a GitHub Actions telepítése?
Az App Service automatikusan létrehozott munkafolyamat-fájlja meghatározza az építsd- és telepítsd folyamatot, valamint két feladat futtatását. Mivel minden feladat a saját tiszta környezetében fut, a munkafolyamat-fájl biztosítja, hogy a deploy feladat hozzáférhessen a build feladat fájljaihoz:
- A munka
buildvégén töltsd fel a fájlokat mint artefaktum. - A
deployfeladat kezdetekor töltsd le az arifaktumokat.
A kétfeladatos folyamat során az idő nagy részét a fájlok feltöltése és letöltése veszi igénybe. Ha szeretné, egyszerűsítheti a munkafolyamat fájlt úgy, hogy a két feladatot egyesíti, mely megszünteti a feltöltési és letöltési lépések szükségességét.
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ódolási környezetemben?
É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ési bővítményt beépítjük a konténer definíciójába (lásd .devcontainer/devcontainer.json). Azonban szüksége van egy GitHub Copilot-fiókra (30 napos ingyenes próbaverzió érhető el).
Íme néhány tipp, amikor a GitHub Copilot-tal beszélsz:
- Egyetlen chatbeszélgetés során a kérdések és válaszok egymásra épülnek, és a kérdéseidet úgy alakíthatod, hogy finomítsd a kapott választ.
- Alapértelmezés szerint a GitHub Copilot nem fér hozzá a tárhelyed egyetlen fájljához sem. Ha kérdései vannak egy fájllal kapcsolatban, először nyissa meg a fájlt a szerkesztőben.
- Annak érdekében, hogy a GitHub Copilot hozzáférjen a tárhely összes fájljához a válaszok előkészítése során, kezdd a kérdésedet a
@workspace-vel. További információért lásd Use the @workspace agent. - A csevegési munkamenetben a GitHub Copilot javasolhat módosításokat
@workspace, és akár azt is, hogy hol végezze el a módosításokat, de nem hajthatja végre azokat helyetted. Rajtad áll, hogy hozzáadd a javasolt változtatásokat, és teszteld azokat.
Íme néhány más dolog, amit mondhatsz, hogy pontosítsd a kapott választ:
- @workspace Hol van definiálva MONGODB_URI?
- Melyik fájlban végezzem el a módosítást?
- Ez a módosítás megszakítja az alkalmazást helyi futtatáskor?