Kurz: Nasazení aplikace ASP.NET do Azure pomocí Azure SQL Database
Azure App Service je vysoce škálovatelná služba s automatickými opravami pro hostování webů. V tomto kurzu se dozvíte, jak nasadit aplikaci ASP.NET řízenou daty ve službě App Service a připojit ji ke službě Azure SQL Database. Až budete hotovi, máte spuštěnou ASP.NET aplikaci v Azure a připojenou k SQL Database.
V tomto kurzu se naučíte:
- Vytvoření databáze ve službě Azure SQL Database
- Připojit aplikaci ASP.NET ke službě SQL Database
- Nasadit aplikaci do Azure
- Aktualizovat datový model a znovu nasadit aplikaci
- Streamovat protokoly z Azure do terminálu
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Požadavky
Pro absolvování tohoto kurzu potřebujete:
Nainstalujte Visual Studio 2022 s úlohami vývoje pro ASP.NET a web a vývoj pro Azure.
Pokud jste už sadu Visual Studio nainstalovali, přidejte do ní sady funkcí kliknutím na Nástroje>Získat nástroje a funkce.
Stažení ukázky
Extrahujte (rozbalte) soubor dotnet-sqldb-tutorial-master.zip.
Ukázkový projekt obsahuje základní aplikaci CRUD (vytváření-čtení-aktualizace-odstraňování) v ASP.NET MVC používající Entity Framework Code First.
Spustit aplikaci
Otevřete soubor dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln v sadě Visual Studio.
Zadáním
F5
spusťte aplikaci. Aplikace se zobrazí ve vašem výchozím prohlížeči.Poznámka:
Pokud jste nainstalovali jenom Sadu Visual Studio a požadavky, možná budete muset prostřednictvím NuGetu nainstalovat chybějící balíčky.
Vyberte odkaz Vytvořit nový a vytvořte několik položek úkolů.
Otestujte odkazy Upravit, Podrobnosti a Odstranit.
Aplikace pro připojení k databázi používá kontext databáze. V této ukázce kontext databáze používá připojovací řetězec MyDbConnection
. Připojovací řetězec je nastavený v souboru Web.config a odkazuje se na něj v souboru Models/MyDatabaseContext.cs. Název připojovací řetězec se použije později v kurzu pro připojení aplikace Azure k Azure SQL Database.
Publikování aplikace ASP.NET do Azure
V Průzkumníku řešení klikněte pravým tlačítkem na projekt DotNetAppSqlDb a vyberte Publikovat.
Jako cíl vyberte Azure a klikněte na Další.
Ujistěte se, že je vybraná Aplikace Azure Služba (Windows) a klepněte na tlačítko Další.
Přihlášení a přidání aplikace
V dialogovém okně Publikovat klikněte na Přihlásit se.
Přihlaste se ke svému předplatnému Azure. Pokud jste již přihlášení k účtu Microsoft, ujistěte se, že odpovídá vašemu předplatnému Azure. Pokud jste přihlášeni k účtu Microsoft, který nemá přiřazené předplatné Azure, kliknutím na něj přidejte správný účet.
V podokně instance služby App Service klikněte na +.
Konfigurace názvu webové aplikace
Můžete ponechat vygenerovaný název webové aplikace nebo ho můžete změnit na jiný jedinečný název (platné znaky jsou a-z
, 0-9
a -
). Název webové aplikace se používá jako součást výchozí adresy URL vaší aplikace (<app_name>.azurewebsites.net
, kde <app_name>
je název vaší webové aplikace). Název webové aplikace musí být jedinečný mezi všemi aplikacemi v Azure.
Poznámka:
Zatím nevybírejte možnost Vytvořit .
Vytvoření skupiny zdrojů
Skupina prostředků je logický kontejner, do kterého se nasazují a spravují prostředky Azure, jako jsou webové aplikace, databáze a účty úložiště. Později se například můžete rozhodnout odstranit celou skupinu prostředků v jednom jednoduchém kroku.
Vedle pole Skupina prostředků klikněte na tlačítko Nová.
Pojmenujte skupinu prostředků myResourceGroup.
Vytvoření plánu služby App Service
Plán služby App Service určuje umístění, velikost a funkce farmy webových serverů, která je hostitelem vaší aplikace. Když hostujete více aplikací, můžete ušetřit tím, že nakonfigurujete webové aplikace tak, aby sdílely jeden plán služby App Service.
Plány služby App Service definují:
- Oblast (například Severní Evropa, USA – východ nebo Jihovýchodní Asie)
- Velikost instance (Malá, Střední, Velká)
- Počet škálování (1 až 20 instancí)
- SKU (Free, Shared, Basic, Standard, Premium)
Vedle plánu hostování klikněte na Nový.
V dialogovém okně Konfigurovat plán služby App Service nakonfigurujte nový plán služby App Service s následujícím nastavením a klikněte na OK:
Nastavení Navrhovaná hodnota Další informace Plán služby App Service myAppServicePlan Plány služby App Service Místo Západní Evropa Oblasti Azure Velikost Bezplatný Cenové úrovně Klikněte na Vytvořit a počkejte na vytvoření prostředků Azure.
V dialogovém okně Publikovat se zobrazí prostředky, které jste nakonfigurovali. Klikněte na Finish (Dokončit).
Vytvoření serveru a databáze
Před vytvořením databáze potřebujete logický SQL server. Logický SQL server je logický konstruktor, který obsahuje skupinu databází spravovaných jako skupinu.
V dialogovém okně Publikovat se posuňte dolů do části Závislosti služby. Vedle databáze SQL Serveru klikněte na Konfigurovat.
Poznámka:
Místo stránky Připojené služby nezapomeňte nakonfigurovat službu SQL Database ze stránky Publikovat.
Vyberte Azure SQL Database a klikněte na Další.
V dialogovém okně Konfigurace služby Azure SQL Database klikněte na +tlačítko .
Vedle databázového serveru klikněte na Nový.
Název serveru se používá jako součást výchozí adresy URL vašeho serveru.
<server_name>.database.windows.net
Musí být jedinečný na všech serverech v Azure SQL. Změňte název serveru na požadovanou hodnotu.Přidejte uživatelské jméno a heslo správce. Požadavky na složitost hesla najdete v tématu Zásady hesel.
Toto uživatelské jméno a heslo si zapamatujte. Budete je potřebovat ke správě serveru později.
Důležité
Přestože je vaše heslo v připojovacích řetězcích maskované (v sadě Visual Studio i ve službě App Service), skutečnost, že se někde uchovává, rozšiřuje prostor pro útok na vaši aplikace. App Service může toto riziko odstranit pomocí identit spravovaných služeb, které úplně odstraňují potřebu uchovávat tajné klíče v kódu nebo konfiguraci aplikace. Další informace najdete v části Další kroky.
Klikněte na OK.
V dialogovém okně Azure SQL Database ponechte výchozí vygenerovaný název databáze. Vyberte Vytvořit a počkejte na vytvoření databázových prostředků.
Konfigurace připojení k databázi
Po dokončení vytváření databázových prostředků průvodce klikněte na tlačítko Další.
Do pole Název připojovací řetězec databáze zadejte MyDbConnection. Tento název se musí shodovat s připojovacím řetězcem, na který se odkazuje v souboru Models/MyDatabaseContext.cs.
Do pole Uživatelské jméno připojení k databázi a Heslo pro připojení k databázi zadejte uživatelské jméno a heslo správce, které jste použili v části Vytvoření serveru.
Ujistěte se, že je vybraná Aplikace Azure Nastavení, a klikněte na Dokončit.
Poznámka:
Pokud se místo toho zobrazí soubory tajných kódů místního uživatele, musíte místo stránky Publikovat nakonfigurovat službu SQL Database ze stránky Připojené služby.
Počkejte na dokončení průvodce konfigurací a klikněte na tlačítko Zavřít.
Nasazení aplikace ASP.NET
Na kartě Publikovat se posuňte zpět nahoru nahoru a klikněte na Publikovat. Po nasazení aplikace ASP.NET do Azure Spustí se váš výchozí prohlížeč na adrese URL nasazené aplikace.
Přidejte několik položek úkolů.
Gratulujeme! Vaše aplikace ASP.NET řízená daty je spuštěná ve službě Azure App Service.
Místní přístup k databázi
Visual Studio umožňuje snadno prozkoumat a spravovat novou databázi v Azure na Průzkumník objektů SQL Serveru. Nová databáze už otevřela bránu firewall pro aplikaci App Service, kterou jste vytvořili. Pokud k němu ale chcete přistupovat z místního počítače (například ze sady Visual Studio), musíte otevřít bránu firewall pro veřejnou IP adresu místního počítače. Pokud váš poskytovatel internetových služeb změní vaši veřejnou IP adresu, je potřeba znovu nakonfigurovat bránu firewall pro přístup k databázi Azure.
Vytvoření připojení k databázi
V nabídce Zobrazení vyberte Průzkumník objektů systému SQL Server.
V horní části Průzkumníka objektů systému SQL Server klikněte na tlačítko Přidat SQL Server.
Konfigurace připojení k databázi
V dialogovém okně Připojení rozbalte uzel Azure. Tady jsou uvedené všechny vaše instance služby SQL Database v Azure.
Vyberte databázi, kterou jste vytvořili dříve. V dolní části se automaticky vyplní připojení, které jste vytvořili.
Zadejte heslo správce databáze, které jste vytvořili dříve, a klikněte na Připojit.
Povolení klientských připojení z vašeho počítače
Otevře se dialogové okno Vytvoření nového pravidla brány firewall. Ve výchozím nastavení server povoluje připojení ke svým databázím jenom ze služeb Azure, jako je vaše aplikace Azure. Pokud se chcete připojit k databázi mimo Azure, vytvořte pravidlo brány firewall na úrovni serveru. Toto pravidlo brány firewall povolí veřejnou IP adresu vašeho místního počítače.
V dialogovém okně je veřejná IP adresa vašeho počítače již vyplněná.
Ujistěte se, že je vybraná možnost Přidat IP adresu mého klienta, a klikněte na OK.
Jakmile sada Visual Studio dokončí vytváření nastavení brány firewall pro vaši instanci SQL Serveru, vaše připojení se zobrazí v Průzkumníku objektů systému SQL Server.
Tady můžete provádět nejběžnější databázové operace, jako je spouštění dotazů, vytváření zobrazení a uložených procedur a další.
Rozbalte databázové tabulky databází<>>>připojení.> Klikněte pravým tlačítkem na tabulku
Todoes
a vyberte Zobrazit data.
Aktualizace aplikace pomocí migrace Code First
K aktualizaci databáze a aplikace v Azure můžete použít známé nástroje v sadě Visual Studio. V tomto kroku pomocí migrace Code First v rozhraní Entity Framework provedete změnu schématu databáze a publikujete ji do Azure.
Další informace o použití migrace Entity Framework Code First najdete v tématu Začínáme s migrací Entity Framework 6 Code First s použitím MVC 5.
Aktualizace datového modelu
Otevřete Models\Todo.cs v editoru kódu. Do třídy ToDo
přidejte následující vlastnost:
public bool Done { get; set; }
Místní spuštění migrace Code First
Spuštěním několika příkazů aktualizujte místní databázi.
V nabídce Nástroje klikněte na Správce balíčků NuGet>Konzola správce balíčků.
V okně konzoly správce balíčků povolte migraci Code First:
Enable-Migrations
Přidejte migraci:
Add-Migration AddProperty
Aktualizujte místní databázi:
Update-Database
Zadáním
Ctrl+F5
spusťte aplikaci. Otestujte odkazy Upravit, Podrobnosti a Vytvořit.
Pokud se aplikace načte bez chyb, migrace Code First proběhla úspěšně. Vaše stránka ale stále vypadá stejně, protože logika aplikace ještě tuto novou vlastnost nepoužívá.
Použití nové vlastnosti
Proveďte v kódu několik změn, aby aplikace využívala vlastnost Done
. Pro zjednodušení budete v tomto kurzu měnit jen zobrazení Index
a Create
, aby se vlastnost projevila v praxi.
Otevřete Controllers\TodosController.cs.
Vyhledejte metodu
Create()
na řádku 52 a přidejte vlastnostDone
do seznamu vlastností v atributuBind
. Po dokončení bude podpis vaší metodyCreate()
vypadat podobně jako následující kód:public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
Otevřete Views\Todos\Create.cshtml.
V kódu Razor byste měli vidět prvek
<div class="form-group">
, který používámodel.Description
, a pak další prvek<div class="form-group">
, který používámodel.CreatedDate
. Přímo za tyto dva prvky přidejte další prvek<div class="form-group">
, který používámodel.Done
:<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>
Otevřete Views\Todos\Index.cshtml.
Vyhledejte prázdný prvek
<th></th>
. Přímo nad tento prvek přidejte následující kód Razor:<th> @Html.DisplayNameFor(model => model.Done) </th>
Vyhledejte prvek
<td>
, který obsahuje pomocné metodyHtml.ActionLink()
. Nad tento prvek<td>
přidejte další prvek<td>
s následujícím kódem Razor:<td> @Html.DisplayFor(modelItem => item.Done) </td>
To je všechno, co potřebujete, aby se v zobrazení
Index
aCreate
projevily změny.Zadáním
Ctrl+F5
spusťte aplikaci.
Teď můžete přidat položku úkolu a zaškrtnout možnost Hotovo. Položka by se měla zobrazit na domovské stránce jako dokončená. Nezapomeňte, že v zobrazení Edit
se pole Done
nezobrazí, protože jste zobrazení Edit
nezměnili.
Povolení migrace Code First v Azure
Teď, když vaše změna kódu funguje, včetně migrace databáze, ji publikujete do aplikace Azure a aktualizujete službu SQL Database pomocí Migrace Code First.
Stejně jako předtím klikněte pravým tlačítkem na svůj projekt a vyberte Publikovat.
Kliknutím na Další akce>Upravit otevřete nastavení publikování.
V rozevíracím seznamu MyDatabaseContext vyberte připojení databáze pro službu Azure SQL Database.
Vyberte Spustit migraci Code First (spustí se při spuštění aplikace) a pak klikněte na Uložit.
Publikování provedených změn
Teď, když jste v aplikaci Azure povolili Migrace Code First, publikujte změny kódu.
Na stránce publikování klikněte na Publikovat.
Zkuste znovu přidat položky úkolů a vyberte Done (Hotovo). Měly by se zobrazit na vaší domovské stránce jako dokončené položky.
Všechny vaše existující položky úkolů jsou nadále zobrazené. Když aplikaci ASP.NET znovu publikujete, stávající data ve službě SQL Database se neztratí. Migrace Code First také změní pouze schéma dat, ale existující data ponechá beze změny.
Streamování protokolů aplikací
Trasovací zprávy můžete streamovat přímo z aplikace Azure do sady Visual Studio.
Otevřete Controllers\TodosController.cs.
Každá akce začíná metodou Trace.WriteLine()
. Tento kód se přidá, abyste si ukázali, jak do aplikace Azure přidat trasovací zprávy.
Povolení streamování protokolů
Na stránce publikování se posuňte dolů do části Hostování .
V pravém rohu klikněte na ...>Zobrazení protokolů streamování
Protokoly se teď streamují do okna Výstup.
Zatím se však nezobrazují žádné zprávy trasování. Důvodem je to, že když poprvé vyberete Zobrazit protokoly streamování, vaše aplikace Azure nastaví úroveň trasování na
Error
, která protokoluje pouze chybové události (pomocíTrace.TraceError()
metody).
Změna úrovní trasování
Pokud chcete změnit úrovně trasování na výstup jiných trasovacích zpráv, vraťte se na stránku publikování.
V části Hostování klikněte na ...>Otevřete na webu Azure Portal.
Na stránce pro správu portálu pro vaši aplikaci v nabídce vlevo vyberte protokoly služby App Service.
V části Protokolování aplikace (systém souborů) vyberte Příkaz na úrovni. Klikněte na Uložit.
Tip
Můžete experimentovat s různými úrovněmi trasování, abyste viděli, jaké typy zpráv se zobrazí pro jednotlivé úrovně. Například úroveň Informace zahrnuje všechny protokoly vytvořené metodami
Trace.TraceInformation()
,Trace.TraceWarning()
aTrace.TraceError()
, ale nezahrnuje protokoly vytvořené metodouTrace.WriteLine()
.V prohlížeči přejděte do aplikace znovu v http://< názvu> aplikace.azurewebsites.net a pak zkuste kliknout na aplikaci seznamu úkolů v Azure. Zprávy trasování se teď streamují do okna Výstup v sadě Visual Studio.
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
Zastavení streamování protokolů
Pokud chcete zastavit službu streamování protokolů, klikněte na tlačítko Zastavit monitorování v okně Výstup.
Vyčištění prostředků
V předchozích krocích jste vytvořili prostředky Azure ve skupině prostředků. Pokud předpokládáte, že už tyto prostředky nebudete potřebovat, můžete je odstranit tak, že odstraníte skupinu prostředků.
- Na stránce Přehled vaší webové aplikace na webu Azure Portal vyberte odkaz myResourceGroup v části Skupina prostředků.
- Na stránce skupiny prostředků zkontrolujte, že chcete všechny uvedené prostředky odstranit.
- Vyberte Odstranit skupinu prostředků, do textového pole zadejte myResourceGroup a pak vyberte Odstranit.
- Potvrďte to znovu tak, že vyberete Odstranit.
Další kroky
V tomto kurzu jste se naučili, jak:
- Vytvoření databáze ve službě Azure SQL Database
- Připojit aplikaci ASP.NET ke službě SQL Database
- Nasadit aplikaci do Azure
- Aktualizovat datový model a znovu nasadit aplikaci
- Streamovat protokoly z Azure do terminálu
V dalším kurzu se dozvíte, jak snadno zlepšit zabezpečení připojení ke službě Azure SQL Database.
Další zdroje informací:
Chcete optimalizovat a ušetřit náklady na cloud?