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


Oktatóanyag: ASP.NET Core- és Azure SQL Database-alkalmazás üzembe helyezése Azure-alkalmazás Szolgáltatásban

Ebben az oktatóanyagban megtudhatja, hogyan helyezhet üzembe adatvezérelt ASP.NET Core-alkalmazást a szolgáltatás Azure-alkalmazás, és hogyan csatlakozhat egy Azure SQL Database-hez. Emellett üzembe fog helyezni egy Azure Cache for Redist is, hogy engedélyezze a gyorsítótárazási kódot az alkalmazásban. Azure-alkalmazás szolgáltatás egy nagymértékben skálázható, önjavító, web hosting szolgáltatás, amely könnyen üzembe helyezhet alkalmazásokat Windowson vagy Linuxon. Bár ez az oktatóanyag egy ASP.NET Core 8.0-alkalmazást használ, a folyamat ugyanaz, mint a ASP.NET Core más verzióiban.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Biztonságos alapértelmezett App Service-, SQL Database- és Redis-gyorsítótár-architektúra létrehozása
  • Adatvezérelt mintaalkalmazás üzembe helyezése ASP.NET Core-alkalmazáshoz
  • Kapcsolati sztring és alkalmazásbeállítások használata
  • Adatbázisséma létrehozása migrálási csomag feltöltésével
  • Diagnosztikai naplók streamelése az Azure-ból
  • Az alkalmazás kezelése az Azure Portalon
  • Üzembe helyezés és üzembe helyezés az Azure Developer CLI használatával

Előfeltételek

  • Egy Azure-fiók, aktív előfizetéssel. Ha nem rendelkezik Azure-fiókkal, ingyenesen létrehozhat egyet.
  • Egy GitHub-fiók. ingyenesen is beszerezhet egyet.
  • A ASP.NET Core fejlesztésének ismerete.
  • (Nem kötelező) A GitHub Copilot kipróbálásához egy GitHub Copilot-fiók. 30 napos ingyenes próbaverzió érhető el.

1. A minta futtatása

Először állítson be egy adatvezérelt mintaalkalmazást kiindulási pontként. Az Ön kényelme érdekében a mintaadattár tartalmaz egy fejlesztői tárolókonfigurációt. A fejlesztői tároló mindent tartalmaz, amire szüksége van egy alkalmazás fejlesztéséhez, beleértve az adatbázist, a gyorsítótárat és a mintaalkalmazás által igényelt összes környezeti változót. A fejlesztői tároló egy GitHub-kódtérben futtatható, ami azt jelenti, hogy a mintát bármely számítógépen futtathatja webböngészővel.

1. lépés: Új böngészőablakban:

  1. Jelentkezzen be a GitHub-fiókjába.
  2. Nyissa meg a https://github.com/Azure-Samples/msdocs-app-service-sqldb-dotnetcore/fork címet.
  3. Törölje a jelölést : Csak a főág másolása. Az összes ágat szeretnéd.
  4. Válassza az Elágazás létrehozása lehetőséget.

Képernyőkép a GitHub-mintaadattár elágazásáról.

2. lépés: A GitHub-elágazásban:

  1. Válassza ki a kezdő ág fő>starter-no-infra elemét. Ez az ág csak a mintaprojektet tartalmazza, és nincs Azure-nal kapcsolatos fájl vagy konfiguráció.
  2. Válassza a Code Create codespace (Kód>létrehozása) lehetőséget a főoldalon. A kódtér beállítása néhány percet vesz igénybe.

Képernyőkép arról, hogyan hozhat létre kódteret a GitHubon.

3. lépés: A kódtér termináljában:

  1. Adatbázis-áttelepítések futtatása a következővel dotnet ef database update: .
  2. Futtassa az alkalmazást a következővel dotnet run: .
  3. Amikor megjelenik az értesítésYour application running on port 5093 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. Az alkalmazás leállításához írja be a következőt Ctrl+C: .

Képernyőkép a mintaalkalmazás GitHub-kódtérben való futtatásáról.

Tipp.

Erről az adattárról a GitHub Copilotot is megkérdezheti. Példa:

  • @workspace Mit tesz ez a projekt?
  • @workspace Mit tesz a .devcontainer mappa?

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

1. App Service, adatbázis és gyorsítótár létrehozása

Ebben a lépésben hozza létre az Azure-erőforrásokat. Az oktatóanyagban használt lépések az App Service, az Azure SQL Database és az Azure Cache szolgáltatást is tartalmazó, alapértelmezés szerint biztonságos erőforrások készletét hozzák létre. A létrehozási folyamathoz a következőket kell megadnia:

  • A webalkalmazás neve . Ez a webalkalmazás https://<app-name>.azurewebsites.netDNS-nevének részeként használt név.
  • A régió , amely fizikailag futtatja az alkalmazást a világon.
  • Az alkalmazás futtatókörnyezeti vereme . Itt választhatja ki az alkalmazáshoz használni kívánt .NET-verziót.
  • Az alkalmazás üzemeltetési terve . Ez a tarifacsomag, amely tartalmazza az alkalmazás funkcióit és skálázási kapacitását.
  • Az alkalmazás erőforráscsoportja . Az erőforráscsoportokkal (logikai tárolóban) csoportosíthatja az alkalmazáshoz szükséges Összes Azure-erőforrást.

Jelentkezzen be az Azure Portalra, és kövesse az alábbi lépéseket a Azure-alkalmazás szolgáltatás erőforrásainak létrehozásához.

1. lépés: Az Azure Portalon:

  1. Írja be a "webalkalmazás-adatbázis" kifejezést az Azure Portal tetején található keresősávba.
  2. Válassza ki a Web App + Adatbázis címkével ellátott elemet a Marketplace címsora alatt. A létrehozási varázslót közvetlenül is megnyithatja.

Képernyőkép arról, hogyan keresheti meg a WebAlkalmazás + Adatbázis létrehozása varázslót a felső eszköztár keresőmezőjében.

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-core-sql-tutorial nevet.
  2. Régió: Bármely Önhöz közeli Azure-régió.
  3. Név: msdocs-core-sql-XYZ, ahol az XYZ három véletlenszerű karakter. Ennek a névnek az Azure-on belül egyedinek kell lennie.
  4. Futtatókörnyezeti verem: .NET 8 (LTS).
  5. Azure Cache for Redis hozzáadása?: Igen.
  6. Üzemeltetési terv: Alapszintű. Ha készen áll, később felskálázhatja az éles tarifacsomagot.
  7. Válassza az SQLAzure lehetőséget adatbázismotorként. Az Azure SQL Database egy teljes körűen felügyelt platform szolgáltatásként (PaaS) adatbázismotor, amely mindig az SQL Server legújabb stabil verzióján fut.
  8. Válassza az Áttekintés + létrehozás lehetőséget.
  9. Az ellenőrzés befejezése után válassza a Létrehozás lehetőséget.

Képernyőkép egy új alkalmazás és adatbázis konfigurálásáról a WebAlkalmazás + Adatbázis varázslóban.

3. lépés: Az üzembe helyezés néhány percet vesz igénybe. Az üzembe helyezés befejeződése után válassza az Erőforrás megnyitása gombot. Közvetlenül az App Service-alkalmazásba kerül, de a következő erőforrások jönnek létre:

  • Erőforráscsoport: Az összes létrehozott erőforrás tárolója.
  • App Service-csomag: Meghatározza az App Service számítási erőforrásait. Létrejön egy Linux-csomag az alapszinten .
  • App Service: Az alkalmazást jelöli, és az App Service-csomagban fut.
  • Virtuális hálózat: Integrálva az App Service alkalmazással, és elkülöníti a háttérhálózat forgalmát.
  • Privát végpontok: Hozzáférési végpontok az adatbázis-kiszolgálóhoz és a Redis-gyorsítótárhoz a virtuális hálózaton.
  • Hálózati adapterek: Magánhálózati IP-címeket jelöl, egyet a privát végpontokhoz.
  • Azure SQL Database-kiszolgáló: Csak a privát végpontja mögött érhető el.
  • Azure SQL Database: A rendszer létrehoz egy adatbázist és egy felhasználót a kiszolgálón.
  • Azure Cache for Redis: Csak a privát végpontja mögött érhető el.
  • saját DNS zónák: Engedélyezze az adatbázis-kiszolgáló és a Redis-gyorsítótár DNS-feloldását a virtuális hálózaton.

Képernyőkép az üzembe helyezési folyamat befejezéséről.

2. A kapcsolati sztring ellenőrzése

A létrehozási varázsló már létrehozott kapcsolati sztring az SQL-adatbázishoz és a Redis-gyorsítótárhoz. Ebben a lépésben keresse meg a létrehozott kapcsolati sztring később.

1. lépés: Az App Service lap bal oldali menüjében válassza a Beállítások>környezet változói lehetőséget.

Képernyőkép a konfigurációs lap App Service-ben való megnyitásáról.

2. lépés:

  1. Keresse meg AZURE_REDIS_CONNECTIONSTRING az Alkalmazásbeállítások szakaszban. Ezt a sztringet a létrehozási varázsló hozta létre az új Redis-gyorsítótárból. Az alkalmazás beállításához csak erre a névre van szüksége.
  2. Válassza a Kapcsolati sztringek lehetőséget, és keresse meg a AZURE_SQL_CONNECTIONSTRING a Kapcsolati sztringek szakaszban. Ezt a sztringet a létrehozási varázsló hozta létre az új SQL-adatbázisból. Az alkalmazás beállításához csak erre a névre van szüksége.
  3. Ha szeretné, kiválaszthatja a beállítást, és megtekintheti, másolhatja vagy szerkesztheti annak értékét. Később módosítja az alkalmazást a használatra AZURE_SQL_CONNECTIONSTRING és AZURE_REDIS_CONNECTIONSTRINGa .

Képernyőkép alkalmazásbeállítás létrehozásáról.

3. Mintakód üzembe helyezése

Ebben a lépésben konfigurálja a GitHub üzembe helyezését a GitHub Actions használatával. Ez csak egy az App Service-ben történő üzembe helyezés számos módja közül, de nagyszerű módja annak is, hogy folyamatos integrációt nyújtsunk az üzembe helyezési folyamatba. Alapértelmezés szerint a GitHub-adattár minden git push eleme elindítja a buildelési és üzembe helyezési műveletet.

1. lépés: A bal oldali menüben válassza az Üzembe helyezési>központ lehetőséget.

Képernyőkép az üzembehelyezési központ App Service-ben való megnyitásáról.

2. lépés: Az Üzembehelyezési központ lapon:

  1. A Forrás területen válassza a GitHubot. Alapértelmezés szerint a GitHub Actions van kiválasztva buildszolgáltatóként.
  2. Jelentkezzen be a GitHub-fiókjába, és kövesse az utasításokat az Azure engedélyezéséhez.
  3. A Szervezetben válassza ki a fiókját.
  4. Az Adattárban válassza az msdocs-app-service-sqldb-dotnetcore lehetőséget.
  5. Az Ágban válassza a starter-no-infra lehetőséget. Ez ugyanaz az ág, amelyben a mintaalkalmazással dolgozott, azure-ral kapcsolatos fájlok és konfigurációk nélkül.
  6. Hitelesítési típus esetén válassza a felhasználó által hozzárendelt identitást.
  7. A felső menüben válassza a Mentés lehetőséget. Az App Service véglegesít egy munkafolyamat-fájlt a kiválasztott GitHub-adattárba a .github/workflows címtárban. Alapértelmezés szerint az üzembehelyezési központ létrehoz egy felhasználó által hozzárendelt identitást a munkafolyamathoz a Microsoft Entra (OIDC-hitelesítés) használatával történő hitelesítéshez. Alternatív hitelesítési lehetőségekért lásd : Üzembe helyezés az App Service-ben a GitHub Actions használatával.

Képernyőkép a CI/CD GitHub Actions használatával történő konfigurálásáról.

3. lépés: Futtassa git pull origin starter-no-infraújra a mintaelágazás GitHub-kódterében. Ezzel lekéri az újonnan véglegesített munkafolyamat-fájlt a kódtérbe.

Képernyőkép a GitHub-kódtéren belüli git-lekérésről.

4. lépés (1. lehetőség: a GitHub Copilottal):

  1. Indítsa el az új csevegési munkamenetet a Csevegés nézet kiválasztásával, majd válassza a +lehetőséget.
  2. Kérdés: "@workspace Hogyan csatlakozik az alkalmazás az adatbázishoz és a gyorsítótárhoz?" A Copilot esetleg magyarázatot ad az MyDatabaseContext osztályról és a Program.cs konfigurálásáról.
  3. "Éles módban azt szeretném, ha az alkalmazás az adatbázishoz AZURE_SQL_CONNECTIONSTRING nevű kapcsolati sztring és a AZURE_REDIS_CONNECTIONSTRING* nevű alkalmazásbeállítást használna." Előfordulhat, hogy a Copilot a 2. lehetőséghez hasonló kódjavaslatot ad: a GitHub Copilot alábbi lépései nélkül, és akár azt is, hogy végezze el a módosítást a Program.cs fájlban.
  4. Nyissa meg Program.cs az Explorerben, és adja hozzá a kódjavaslatot. A GitHub Copilot nem minden alkalommal ad ugyanazt a választ, és ez nem mindig helyes. Előfordulhat, hogy további kérdéseket kell feltennie a válasz finomhangolásához. Tippekért lásd : Mit tehetek a GitHub Copilottal a kódtérben?

Képernyőkép arról, hogyan tehet fel kérdést egy új GitHub Copilot-csevegésben.

4. lépés (2. lehetőség: a GitHub Copilot nélkül):

  1. Nyissa meg a Program.cs a explorerben.
  2. Keresse meg a megjegyzésben szereplő kódot (12–21. sor), és bontsa ki. Ez a kód az alkalmazásbeállítással AZURE_REDIS_CONNECTIONSTRINGcsatlakozik az adatbázishoz a Redis-gyorsítótár használatával AZURE_SQL_CONNECTIONSTRING és az ahhoz való csatlakozással.

Képernyőkép egy GitHub-kódtérről és a megnyitott Program.cs fájlról.

5. lépés (1. lehetőség: a GitHub Copilottal):

  1. Nyissa meg a .github/workflows/starter-no-infra_msdocs-core-sql-XYZ fájlt az explorerben. Ezt a fájlt az App Service létrehozási varázslója hozta létre.
  2. Jelölje ki a dotnet publish lépést, és válassza a lehetőséget .
  3. Kérdezze meg a Copilotot: "Telepítse a dotnet ef-t, majd hozzon létre egy migrálási csomagot ugyanabban a kimeneti mappában."
  4. Ha a javaslat elfogadható, válassza az Elfogadás lehetőséget. A GitHub Copilot nem minden alkalommal ad ugyanazt a választ, és ez nem mindig helyes. Előfordulhat, hogy további kérdéseket kell feltennie a válasz finomhangolásához. Tippekért lásd : Mit tehetek a GitHub Copilottal a kódtérben?

Képernyőkép a GitHub Copilot GitHub-munkafolyamat-fájlban való használatáról.

5. lépés (2. lehetőség: a GitHub Copilot nélkül):

  1. Nyissa meg a .github/workflows/starter-no-infra_msdocs-core-sql-XYZ fájlt az explorerben. Ezt a fájlt az App Service létrehozási varázslója hozta létre.
  2. dotnet publish A lépés alatt adjon hozzá egy lépést az Entity Framework Core eszköz telepítéséhez a paranccsaldotnet tool install -g dotnet-ef --version 8.*.
  3. Az új lépésben adjon hozzá egy újabb lépést az adatbázis-migrálási csomag létrehozásához az üzembehelyezési csomagban: dotnet ef migrations bundle --runtime linux-x64 -o ${{env.DOTNET_ROOT}}/myapp/migrationsbundle. A migrálási csomag egy önálló végrehajtható fájl, amely a .NET SDK nélkül futtatható az éles környezetben. A Linux App Service-tárolóban csak a .NET-futtatókörnyezet található, a .NET SDK-val nem.

Képernyőkép az adatbázis-migrálási csomag GitHub-munkafolyamat-fájljának lépéseiről.

6. lépés:

  1. Válassza ki a Forrásvezérlő bővítményt.
  2. A szövegmezőbe írjon be egy véglegesítési üzenetet, például Configure Azure database and cache connections: . Vagy válassza ki és hagyja, hogy a GitHub Copilot véglegesítési üzenetet hozzon létre Önnek.
  3. Válassza a Véglegesítés lehetőséget, majd erősítse meg igennel.
  4. Válassza a Módosítások szinkronizálása 1 lehetőséget, majd erősítse meg az OK gombot.

Képernyőkép a véglegesített és a GitHubra leküldött módosításokról.

7. lépés: Vissza az Üzembehelyezési központ lapra az Azure Portalon:

  1. Válassza a Naplókat. Egy új üzembehelyezési futtatás már elindult a véglegesített módosításokból. Előfordulhat, hogy a Frissítés lehetőséget kell választania a megtekintéséhez.
  2. Az üzembe helyezési futtatás naplóelemében válassza ki a Build/Deploy Logs bejegyzést a legújabb időbélyeggel.

Képernyőkép arról, hogyan nyithatja meg az üzembehelyezési naplókat az üzembehelyezési központban.

8. lépés: A GitHub-adattárba kerül, és láthatja, hogy a GitHub-művelet fut. A munkafolyamat-fájl két különálló szakaszt határoz meg, a buildelést és az üzembe helyezést. Várja meg, amíg a GitHub-futtatás sikeres állapotot jelenít meg. Körülbelül 5 percig tart.

Képernyőkép egy folyamatban lévő GitHub-futtatásról.

4. Adatbázisséma létrehozása

A virtuális hálózat által védett SQL Database használatával a dotnet-adatbázisok migrálásának legegyszerűbb módja az App Service-tárolóval folytatott SSH-munkamenet.

1. lépés: Az App Service lap bal oldali menüjében válassza a Development Tools>SSH lehetőséget, majd az Ugrás lehetőséget.

Képernyőkép az alkalmazás SSH-felületének az Azure Portalról való megnyitásáról.

2. lépés: Az SSH-terminálban:

  1. Futtassa az cd /home/site/wwwroot parancsot. Itt találja az összes telepített fájlt.
  2. Futtassa a GitHub-munkafolyamat által létrehozott migrálási csomagot a paranccsal ./migrationsbundle -- --environment Production. Ha sikerül, az App Service sikeresen csatlakozik az SQL Database-hez. Ne feledje, hogy --environment Production megfelel a Program.cs végrehajtott kódmódosításoknak.

