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.
Azure-alkalmazás Szolgáltatás egy nagymértékben skálázható, önjavító web hosting szolgáltatást biztosít a Linux operációs rendszer használatával. Ez az oktatóanyag bemutatja, hogyan hozhat létre biztonságos Node.js alkalmazást az Azure App Service-ben, amely egy Azure Cosmos DB for MongoDB-adatbázishoz csatlakozik. Ha végzett, egy Express.js-alkalmazás fog futni 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
1. A minta futtatása
Először hozz létre egy minta adatalapú alkalmazást kiindulási pontként. Az ön kényelme érdekében a mintatároló tartalmazza a fejlesztői környezet konfigurációját. A fejlesztői konténer mindent tartalmaz, amire szükség van egy alkalmazás fejlesztéséhez, beleértve az adatbázist, a gyorsítótárat és minden környezeti változót, amelyre a mintaalkalmazásnak szüksége van. 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 start
programot. - 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őtCtrl
+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.
2. 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 a MongoDB-hez készült Azure Cosmos DB-t tartalmazó, alapértelmezés szerint biztonságos erőforrások készletét hozzák létre. A létrehozási folyamathoz meg kell adnia:
- A webes alkalmazás Name-ja. 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ásod DNS-nevének részeként is használatos.
- 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. 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-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örnyezet: Node 20 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. Miután a telepítés befejeződött, válassza a Ugrás az erőforráshoz gombot. Közvetlenül az App Service alkalmazáshoz kerülsz, de 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.
- A MongoDB-hez készült Azure Cosmos DB → 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.
3. Biztonságos kapcsolat titkai
A létrehozási varázsló már alkalmazásbeállításként létrehozta a kapcsolati sztringet. Azonban a biztonsági legjobb gyakorlat az, hogy az App Service-ből teljesen tartsuk távol a titkokat. 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.
- 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. Azonban a titok közvetlenül az App Service alkalmazásban van elmentve, ami nem a legjobb. Ezt meg fogod változtatni.
2. lépés: Kulcstár létrehozása a titkok biztonságos kezeléséhez.
- A felső keresőmezőbe írja be a "key vault" kifejezést, majd válassza ki 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 Régióban állítsa a mintahelyre 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 az msdocs-expressjs-mongodb-tutorial lehetőséget.
- Írja be az msdocs-expressjs-mongodb-XYZVaultEndpoint nevet.
- A virtuális hálózatban válassza az msdocs-expressjs-mongodb-XYZVnet lehetőséget.
- Az alhálózatbanmsdocs-expressjs-mongodb-XYZSubnet.
- 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átni fogod, hogy "A telepítésed 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-XYZ nevű App Service-erőforrást.
- Az App Service oldalon, a bal menüben válassza a Beállítások > Szolgáltatás Csatlakozó opciót. 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 elkészült, a Key Vault Connection legördülő lista 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 varázsló már egy privát végponttal biztosította a Cosmos DB-adatbázist.
- Válassza az Mentésgombot. Várjon, amíg megjelenik a A frissítés sikeres volt értesítés.
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
@Microsoft.KeyVault(...)
kell lennie, ami azt jelenti, hogy ez egy kulcstároló referencia, mivel a titok most a kulcstárolóban van kezelve.
Problémákat tapasztal? Nézze meg a Hibaelhárítás szakaszt.
4. Mintakód telepíté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: A telepítési központ oldalon:
- 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 ugyanaz az ág, amelyen dolgoztál a mintaprogramoddal, Azure-hoz kapcsolódó fájlok vagy konfiguráció nélkül.
- 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/workflows
kö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 behúzza az újonnan 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.connect
irányíthatja. - Mondja: "*Van egy kapcsolati string változó az Azure-ban AZURE_COSMOS_CONNECTIONSTRING." A Copilot adhat egy kódjavaslatot, ami hasonló az Option 2: GitHub Copilot nélkül lépésekhez, és akár javasolhatja is, hogy végezze el a módosítást a app.js-ben.
- Nyissa meg app.js a kezelőben, és adja hozzá a kódjavaslatot a
getApp
metódushoz. 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 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.connect
van meghívva (16. sor), és cserélje le aprocess.env.MONGODB_URI
aprocess.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 alehető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 különálló szakaszt határoz meg: építés és telepítés. 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.
Nyissa 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.
6. 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.
7. Az üzembe helyezett fájlok vizsgálata a Kudu használatával
Az Azure App Service egy Kudu nevű webalapú diagnosztikai konzolt biztosít, amellyel megvizsgálhatja a webalkalmazás kiszolgálói üzemeltetési környezeté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 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.
8. Erőforrások törlése
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.
2. Azure-erőforrások létrehozása és mintaalkalmazás üzembe helyezése
Ebben a lépésben létrehozod az Azure erőforrásokat, és telepítesz egy mintapéldány alkalmazást az App Service szolgáltatásra Linuxon. 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 init
parancsot.azd init --template nodejs-app-service-cosmos-redis-infra
Amikor megkérdezik, adja meg a következő válaszokat:
Kérdés Válasz A jelenlegi könyvtár nem üres. Szeretne indítani egy projektet itt a '<your-directory>'-ban? 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 login
parancsot, és kövesse az utasításokat.azd auth login
Hozza létre a szükséges Azure erőforrásokat, és telepítse az alkalmazáskódot a
azd up
parancs 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 up
A
azd up
parancs körülbelül 15 percet vesz igénybe a befejezéshez (a legtöbb időt a Redis cache 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 nyújt az előkészítési és telepítési folyamatról, beleértve egy hivatkozást az Azure-ban történt telepítésre. 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ás kódjának első alkalommal történő telepítését, a telepített mintaalkalmazás még nem működik, mivel kisebb változtatásokat kell végrehajtania, hogy kapcsolódhasson az Azure-adatbázishoz.
3. Ellenőrizze a kapcsolat karakterláncait
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_SCOPE
AZURE_COSMOS_CONNECTIONSTRING
az Azure-beli Cosmos DB-adatbázishoz való kapcsolati sztringet tartalmazza. Később a saját kódjában kell használni.Az ÖN kényelme érdekében 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.
4. Módosítsa a mintakódot, és telepítse újra.
A GitHub-kódtérben indítsa el az új csevegési munkamenetet a Csevegés nézetre kattintva, majd kattintson +a gombra.
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.connect
irányíthatja.Mondja: "Van egy kapcsolati karakterlánc változó az Azure-ban AZURE_COSMOS_CONNECTIONSTRING." A Copilot adhat egy kódjavaslatot, ami hasonló az Option 2: GitHub Copilot nélkül lépésekhez, és akár javasolhatja is, hogy végezze el a módosítást a app.js-ben.
Nyissa meg app.js a kezelőben, és adja hozzá a kódjavaslatot a
getApp
metódushoz.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 Copilot használatával a kódterületemen?.
A kódtér terminálhoz visszatérve futtassa a
azd deploy
parancsot.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.
Nyissa 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.
6. 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.
7. Erőforrások törlése
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 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 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 : 4. Mintakód üzembe helyezé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 gépnek a virtuális hálózaton belül kell lennie. Például lehet egy Azure VM, amely az egyik alhálózathoz csatlakozik, vagy egy olyan gép egy helyszíni hálózatban, amelynek site-to-site VPN kapcsolata van az Azure virtuális hálózattal.
- Amennyiben a MongoDB parancssorból szeretne csatlakozni az Azure Cosmos DB felügyeleti oldalon a portálon, a gépnek a virtuális hálózat részeként kell lennie. Ehelyett megnyithatja az Azure Cosmos DB-kiszolgáló tűzfalát a helyi 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
build
végén töltsd fel a fájlokat mint artefaktum. - A
deploy
feladat 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 beszélgetési munkamenet során a GitHub Copilot javaslatokat tehet a változtatásokra, és (a
@workspace
használatával) még azt is megmutathatja, hol történjenek ezek a változtatások, de nincs engedélyezve, hogy elvégezze a változtatásokat ön helyett. 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?