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


Oktatóanyag: Node.js + MongoDB-webalkalmazás üzembe helyezése az Azure-ban

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.

Képernyőkép Node.js alkalmazás adatainak Cosmos DB-ben való tárolásáról.

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

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:

  1. Jelentkezzen be GitHub-fiókjába.
  2. Navigáljon ide: https://github.com/Azure-Samples/msdocs-nodejs-mongodb-azure-sample-app/fork.
  3. Törölje a kijelölést a Csak a fő ágat másolja lehetőségnél. Akarod az összes ágat.
  4. Válassza a Fork létrehozása lehetőséget.

2. lépés: A GitHub-forkban:

  1. 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.
  2. 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:

  1. Futtassa a npm install && npm start programot.
  2. 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.

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:

  1. Írja be a „webalkalmazás adatbázis” kifejezést az Azure portál tetején található keresősávba.
  2. 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.

  1. Erőforráscsoport: Válassza az Új létrehozása lehetőséget , és használja az msdocs-expressjs-mongodb-tutorial nevet.
  2. Régió: Bármelyik Azure-régió a közeledben.
  3. Név: msdocs-expressjs-mongodb-XYZ, ahol az XYZ tetszőleges három véletlenszerű karakter.
  4. Futtatókörnyezet: Node 20 LTS.
  5. 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á.
  6. Üzemeltetési terv: Alapszintű. Amikor készen állsz, átválthatsz egy termelési árazási szintre.
  7. Válassza az Áttekintés + létrehozás lehetőséget.
  8. 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:

  1. A bal oldali menüben válassza a Beállítások > környezet változói lehetőséget.
  2. Az AZURE_COSMOS_CONNECTIONSTRING mellett válassza az Érték megjelenítése lehetőséget. Ez a kapcsolati sztring lehetővé teszi a privát végpont mögött biztonságos Cosmos DB-adatbázishoz való csatlakozást. 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.

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

3. lépés:

  1. Válassza a Hálózatkezelés lapot.
  2. Törölje a kijelölést a Nyilvános hozzáférés engedélyezése opcióról.
  3. Válassza a Privát végpont létrehozása lehetőséget.
  4. Az erőforráscsoportban válassza az msdocs-expressjs-mongodb-tutorial lehetőséget.
  5. A Key Vault nevében írjon be egy nevet, amely csak betűkből és számokból áll.
  6. A Régióban állítsa a mintahelyre erőforráscsoportként.
  7. A párbeszédablakban, a Helyszín mezőben válassza ki ugyanazt a helyszínt, mint amit az App Service alkalmazása használ.
  8. Az erőforráscsoportban válassza az msdocs-expressjs-mongodb-tutorial lehetőséget.
  9. Írja be az msdocs-expressjs-mongodb-XYZVaultEndpoint nevet.
  10. A virtuális hálózatban válassza az msdocs-expressjs-mongodb-XYZVnet lehetőséget.
  11. Az alhálózatbanmsdocs-expressjs-mongodb-XYZSubnet.
  12. Kattintson az OK gombra.
  13. 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:

  1. 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.
  2. 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.
  3. Jelölje be az összekötő melletti jelölőnégyzetet, majd válassza a Szerkesztés lehetőséget.
  4. Az Alapszintű beállítások lapon állítsa az ügyféltípustNode.jsértékre.
  5. Válassza a Hitelesítés lapot.
  6. Válaszd a Titok tárolása a kulcstárban lehetőséget.
  7. 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:

  1. A Key Vaultban válassza ki a korábban létrehozott kulcstartót.
  2. Válassza a Felülvizsgálat és létrehozás lehetőséget. Látnia kell, hogy a rendszer által hozzárendelt felügyelt identitás állapota Kiválasztott beállításon van.
  3. 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.

  1. 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.
  2. Válassza ki a Tovább: Hálózatkezelés lehetőséget.
  3. Válassza a Tűzfalszabályok konfigurálása lehetőséget a célszolgáltatáshoz való hozzáférés engedélyezéséhez. Ha a "Nincs privát végpont a célszolgáltatáson" üzenet jelenik meg, hagyja figyelmen kívül. Az alkalmazáslétrehozás varázsló már egy privát végponttal biztosította a Cosmos DB-adatbázist.
  4. Válassza 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:

  1. A bal oldali menüben válassza ismét a Környezeti változók lehetőséget.
  2. 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:

  1. A Forrás területen válassza a GitHubot. Alapértelmezés szerint a GitHub Actions van kiválasztva buildszolgáltatóként.
  2. Jelentkezz be a GitHub fiókodba, és kövesd az utasításokat az Azure engedélyezéséhez.
  3. A Szervezet menüben válassza ki fiókját.
  4. Az Adattárban válassza az msdocs-nodejs-mongodb-azure-sample-app lehetőséget.
  5. 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.
  6. A Hitelesítési típus esetén válassza a Felhasználó által hozzárendelt identitás lehetőséget.
  7. 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):

  1. Új csevegési munkamenetet indíthat, ha kiválasztja a Csevegés nézetet, majd kiválasztja a +-t.
  2. 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.
  3. 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.
  4. 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):

  1. Nyissa meg a app.js.
  2. Keresse meg azt a sort, ahol a mongoose.connect van meghívva (16. sor), és cserélje le a process.env.MONGODB_URI a process.env.AZURE_COSMOS_CONNECTIONSTRING || process.env.MONGODB_URI-re.

5. lépés:

  1. Válassza ki a Source Control kiterjesztést.
  2. 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.
  3. Válassza a Commit lehetőséget, majd erősítse meg a Igen gombbal.
  4. 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:

  1. A Naplók lapon válassza a Frissítés lehetőséget. Egy új üzembehelyezési futtatás már elindult a véglegesített módosításokból.
  2. 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:

  1. A bal oldali menüből válassza a Áttekintés lehetőséget.
  2. 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:

  1. A bal oldali menüben válassza az App Service-naplók lehetőséget.
  2. Az Alkalmazásnaplózás területen válassza a Fájlrendszer lehetőséget.
  3. A felső menüben válassza a 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:

  1. A bal oldali menüben válassza a Speciális eszközök lehetőséget.
  2. 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:

  1. Adja meg az erőforráscsoport nevét.
  2. 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:

  1. A törlés megerősítéséhez adja meg az erőforráscsoport nevét.
  2. 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).

  1. Az adattár gyökerében futtassa a azd init parancsot.

    azd init --template nodejs-app-service-cosmos-redis-infra
    
  2. 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.
  3. Az Azure-ba való belépéshez futtassa a azd auth login parancsot, és kövesse az utasításokat.

    azd auth login
    
  4. Hozza létre a szükséges Azure erőforrásokat, és telepítse az alkalmazáskódot a azd up 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.

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

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

  1. A GitHub-kódtérben indítsa el az új csevegési munkamenetet a Csevegés nézetre kattintva, majd kattintson +a gombra.

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

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

  4. 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?.

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

  1. 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>
     
  2. Adj hozzá néhány feladatot a listához.

    Képernyőkép a Express.js webalkalmazásról, amelyen az Azure-ban futó Cosmos DB feladatok láthatók.

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

Problémákat tapasztal? 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 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 : 4. Mintakód üzembe helyezése.

Gyakori kérdések

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

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

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 a mongosh, 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 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?

Következő lépések