Képernyőkép az SSH-rendszerhéjban futtatandó parancsokról és azok kimenetéről.

Az SSH-munkamenetben /home csak a fájlok módosításai őrizhetők meg az alkalmazás újraindítása után. A külső /home módosítások nem maradnak meg.

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

5. Tallózás az alkalmazáshoz

1. lépés: Az App Service oldalán:

  1. A bal oldali menüben válassza az Áttekintés lehetőséget.
  2. Válassza ki az alkalmazás URL-címét. Közvetlenül a következőre https://<app-name>.azurewebsites.netis navigálhat.

Képernyőkép az App Service Azure Portalról való elindításáról.

2. lépés: Adjon hozzá néhány feladatot a listához. Gratulálunk, egy biztonságos, adatvezérelt ASP.NET Core-alkalmazást futtat a Azure-alkalmazás Service-ben.

Képernyőkép az App Service-ben futó .NET Core-alkalmazásról.

Tipp.

A mintaalkalmazás implementálja a gyorsítótár-feltöltési mintát. Amikor másodszor látogat meg egy adatnézetet, vagy újra betölti ugyanazt a lapot az adatmódosítások elvégzése után, a weblap feldolgozási ideje sokkal gyorsabban jelenik meg, mert az adatbázis helyett a gyorsítótárból tölti be az adatokat.

6. Diagnosztikai naplók streamelése

Azure-alkalmazás szolgáltatás 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.

1. lépés: Az App Service oldalán:

  1. A bal oldali menüben válassza az App Service-naplók figyelése>lehetőséget.
  2. Az Alkalmazásnaplózás területen válassza a Fájlrendszer, majd a Mentés lehetőséget.

Képernyőkép a natív naplók engedélyezéséről az App Service-ben az Azure Portalon.

2. lépés: A bal oldali menüben válassza a Naplóstream lehetőséget. Láthatja az alkalmazás naplóit, beleértve a platformnaplókat és a tárolón belüli naplókat.

Képernyőkép arról, hogyan tekintheti meg a naplóstreamet az Azure Portalon.

7. Erőforrások törlése

Ha végzett, törölheti az összes erőforrást az Azure-előfizetéséből az erőforráscsoport törlésével.

1. lépés: Az Azure Portal tetején található keresősávon:

  1. Adja meg az erőforráscsoport nevét.
  2. Válassza ki az erőforráscsoportot.

Képernyőkép arról, hogyan kereshet és navigálhat egy erőforráscsoportra az Azure Portalon.

2. lépés: Az erőforráscsoport lapján válassza az Erőforráscsoport törlése lehetőséget.

Képernyőkép az Erőforráscsoport törlése gomb helyéről az Azure Portalon.

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.

Képernyőkép egy erőforráscsoport Azure Portalon való törlésének megerősítő párbeszédpaneléről. :

2. Azure-erőforrások létrehozása és mintaalkalmazás üzembe helyezése

Ebben a lépésben létrehozza az Azure-erőforrásokat, és üzembe helyez egy mintaalkalmazást a Linuxon futó App Service-ben. Az oktatóanyagban használt lépések az App Service, az Azure SQL Database és az Azure Cache for Redis szolgáltatást 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. Futtassa azd initaz adattár gyökerét.

    azd init --template dotnet-app-service-sqldb-infra
    
  2. Amikor a rendszer kéri, adja meg a következő válaszokat:

    Kérdés Válasz
    Az aktuális könyvtár nem üres. Inicializálni szeretne egy projektet itt a "saját könyvtárában>"?< Y
    Mit szeretne tenni ezekkel a fájlokkal? Meglévő fájljaim változatlanul tartása
    Adjon meg egy új környezetnevet Írjon be egy egyedi nevet. Az AZD-sablon ezt a nevet használja a webalkalmazás DNS-nevének részeként az Azure-ban (<app-name>.azurewebsites.net). Alfanumerikus karakterek és kötőjelek engedélyezettek.
  3. Jelentkezzen be az Azure-ba a azd auth login parancs futtatásával és a parancssor követésével:

    azd auth login
    
  4. Hozza létre a szükséges Azure-erőforrásokat, és telepítse az alkalmazáskódot a azd up paranccsal. Kövesse az utasításokat az Azure-erőforrások kívánt előfizetésének és helyének kiválasztásához.

    azd up
    

    A azd up parancs végrehajtása körülbelül 15 percet vesz igénybe (a Redis-gyorsítótár a legtöbb időt veszi igénybe). Emellett lefordítja és üzembe helyezi az alkalmazáskódot, de később módosítja a kódot, hogy működjön az App Service-lel. Amíg fut, a parancs üzeneteket küld a kiépítési és üzembe helyezési folyamatról, beleértve az Azure-beli üzembe helyezésre mutató hivatkozást is. Amikor befejeződik, a parancs egy hivatkozást is megjelenít az üzembe helyezési alkalmazásra.

    Ez az AZD-sablon olyan fájlokat (azure.yaml és infra könyvtár) tartalmaz, amelyek az alábbi Azure-erőforrásokkal létrehoznak egy alapértelmezett, biztonságos architektúrát:

    • Erőforráscsoport: Az összes létrehozott erőforrás tárolója.
    • App Service-csomag: Meghatározza az App Service számítási erőforrásait. Létrejön egy Linux-csomag az alapszinten .
    • App Service: Az alkalmazást jelöli, és az App Service-csomagban fut.
    • Virtuális hálózat: Integrálva az App Service alkalmazással, és elkülöníti a háttérhálózat forgalmát.
    • Privát végpontok: Hozzáférési végpontok az adatbázis-kiszolgálóhoz és a Redis-gyorsítótárhoz a virtuális hálózaton.
    • Hálózati adapterek: Magánhálózati IP-címeket jelöl, egyet a privát végpontokhoz.
    • Azure SQL Database-kiszolgáló: Csak a privát végpontja mögött érhető el.
    • Azure SQL Database: A rendszer létrehoz egy adatbázist és egy felhasználót a kiszolgálón.
    • Azure Cache for Redis: Csak a privát végpontja mögött érhető el.
    • saját DNS zónák: Engedélyezze az adatbázis-kiszolgáló és a Redis-gyorsítótár DNS-feloldását a virtuális hálózaton.

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

