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:
- Jelentkezzen be a GitHub-fiókjába.
- Nyissa meg a https://github.com/Azure-Samples/msdocs-app-service-sqldb-dotnetcore/fork címet.
- Törölje a jelölést : Csak a főág másolása. Az összes ágat szeretnéd.
- Válassza az Elágazás létrehozása lehetőséget.
2. lépés: A GitHub-elágazásban:
- Válassza ki a kezdő ág fő>starter-no-infra elemét. Ez az ág csak a mintaprojektet tartalmazza, és nincs Azure-nal kapcsolatos fájl vagy konfiguráció.
- Válassza a 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.
3. lépés: A kódtér termináljában:
- Adatbázis-áttelepítések futtatása a következővel
dotnet ef database update
: . - Futtassa az alkalmazást a következővel
dotnet run
: . - Amikor megjelenik az értesítés
Your 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őtCtrl
+C
: .
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.net
DNS-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:
- Írja be a "webalkalmazás-adatbázis" kifejezést az Azure Portal tetején található keresősávba.
- Válassza ki a Web App + Adatbázis címkével ellátott elemet a Marketplace címsora alatt. A létrehozási varázslót közvetlenül is megnyithatja.
2. lépés: A Webalkalmazás létrehozása + Adatbázis lapon töltse ki az űrlapot az alábbiak szerint.
- Erőforráscsoport: Válassza az Új létrehozása lehetőséget, és használja az msdocs-core-sql-tutorial nevet.
- Régió: Bármely Önhöz közeli Azure-régió.
- 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.
- Futtatókörnyezeti verem: .NET 8 (LTS).
- Azure Cache for Redis hozzáadása?: Igen.
- Üzemeltetési terv: Alapszintű. Ha készen áll, később felskálázhatja az éles tarifacsomagot.
- 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.
- Válassza az Áttekintés + létrehozás lehetőséget.
- Az ellenőrzés befejezése után válassza a Létrehozás lehetőséget.
3. lépés: Az üzembe helyezés néhány percet vesz igénybe. Az üzembe helyezés befejeződése után válassza az Erőforrás megnyitása gombot. Közvetlenül az App Service-alkalmazásba kerül, de a következő erőforrások jönnek létre:
- Erőforráscsoport: Az összes létrehozott erőforrás tárolója.
- App Service-csomag: Meghatározza az App Service számítási erőforrásait. Létrejön egy Linux-csomag az alapszinten .
- App Service: Az alkalmazást jelöli, és az App Service-csomagban fut.
- Virtuális hálózat: Integrálva az App Service alkalmazással, és elkülöníti a háttérhálózat forgalmát.
- 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.
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.
2. lépés:
- 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.
- 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.
- 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
ésAZURE_REDIS_CONNECTIONSTRING
a .
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.
2. lépés: Az Üzembehelyezési központ lapon:
- A Forrás területen válassza a GitHubot. Alapértelmezés szerint a GitHub Actions van kiválasztva buildszolgáltatóként.
- Jelentkezzen be a GitHub-fiókjába, és kövesse az utasításokat az Azure engedélyezéséhez.
- A Szervezetben válassza ki a fiókját.
- Az Adattárban válassza az msdocs-app-service-sqldb-dotnetcore lehetőséget.
- Az Ágban válassza a starter-no-infra lehetőséget. Ez ugyanaz az ág, amelyben a mintaalkalmazással dolgozott, azure-ral kapcsolatos fájlok és konfigurációk nélkül.
- Hitelesítési típus esetén válassza a felhasználó által hozzárendelt identitást.
- A felső menüben válassza a Mentés lehetőséget.
Az App Service véglegesít egy munkafolyamat-fájlt a kiválasztott GitHub-adattárba a
.github/workflows
címtárban. Alapértelmezés szerint az üzembehelyezési központ létrehoz egy felhasználó által hozzárendelt identitást a munkafolyamathoz a Microsoft Entra (OIDC-hitelesítés) használatával történő hitelesítéshez. Alternatív hitelesítési lehetőségekért lásd : Üzembe helyezés az App Service-ben a GitHub Actions használatával.
3. lépés: 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.
4. lépés (1. lehetőség: a GitHub Copilottal):
- Indítsa el az új csevegési munkamenetet a Csevegés nézet kiválasztásával, majd válassza a +lehetőséget.
- Ké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. - "É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.
- 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?
4. lépés (2. lehetőség: a GitHub Copilot nélkül):
- Nyissa meg a Program.cs a explorerben.
- 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_CONNECTIONSTRING
csatlakozik az adatbázishoz a Redis-gyorsítótár használatávalAZURE_SQL_CONNECTIONSTRING
és az ahhoz való csatlakozással.
5. lépés (1. lehetőség: a GitHub Copilottal):
- 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.
- Jelölje ki a
dotnet publish
lépést, és válassza a lehetőséget . - 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."
- 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?
5. lépés (2. lehetőség: a GitHub Copilot nélkül):
- 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.
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.*
.- 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.
6. lépés:
- Válassza ki a Forrásvezérlő bővítményt.
- A szövegmezőbe írjon be egy véglegesítési üzenetet, például
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. - Válassza a Véglegesítés lehetőséget, majd erősítse meg igennel.
- Válassza a Módosítások szinkronizálása 1 lehetőséget, majd erősítse meg az OK gombot.
7. lépés: Vissza az Üzembehelyezési központ lapra az Azure Portalon:
- 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.
- Az üzembe helyezési futtatás naplóelemében válassza ki a Build/Deploy Logs bejegyzést a legújabb időbélyeggel.
8. lépés: A GitHub-adattárba kerül, és láthatja, hogy a GitHub-művelet fut. A munkafolyamat-fájl két különálló szakaszt határoz meg, a buildelést és az üzembe helyezést. Várja meg, amíg a GitHub-futtatás sikeres állapotot jelenít meg. Körülbelül 5 percig tart.
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.
2. lépés: Az SSH-terminálban:
- Futtassa az
cd /home/site/wwwroot
parancsot. Itt találja az összes telepített fájlt. - 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.
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:
- A bal oldali menüben válassza az Áttekintés lehetőséget.
- Válassza ki az alkalmazás URL-címét. Közvetlenül a következőre
https://<app-name>.azurewebsites.net
is navigálhat.
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.
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:
- A bal oldali menüben válassza az App Service-naplók figyelése>lehetőséget.
- Az Alkalmazásnaplózás területen válassza a Fájlrendszer, majd a Mentés lehetőséget.
2. lépés: A bal oldali menüben válassza a Naplóstream lehetőséget. Láthatja az alkalmazás naplóit, beleértve a platformnaplókat és a tárolón belüli naplókat.
7. Erőforrások törlése
Ha végzett, törölheti az összes erőforrást az Azure-előfizetéséből az erőforráscsoport törlésével.
1. lépés: Az Azure Portal tetején található keresősávon:
- Adja meg az erőforráscsoport nevét.
- Válassza ki az erőforráscsoportot.
2. lépés: Az erőforráscsoport lapján válassza az Erőforráscsoport törlése lehetőséget.
3. lépés:
- 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é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).
Futtassa
azd init
az adattár gyökerét.azd init --template dotnet-app-service-sqldb-infra
Amikor a rendszer kéri, adja meg a következő válaszokat:
Kérdés Válasz Az aktuális könyvtár nem üres. Inicializálni szeretne egy projektet itt a "saját könyvtárában>"?< Y Mit szeretne tenni ezekkel a fájlokkal? Meglévő fájljaim változatlanul tartása Adjon meg egy új környezetnevet Írjon be egy egyedi nevet. Az AZD-sablon ezt a nevet használja a webalkalmazás DNS-nevének részeként az Azure-ban ( <app-name>.azurewebsites.net
). Alfanumerikus karakterek és kötőjelek engedélyezettek.Jelentkezzen be az Azure-ba a
azd auth login
parancs futtatásával és a parancssor követésével:azd auth login
Hozza létre a szükséges Azure-erőforrásokat, és telepítse az alkalmazáskódot a
azd up
paranccsal. Kövesse az utasításokat az Azure-erőforrások kívánt előfizetésének és helyének kiválasztásához.azd up
A
azd up
parancs végrehajtása körülbelül 15 percet vesz igénybe (a Redis-gyorsítótár a legtöbb időt veszi igénybe). Emellett lefordítja és üzembe helyezi az alkalmazáskódot, de később módosítja a kódot, hogy működjön az App Service-lel. Amíg fut, a parancs üzeneteket küld a kiépítési és üzembe helyezési folyamatról, beleértve az Azure-beli üzembe helyezésre mutató hivatkozást is. Amikor befejeződik, a parancs egy hivatkozást is megjelenít az üzembe helyezési alkalmazásra.Ez az AZD-sablon olyan fájlokat (azure.yaml és infra könyvtár) tartalmaz, amelyek az alábbi Azure-erőforrásokkal létrehoznak egy alapértelmezett, biztonságos architektúrát:
- Erőforráscsoport: Az összes létrehozott erőforrás tárolója.
- App Service-csomag: Meghatározza az App Service számítási erőforrásait. Létrejön egy Linux-csomag 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.
Az AZD-kimenetben keresse meg a beállításokat
AZURE_SQL_CONNECTIONSTRING
ésAZURE_REDIS_CONNECTIONSTRING
a . 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_CONNECTIONSTRING
tartalmazza az Azure-beli SQL Database kapcsolati sztring, ésAZURE_REDIS_CONNECTIONSTRING
tartalmazza az Azure Redis cache-hez kapcsolati sztring. Ezeket később kell használnia a kódban.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
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 +.
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."É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.
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.
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.Az összes módosítás üzembe helyezése a következővel
azd up
: .azd up
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
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
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/
Adjon hozzá néhány feladatot a listához.
Gratulálunk, egy webalkalmazást futtat a Azure-alkalmazás Service-ben, biztonságos kapcsolattal az Azure 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 Azure Portalon a webalkalmazás naplóstreamjének felhasználói felülete hálózati hibákat jelenít meg
- Az SSH-munkamenet a böngészőben
SSH CONN CLOSED
- Megjelenik
Connected!
a portál naplóstream oldala, de nincsenek naplók
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 Conflict
meg, é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?
- Hogyan csatlakozni a virtuális hálózat mögött más eszközökkel védett Azure SQL Database-kiszolgálóhoz?
- Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions használatával?
- Hogyan hibakeresési hibákat a GitHub Actions üzembe helyezése során?
- Nincs jogosultságom felhasználó által hozzárendelt identitás létrehozására
- Mit tehetek a GitHub Copilottal 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-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ósqlcmd
meg, 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.
Kapcsolódó tartalom
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:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: