Oktatóanyag: ASP.NET-alkalmazás üzembe helyezése az Azure-ban az Azure SQL Database használatával
Az Azure App Service egy hatékonyan méretezhető, önjavító webes üzemeltetési szolgáltatás. Ez az oktatóanyag bemutatja, hogyan helyezhet üzembe adatvezérelt ASP.NET-alkalmazást az App Service-ben, és hogyan csatlakoztathatja azt az Azure SQL Database-hez. Ha végzett, egy ASP.NET alkalmazás fut az Azure-ban, és csatlakozik az SQL Database-hez.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Adatbázis létrehozása az Azure SQL Database-ben
- ASP.NET-alkalmazás csatlakoztatása SQL Database-adatbázishoz
- Az alkalmazás üzembe helyezése az Azure-ban
- Az adatmodell frissítése és az alkalmazás ismételt üzembe helyezése
- Naplók streamelése az Azure-ból a saját terminálba
Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
Előfeltételek
Az oktatóanyag elvégzéséhez:
Telepítse a Visual Studio 2022-t a ASP.NET és webfejlesztési és Azure-fejlesztési számítási feladatokkal.
Ha már telepítette a Visual Studiót, adja hozzá a számítási feladatokat a Visual Studióban a Tools (Eszközök) >Get Tools and Features (Eszközök és funkciók beszerzése) elemre kattintva.
A minta letöltése
Bontsa ki (csomagolja ki) a dotnet-sqldb-tutorial-master.zip fájlt.
A mintaprojekt az Entity Framework Code First szolgáltatást használó, alapszintű ASP.NET MVC CRUD (létrehoz-olvas-frissít-töröl) alkalmazást tartalmaz.
Az alkalmazás futtatása
Nyissa meg a dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln fájlt a Visual Studióban.
Az alkalmazás futtatásához nyomja le a
F5
billentyűkombinációt. Az alkalmazás megjelenik az alapértelmezett böngészőben.Feljegyzés
Ha csak a Visual Studiót és az előfeltételeket telepítette, előfordulhat, hogy hiányzó csomagokat kell telepítenie a NuGeten keresztül.
Kattintson az Új létrehozása hivatkozásra, és hozzon létre néhány teendőt.
Tesztelje az Edit (Szerkesztés), a Details (Részletek) és a Delete (Törlés) hivatkozást.
Az alkalmazás adatbázis-környezetet használ az adatbázishoz való kapcsolódáshoz. Ebben a példában az adatbázis-környezet a MyDbConnection
nevű kapcsolati sztringet használja. A kapcsolati sztring a Web.config fájlban adható meg, és a Models/MyDatabaseContext.cs fájl hivatkozik rá. Az oktatóanyag későbbi részében a kapcsolati sztring nevet használjuk az Azure-alkalmazás Azure SQL Database-hez való csatlakoztatásához.
ASP.NET-alkalmazás közzététele az Azure-ban
A Solution Explorer (Megoldáskezelő) lapon kattintson a jobb gombbal a DotNetAppSqlDb projektre, és válassza a Publish (Közzététel) elemet.
Válassza ki az Azure-t célként, és kattintson a Tovább gombra.
Győződjön meg arról, hogy a Azure-alkalmazás Szolgáltatás (Windows) ki van jelölve, és kattintson a Tovább gombra.
Bejelentkezés és alkalmazás hozzáadása
A Közzététel párbeszédpanelen kattintson a Bejelentkezés gombra.
Jelentkezzen be az Azure-előfizetésbe. Ha már be van jelentkezve egy Microsoft-fiókba, győződjön meg arról, hogy abban a fiókban található az előfizetése. Ha nem abban a Microsoft-fiókban van az Azure-előfizetése, amelyikbe be van jelentkezve, kattintással adja hozzá a helyes fiókot.
Az App Service-példányok panelen kattintson a gombra+.
A webalkalmazás nevének konfigurálása
Megtarthatja a webalkalmazás létrehozott nevét, vagy módosíthatja egy másik egyedi névre (érvényes karakterek: a-z
, 0-9
és -
). A webalkalmazás neve az alkalmazás alapértelmezett URL-címének a részeként használatos (<app_name>.azurewebsites.net
, amelyben az <app_name>
a webalkalmazás neve). A webalkalmazás nevének egyedinek kell lennie az Azure összes alkalmazása tekintetében.
Feljegyzés
Még ne válassza a Létrehozás lehetőséget.
Erőforráscsoport létrehozása
Az erőforráscsoport egy logikai tároló, amelybe az Azure-erőforrásokat, például webalkalmazásokat, adatbázisokat és tárfiókokat helyezik üzembe és felügyelik. Dönthet úgy is például, hogy később egyetlen egyszerű lépésben törli a teljes erőforráscsoportot.
A Resource Group (Erőforráscsoport) mellett kattintson a New (Új) elemre.
Adja a myResourceGroup nevet az erőforráscsoportnak.
App Service-csomag létrehozása
Az alkalmazást tároló webkiszolgálófarm helyét, méretét és funkcióit egy App Service-csomag határozza meg. Ha több alkalmazást üzemeltet, pénzt takaríthat meg, ha úgy konfigurálja a webalkalmazásokat, hogy egyetlen App Service-csomagot osszanak meg.
Az App Service-csomagok a következőket határozzák meg:
- Régió (például: Észak-Európa, az USA keleti régiója vagy Délkelet-Ázsia)
- Példányméret (kicsi, közepes vagy nagy)
- Skálázási szám (1–20 példány)
- Termékváltozat (Ingyenes, Közös, Alapszintű, Standard, Prémium)
Az Üzemeltetési terv mellett kattintson az Új gombra.
Az App Service-csomag konfigurálása párbeszédpanelen konfigurálja az új App Service-csomagot az alábbi beállításokkal, és kattintson az OK gombra:
Beállítás Ajánlott érték További információkért App Service-csomag myAppServicePlan App Service-csomagok Helyen Nyugat-Európa Azure-régiók Méret Ingyenes Árképzési szintek Kattintson a Létrehozás gombra, és várja meg az Azure-erőforrások létrehozását.
A Közzététel párbeszédpanelen a konfigurált erőforrások láthatók. Kattintson a Befejezés gombra.
Kiszolgáló és adatbázis létrehozása
Adatbázis létrehozása előtt logikai SQL-kiszolgálóra van szükség. A logikai SQL-kiszolgáló egy logikai szerkezet, amely csoportként felügyelt adatbáziscsoportot tartalmaz.
A Közzététel párbeszédpanelen görgessen le a Szolgáltatásfüggőségek szakaszhoz. Az SQL Server Database mellett kattintson a Konfigurálás gombra.
Feljegyzés
Mindenképpen konfigurálja az SQL Database-t a Közzététel lapról a Csatlakoztatott szolgáltatások lap helyett.
Válassza az Azure SQL Database lehetőséget, és kattintson a Tovább gombra.
Az Azure SQL Database konfigurálása párbeszédpanelen kattintson a gombra+.
Az Adatbázis-kiszolgáló mellett kattintson az Új gombra.
A rendszer a kiszolgáló alapértelmezett URL-címének részeként használja a kiszolgáló nevét.
<server_name>.database.windows.net
Az Azure SQL összes kiszolgálója esetében egyedinek kell lennie. Módosítsa a kiszolgáló nevét a kívánt értékre.Adjon meg egy rendszergazdai felhasználónevet és jelszót. A jelszó „összetettségére” vonatkozó követelményeket a jelszavakra vonatkozó szabályzattal foglalkozó cikkben tekintheti meg.
Jegyezze meg ezt a felhasználónevet és jelszót. Később szüksége lesz rájuk a kiszolgáló kezeléséhez.
Fontos
Bár a kapcsolati sztringekban lévő jelszava maszkolva van (a Visual Studióban és az App Service szolgáltatásban is), a tény, hogy valamilyen rendszer tárolja, növeli az alkalmazás támadható felületét. Az App Service megszüntetheti ezt a kockázatot felügyelt szolgáltatásidentitások használatával, feleslegessé téve a titkos kódokat az alkalmazáskonfigurációban. További információ: Következő lépések.
Kattintson az OK gombra.
Az Azure SQL Database párbeszédpanelen tartsa meg az alapértelmezett generált adatbázisnevet. Válassza a Létrehozás lehetőséget , és várja meg, amíg az adatbázis-erőforrások létrejönnek.
Adatbázis-kapcsolat konfigurálása
Ha a varázsló befejezte az adatbázis-erőforrások létrehozását, kattintson a Tovább gombra.
Az Adatbázis kapcsolati sztring neve mezőbe írja be a MyDbConnection nevet. Ennek a névnek meg kell egyeznie a Models/MyDatabaseContext.cs fájlban hivatkozott kapcsolati sztringgel.
Az Adatbázis-kapcsolat felhasználóneve és az Adatbázis-kapcsolat jelszava mezőbe írja be a kiszolgáló létrehozásakor használt rendszergazdai felhasználónevet és jelszót.
Győződjön meg arról, hogy Azure-alkalmazás Beállítások lehetőség van kiválasztva, és kattintson a Befejezés gombra.
Feljegyzés
Ha ehelyett a Helyi felhasználói titkos kódok fájlokat látja, a Közzététel lap helyett a Csatlakoztatott szolgáltatások lapon kell konfigurálnia az SQL Database-t.
Várja meg, amíg a konfigurációs varázsló befejeződik, és kattintson a Bezárás gombra.
A ASP.NET alkalmazás üzembe helyezése
A Közzététel lapon görgessen vissza a lap tetejére, és kattintson a Közzététel gombra. Miután üzembe helyezte ASP.NET alkalmazást az Azure-ban. Az alapértelmezett böngésző az üzembe helyezett alkalmazásra mutató URL-címmel indul el.
Adjon hozzá néhány teendőt.
Gratulálunk! Az adatvezérelt ASP.NET-alkalmazás fut és elérhető az Azure App Service-ben.
Az adatbázis helyi elérése
A Visual Studio segítségével egyszerűen felfedezheti és kezelheti az új adatbázist az Azure-ban az SQL Server Object Explorerben. Az új adatbázis már megnyitotta a tűzfalát a létrehozott App Service-alkalmazáshoz. A helyi számítógépről (például a Visual Studióból) való hozzáféréshez azonban meg kell nyitnia egy tűzfalat a helyi gép nyilvános IP-címéhez. Ha az internetszolgáltató módosítja a nyilvános IP-címet, újra kell konfigurálnia a tűzfalat az Azure-adatbázis újbóli eléréséhez.
Adatbázis-kapcsolat létrehozása
A View (Nézet) menüben válassza az SQL Server Object Explorer lehetőséget.
Az SQL Server Object Explorer felső részében kattintson az Add SQL Server (SQL Server hozzáadása) gombra.
Az adatbázis-kapcsolat konfigurálása
A Connect (Csatlakozás) párbeszédpanelen bontsa ki az Azure csomópontot. Az Azure-ban található összes SQL Database-példány látható itt.
Válassza ki a korábban létrehozott adatbázist. A korábban létrehozott kapcsolatot a rendszer automatikusan megadja a lap alján.
Írja be a korábban létrehozott adatbázis-rendszergazdai jelszót, és kattintson a Connect (Csatlakozás) elemre.
Ügyfélkapcsolat engedélyezése a számítógépen
Megnyílik a Create a new firewall rule (Új tűzfalszabály létrehozása) párbeszédpanel. Alapértelmezés szerint a kiszolgáló csak az Azure-szolgáltatásokból, például az Azure-alkalmazásból engedélyezi az adatbázisaihoz való kapcsolódást. Ha az Azure-on kívülről szeretne csatlakozni az adatbázishoz, hozzon létre egy tűzfalszabályt a kiszolgáló szintjén. A tűzfalszabály engedélyezi a helyi számítógép nyilvános IP-címét.
A párbeszédpanel már ki van töltve a számítógép nyilvános IP-címével.
Jelölje be az Add my client IP (Ügyfél IP-címének hozzáadása) választógombot, és kattintson az OK gombra.
Miután a Visual Studio befejezte a tűzfal beállítását az SQL Database-példány számára, a kapcsolat megjelenik az SQL Server Object Explorerben.
Itt elvégezheti a leggyakoribb adatbázis-műveleteket, például lekérdezések futtatását, nézetek és tárolt eljárások létrehozását és sok minden mást.
Bontsa ki a kapcsolat >adatbázisait<>>>tartalmazó táblákat. Kattintson a jobb gombbal a
Todoes
táblára, és válassza a View Data (Adatok megtekintése) lehetőséget.
Az alkalmazás frissítése Code First migrálásokkal
A Visual Studio ismerős eszközeit használva frissítheti az adatbázist és az alkalmazást az Azure-ban. Ebben a lépésben Code First migrálásokat használ az Entity Frameworkben az adatbázisséma módosításához, majd annak közzétételéhez az Azure-ban.
Az Entity Framework Code First migrálásainak a használatával kapcsolatos további információkért tekintse meg a Getting Started with Entity Framework 6 Code First using MVC 5 (Ismerkedés az Entity Framework 6 Code First használatával az MVC 5 segítségével) című cikket.
Adatmodell frissítése
A kódszerkesztőben nyissa meg a Models\Todo.cs fájlt. Adja hozzá a következő tulajdonságot a ToDo
osztályhoz:
public bool Done { get; set; }
Code First migrálás helyi futtatása
Futtasson néhány parancsot a helyi adatbázis frissítéséhez.
Kattintson a Tools (Eszközök) menü NuGet Package Manager>Package Manager Console (NuGet-csomagkezelő > Csomagkezelő konzol) elemére.
A Package Manager Console (Csomagkezelő konzol) ablakban engedélyezze a Code First migrálásokat:
Enable-Migrations
Migrálás felvétele:
Add-Migration AddProperty
Frissítse a helyi adatbázist:
Update-Database
Az alkalmazás futtatásához nyomja le a
Ctrl+F5
billentyűkombinációt. Tesztelje a szerkesztést, a részletek megtekintését és a létrehozást lehetővé tevő hivatkozást.
Ha az alkalmazás betöltése hibák nélkül fejeződik be, a Code First migrálások sikeresek voltak. A lap azonban továbbra is ugyanúgy néz ki, mert az alkalmazáslogika még nem használja ezt az új tulajdonságot.
Az új tulajdonság használata
Hajtson végre néhány módosítást a kódban a Done
tulajdonság használatához. Ebben az oktatóanyagban az egyszerűség kedvéért csak az Index
és a Create
nézetet módosítja, így láthatja a tulajdonságot működés közben.
Nyissa meg a Controllers\TodosController.cs fájlt.
Keresse meg a
Create()
metódust az 52. sorban, és adja hozzá aDone
kifejezést aBind
attribútum tulajdonságlistájához. Amikor végzett, aCreate()
metódus aláírása a következő kódhoz hasonló:public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
Nyissa meg a Views\Todos\Create.cshtml fájlt.
A Razor-kódban látnia kell a
<div class="form-group">
elemet, amely amodel.Description
elemet használja, majd egy másik<div class="form-group">
elemet, amely amodel.CreatedDate
elemet használja. Közvetlenül ezután a két elem után adjon hozzá egy másik<div class="form-group">
elemet, amely amodel.Done
elemet használja:<div class="form-group"> @Html.LabelFor(model => model.Done, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> <div class="checkbox"> @Html.EditorFor(model => model.Done) @Html.ValidationMessageFor(model => model.Done, "", new { @class = "text-danger" }) </div> </div> </div>
Nyissa meg a Views\Todos\Index.cshtml fájlt.
Keresse meg az üres
<th></th>
elemet. Az elem felett adja hozzá a következő Razor-kódot:<th> @Html.DisplayNameFor(model => model.Done) </th>
Keresse meg a
Html.ActionLink()
segédmetódusokat tartalmazó<td>
elemet. Ezen<td>
felett adjon hozzá egy másik<td>
elemet a következő Razor-kóddal:<td> @Html.DisplayFor(modelItem => item.Done) </td>
Mást nem kell tennie a módosítások megtekintéséhez az
Index
és aCreate
nézetben.Az alkalmazás futtatásához nyomja le a
Ctrl+F5
billentyűkombinációt.
Most hozzáadhat teendőket, és bejelölheti a Kész jelölőnégyzetet. Ezután ennek meg kell jelennie a főoldalon befejezett elemként. Ne feledje, hogy az Edit
nézetben nem jelenik meg a Done
mező, mivel az Edit
nézetet nem módosította.
Code First migrálások engedélyezése az Azure-ban
Most, hogy a kódmódosítás működik, beleértve az adatbázis-migrálást is, közzéteheti az Azure-alkalmazásban, és az SQL Database-t a Code First Migrations használatával is frissítheti.
Fentiekhez hasonlóan kattintson jobb gombbal a projektre, majd válassza a Publish (Közzététel) lehetőséget.
Kattintson a További műveletek>szerkesztése elemre a közzétételi beállítások megnyitásához.
A MyDatabaseContext legördülő listában válassza ki az Azure SQL Database adatbázis-kapcsolatát.
Válassza az Execute Code First Migrations (runs on application start) (Code First migrálások végrehajtása (alkalmazásindításakor fut)) elemet, majd kattintson a Save (Mentés) gombra.
A módosítások közzététele
Most, hogy engedélyezte a Code First Migrations használatát az Azure-alkalmazásban, tegye közzé a kód módosításait.
A közzétételi oldalon kattintson a Publish (Közzététel) elemre.
Próbálkozzon újabb teendő elemek hozzáadásával, kattintson a Done (Kész) gombra, ami után az elemeknek befejezett elemekként kell megjelenniük a kezdőlapon.
A meglévő teendők továbbra is megjelennek. A ASP.NET alkalmazás újbóli közzétételekor az SQL Database-ben lévő meglévő adatok nem vesznek el. A Code First migrálások emellett csak az adatsémát módosítják, a meglévő adatokat érintetlenül hagyják.
Alkalmazásnaplók streamelése
A nyomkövetési üzeneteket közvetlenül az Azure-alkalmazásból streamelheti a Visual Studióba.
Nyissa meg a Controllers\TodosController.cs fájlt.
Minden művelet egy Trace.WriteLine()
metódussal indul. Ez a kód bemutatja, hogyan adhat hozzá nyomkövetési üzeneteket az Azure-alkalmazáshoz.
Naplóstreamelés engedélyezése
A közzétételi lapon görgessen le az Üzemeltetés szakaszhoz.
A jobb oldali sarokban kattintson a ...>Streamnaplók megtekintése.
A naplókat mostantól az Output (Kimenet) ablakba streameli a rendszer.
Nem jelennek még azonban meg a nyomkövetési üzenetek. Ennek az az oka, hogy amikor először a Streamelési naplók megtekintése lehetőséget választja, az Azure-alkalmazás beállítja a nyomkövetési szintet
Error
, amely csak a hibaeseményeket naplózza (aTrace.TraceError()
módszerrel).
Nyomkövetési szintek módosítása
Ha a nyomkövetési szinteket más nyomkövetési üzenetek kimenetére szeretné módosítani, lépjen vissza a közzétételi lapra.
Az Üzemeltetés szakaszban kattintson a ...>Nyissa meg az Azure Portalon.
Az alkalmazás portálkezelési lapján, a bal oldali menüben válassza az App Service-naplók lehetőséget.
Az Alkalmazásnaplózás (Fájlrendszer) területen válassza a Részletes elemet a Szint területen. Kattintson a Mentés gombra.
Tipp.
Kísérletezhet a különböző szintű nyomkövetésekkel, hogy lássa, milyen típusú üzenetek jelennek meg az egyes szintek esetén. Az Information (Tájékoztatás) szint a
Trace.TraceInformation()
,Trace.TraceWarning()
ésTrace.TraceError()
által létrehozott naplók mindegyikét tartalmazza, aTrace.WriteLine()
által létrehozott naplókat azonban nem.A böngészőben lépjen ismét az alkalmazáshoz az http://< your app name.azurewebsites.net> címen, majd kattintson az Azure teendőlista-alkalmazására. A nyomkövetési üzeneteket mostantól a Visual Studio Output (Kimenet) ablakába streameli a rendszer.
Application: 2017-04-06T23:30:41 PID[8132] Verbose GET /Todos/Index Application: 2017-04-06T23:30:43 PID[8132] Verbose GET /Todos/Create Application: 2017-04-06T23:30:53 PID[8132] Verbose POST /Todos/Create Application: 2017-04-06T23:30:54 PID[8132] Verbose GET /Todos/Index
Naplóstreamelés leállítása
A naplóstreamelési szolgáltatás leállításához kattintson az Output (Kimenet) ablak Stop monitoring (Megfigyelés leállítása) gombjára.
Az erőforrások eltávolítása
Az előző lépésekben Azure-erőforrásokat hozott létre egy erőforráscsoportban. Ha várhatóan nincs szüksége ezekre az erőforrásokra a későbbiekben, az erőforráscsoport eltávolításával törölheti őket.
- Az Azure Portalon a webalkalmazás Áttekintés lapján válassza az Erőforráscsoport szakasz myResourceGroup hivatkozását.
- Az erőforráscsoport lapján ellenőrizze, hogy a felsorolt erőforrásokat szeretné-e törölni.
- Válassza az Erőforráscsoport törlése lehetőséget, írja be a myResourceGroup kifejezést a szövegmezőbe, majd válassza a Törlés lehetőséget.
- Erősítse meg ismét a Törlés lehetőséget.
Következő lépések
Ez az oktatóanyag bemutatta, hogyan végezheti el az alábbi műveleteket:
- Adatbázis létrehozása az Azure SQL Database-ben
- ASP.NET-alkalmazás csatlakoztatása SQL Database-adatbázishoz
- Az alkalmazás üzembe helyezése az Azure-ban
- Az adatmodell frissítése és az alkalmazás ismételt üzembe helyezése
- Naplók streamelése az Azure-ból a saját terminálba
A következő oktatóanyag azt mutatja be, hogyan növelheti könnyedén az Azure SQL Database szolgáltatással létrehozott kapcsolat biztonságát.
További források:
Optimalizálni és menteni szeretné a felhőbeli kiadásait?