3. A kapcsolati sztring ellenőrzése

Az Ön által használt AZD-sablon már alkalmazásbeállításokként létrehozta a kapcsolati változókat, és azokat az ön kényelme érdekében a terminálon adja ki. Az alkalmazásbeállítások az egyik módja annak, hogy a kapcsolat titkos kulcsait ne használja a kódtárban.

  1. Az AZD-kimenetben keresse meg a beállításokat AZURE_SQL_CONNECTIONSTRING és AZURE_REDIS_CONNECTIONSTRINGa . A titkos kódok biztonsága érdekében csak a beállításnevek jelennek meg. Így néznek ki az AZD-kimenetben:

     App Service app has the following connection strings:
    
             - AZURE_SQL_CONNECTIONSTRING
             - AZURE_REDIS_CONNECTIONSTRING
     

    AZURE_SQL_CONNECTIONSTRINGtartalmazza az Azure-beli SQL Database kapcsolati sztring, és AZURE_REDIS_CONNECTIONSTRING tartalmazza az Azure Redis cache-hez kapcsolati sztring. Ezeket később kell használnia a kódban.

  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? Tekintse meg a hibaelhárítási szakaszt.

4. Mintakód módosítása és ismételt üzembe helyezés

  1. A mintaelágaztatás GitHub-kódterében indítsa el az új csevegési munkamenetet a Csevegés nézet kiválasztásával, majd válassza a lehetőséget +.

  2. Kérdés: "@workspace Hogyan csatlakozik az alkalmazás az adatbázishoz és a gyorsítótárhoz?" A Copilot esetleg magyarázatot ad az MyDatabaseContext osztályról és a Program.cs konfigurálásáról.

  3. "Éles módban azt szeretném, ha az alkalmazás az adatbázishoz AZURE_SQL_CONNECTIONSTRING nevű kapcsolati sztring és a AZURE_REDIS_CONNECTIONSTRING* nevű alkalmazásbeállítást használna." Előfordulhat, hogy a Copilot a 2. lehetőséghez hasonló kódjavaslatot ad: a GitHub Copilot alábbi lépései nélkül, és akár azt is, hogy végezze el a módosítást a Program.cs fájlban.

  4. Nyissa meg Program.cs az Explorerben, és adja hozzá a kódjavaslatot.

    A GitHub Copilot nem minden alkalommal ad ugyanazt a választ, és ez nem mindig helyes. Előfordulhat, hogy további kérdéseket kell feltennie a válasz finomhangolásához. Tippekért lásd : Mit tehetek a GitHub Copilottal a kódtérben?

A módosítások üzembe helyezése előtt még létre kell hoznia egy migrálási csomagot.

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

4. Adatbázisséma létrehozása

A virtuális hálózat által védett SQL Database használatával az adatbázis-áttelepítések futtatásának legegyszerűbb módja az App Service-tárolóval folytatott SSH-munkamenet. Az App Service Linux-tárolói azonban nem rendelkeznek .NET SDK-val, így az adatbázis-áttelepítések futtatásának legegyszerűbb módja egy önálló migrálási csomag feltöltése.

  1. Hozzon létre egy migrálási csomagot a projekthez a következő paranccsal:

    dotnet ef migrations bundle --runtime linux-x64 -o migrationsbundle
    

    Tipp.

    A mintaalkalmazás (lásd : DotNetCoreSqlDb.csproj) úgy van konfigurálva, hogy belefoglalja ezt a migrationsbundle-fájlt . A fázis során a azd package migrálási csomag hozzá lesz adva az üzembe helyezési csomaghoz.

  2. Az összes módosítás üzembe helyezése a következővel azd up: .

    azd up
    
  3. Az azd kimenetben keresse meg az SSH-munkamenet URL-címét, és keresse meg a böngészőben. Így néz ki a kimenetben:

     Open SSH session to App Service container at: https://<app-name>.scm.azurewebsites.net/webssh/host
     
  4. Az SSH-terminálon futtassa a következő parancsokat:

    cd /home/site/wwwroot
    ./migrationsbundle -- --environment Production
    

    Ha sikeres, az App Service sikeresen csatlakozik az adatbázishoz. Ne feledje, hogy --environment Production megfelel a Program.cs végrehajtott kódmódosításoknak.

Az SSH-munkamenetben /home csak a fájlok módosításai őrizhetők meg az alkalmazás újraindítása után. A külső /home módosítások nem maradnak meg.

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

6. Tallózás az alkalmazáshoz

  1. Az AZD-kimenetben keresse meg az alkalmazás URL-címét, és keresse meg a böngészőben. Az URL-cím így néz ki az AZD-kimenetben:

     Deploying services (azd deploy)
    
       (✓) Done: Deploying service web
       - Endpoint: https://<app-name>.azurewebsites.net/
     
  2. Adjon hozzá néhány feladatot a listához.

    Képernyőkép a ASP.NET Core webalkalmazásról, amelyen az Azure-ban futó SQL Database feladatok láthatók.

    Gratulálunk, egy webalkalmazást futtat a Azure-alkalmazás Service-ben, biztonságos kapcsolattal az Azure SQL Database-hez.

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

7. Diagnosztikai naplók streamelése

Azure-alkalmazás szolgáltatás rögzítheti a konzolnaplókat az alkalmazással kapcsolatos problémák diagnosztizálásához. A kényelem kedvéért az AZD-sablon már engedélyezte a naplózást a helyi fájlrendszerbe , és a naplókat egy Log Analytics-munkaterületre szállítja.

Az AZD-kimenetben keresse meg az App Service-naplók streameléséhez és a böngészőben való navigáláshoz használt hivatkozást. A hivatkozás így néz ki az AZD-kimenetben:

Stream App Service logs at: https://portal.azure.com/#@/resource/subscriptions/<subscription-guid>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name>/logStream

További információ a .NET-alkalmazásokban való naplózásról az Azure Monitor OpenTelemetry engedélyezése .NET-, Node.js-, Python- és Java-alkalmazásokhoz című sorozatban.

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

8. Erőforrások törlése

Ha törölni szeretné az összes Azure-erőforrást az aktuális üzemi környezetben, futtassa azd down és kövesse az utasításokat.

azd down

Hibaelhárítás

Az Azure SQL Database 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 SQL Database üzembe helyezési állapota jelenik Conflictmeg, és a művelet részletei az alábbi üzenettel láthatók:

InternalServerError: An unexpected error occured while processing the request.

Ezt a hibát valószínűleg a kiválasztott régióra vonatkozó előfizetés korlátja okozza. Próbáljon meg másik régiót választani az üzembe helyezéshez.

Az Azure Portalon a webalkalmazás naplóstreamjének felhasználói felülete hálózati hibákat jelenít meg

A következő hibaüzenet jelenhet meg:

Unable to open a connection to your app. This may be due to any network security groups or IP restriction rules that you have placed on your app. To use log streaming, please make sure you are able to access your app directly from your current network.

Ez általában átmeneti hiba az alkalmazás első indításakor. Várjon néhány percet, és ellenőrizze újra.

Az SSH-munkamenet a böngészőben SSH CONN CLOSED

A Linux-tároló elindítása néhány percet vesz igénybe. Várjon néhány percet, és ellenőrizze újra.

Megjelenik Connected! a portál naplóstream oldala, de nincsenek naplók

A diagnosztikai naplók konfigurálása után az alkalmazás újraindul. Előfordulhat, hogy frissítenie kell a lapot, hogy a módosítások érvénybe lépjenek a böngészőben.

Gyakori kérdések

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

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

  • Az App Service-csomag alapszinten jön létre, és fel- vagy leskálázható. Lásd az App Service díjszabását.
  • Az Azure SQL Database általános célú, kiszolgáló nélküli szinten jön létre standard sorozatú hardvereken a minimális magokkal. Kis költséggel jár, és más régiókba is elosztható. A maximális méret csökkentésével még tovább csökkentheti a költségeket, vagy vertikálisan felskálázhatja a kiszolgálószint, a számítási szint, a hardverkonfiguráció, a magok száma, az adatbázis mérete és a zónaredundancia módosításával. Lásd: Az Azure SQL Database díjszabása.
  • Az Azure Cache for Redis alapszintű, minimális gyorsítótármérettel jön létre. Ez a szint egy kis költséggel jár. Magasabb teljesítményszintekre skálázhatja a magasabb rendelkezésre állás, a fürtözés és más funkciók érdekében. Tekintse meg az Azure Cache for Redis díjszabását.
  • A virtuális hálózat csak akkor számít fel díjat, ha nem konfigurál további funkciókat, például társviszony-létesítést. Tekintse meg az Azure Virtual Network díjszabását.
  • A privát DNS-zóna kis díjat számít fel. Tekintse meg az Azure DNS díjszabását.

Hogyan csatlakozni a virtuális hálózat mögött más eszközökkel védett Azure SQL Database-kiszolgálóhoz?

  • A parancssori eszközről való alapszintű hozzáféréshez az alkalmazás SSH-termináljáról is futtatható sqlcmd . Az alkalmazás tárolója nem található sqlcmdmeg, ezért manuálisan kell telepítenie. Ne feledje, hogy a telepített ügyfél nem marad fenn az alkalmazás újraindítása során.
  • Ha SQL Server Management Studio-ügyfélről vagy Visual Studióból szeretne csatlakozni, a 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 egy olyan gépe, amely helyek közötti VPN-kapcsolattal rendelkezik az Azure-beli virtuális hálózattal.

Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions használatával?

Vegyük példaként az App Service automatikusan létrehozott munkafolyamat-fájlját, és mindegyik git push elindít egy új buildet és üzembe helyezést. A GitHub-adattár helyi klónjából a kívánt frissítéseket leküldheti a GitHubra. Példa:

git add .
git commit -m "<some-message>"
git push origin main

Hogyan hibakeresési hibákat a GitHub Actions üzembe helyezése során?

Ha egy lépés meghiúsul az automatikusan létrehozott GitHub-munkafolyamatfájlban, próbálja meg módosítani a sikertelen parancsot, hogy részletesebb kimenetet hozzon létre. A parancsok bármelyikéből dotnet például több kimenetet kaphat a -v beállítás hozzáadásával. Véglegesítse és küldje le a módosításokat, hogy egy másik üzembe helyezést aktiváljon az App Service-be.

Nincs jogosultságom felhasználó által hozzárendelt identitás létrehozására

Lásd: A GitHub Actions üzembe helyezésének beállítása az üzembe helyezési központból.

Mit tehetek a GitHub Copilottal a kódtérben?

Lehet, hogy észrevette, hogy a GitHub Copilot csevegési nézete már ott volt a kódtér létrehozásakor. Az Ön kényelme érdekében a GitHub Copilot csevegőbővítményt is belefoglaljuk a tárolódefinícióba (lásd: .devcontainer/devcontainer.json). Azonban szüksége van egy GitHub Copilot-fiókra (30 napos ingyenes próbaverzió érhető el).

Néhány tipp a GitHub Copilot használatához:

  • Egyetlen csevegési munkamenetben a kérdések és válaszok egymásra épülnek, és módosíthatja a kérdéseket, hogy finomhangolja a választ.
  • Alapértelmezés szerint a GitHub Copilot nem rendelkezik hozzáféréssel az adattárban lévő fájlokhoz. Ha fel szeretne kérdezni egy fájlt, először nyissa meg a fájlt a szerkesztőben.
  • Ha azt szeretné, hogy a GitHub Copilot hozzáférhessen az adattárban lévő összes fájlhoz a válaszok előkészítésekor, kezdje a kérdést a következővel @workspace: . További információ: Use the @workspace agent.
  • A csevegési munkamenetben a GitHub Copilot javasolhat módosításokat, és (azokkal együtt @workspace) még azt is, hogy hol végezze el a módosításokat, de önnek nem engedélyezett a módosítások végrehajtása. Önnek kell hozzáadnia a javasolt módosításokat, és tesztelnie kell azt.

Íme néhány más dolog, amit mondhat, hogy finomhangolja a választ kap.

  • Azt akarom, hogy ez a kód csak éles módban fusson.
  • Azt akarom, hogy ez a kód csak a Azure-alkalmazás szolgáltatásban fusson, helyileg nem.
  • A --output-path paraméter nem támogatott.

Folytassa a következő oktatóanyaggal, amelyből megtudhatja, hogyan védheti meg az alkalmazást egyéni tartománnyal és tanúsítvánnyal.

Vagy tekintse meg a többi erőforrást is: