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.

Published ASP.NET application in Azure App Service

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.

Předpoklady

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

  1. Stáhněte si ukázkový projekt.

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

  1. Otevřete soubor dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln v sadě Visual Studio.

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

  3. Vyberte odkaz Vytvořit nový a vytvořte několik položek úkolů.

    New ASP.NET Project dialog box

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

  1. V Průzkumníku řešení klikněte pravým tlačítkem na projekt DotNetAppSqlDb a vyberte Publikovat.

    Publish from Solution Explorer

  2. Jako cíl vyberte Azure a klikněte na Další.

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

  1. V dialogovém okně Publikovat klikněte na Přihlásit se.

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

  3. V podokně instance služby App Service klikněte na +.

    Sign in to Azure

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 .

Create app service dialog

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.

  1. Vedle pole Skupina prostředků klikněte na tlačítko Nová.

    Next to Resource Group, click New.

  2. 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)
  1. Vedle plánu hostování klikněte na Nový.

  2. 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 West Europe Oblasti Azure
    Velikost Bezplatný Cenové úrovně

    Create App Service plan

  3. Klikněte na Vytvořit a počkejte na vytvoření prostředků Azure.

  4. V dialogovém okně Publikovat se zobrazí prostředky, které jste nakonfigurovali. Klikněte na Finish (Dokončit).

    the resources you've created

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.

  1. 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 služby Připojení ed Services nezapomeňte nakonfigurovat službu SQL Database ze stránky Publikovat.

    Configure SQL Database dependency

  2. Vyberte Azure SQL Database a klikněte na Další.

  3. V dialogovém okně Konfigurace služby Azure SQL Database klikněte na +tlačítko .

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

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

    Create server

    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.

  6. Klikněte na OK.

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

    Configure database

Konfigurace připojení k databázi

  1. Po dokončení vytváření databázových prostředků průvodce klikněte na tlačítko Další.

  2. Do pole Název připojovací řetězec databáze zadejte MyDb Připojení ion. Tento název se musí shodovat s připojovacím řetězcem, na který se odkazuje v souboru Models/MyDatabaseContext.cs.

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

  4. Ujistěte se, že je vybraná Aplikace Azure Nastavení, a klikněte na Tlačítko Dokončit.

    Poznámka:

    Pokud se místo toho zobrazí soubory tajných kódů místních uživatelů, musíte mít službu SQL Database nakonfigurovanou ze stránky služby Připojení ed Services místo na stránce Publikovat.

    Configure database connection string

  5. Počkejte na dokončení průvodce konfigurací a klikněte na tlačítko Zavřít.

Nasazení aplikace ASP.NET

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

  2. Přidejte několik položek úkolů.

    Published ASP.NET application in Azure app

    Blahopřejeme! 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

  1. V nabídce Zobrazení vyberte Průzkumník objektů systému SQL Server.

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

  1. V dialogovém okně Připojení rozbalte uzel Azure. Tady jsou uvedené všechny vaše instance služby SQL Database v Azure.

  2. Vyberte databázi, kterou jste vytvořili dříve. V dolní části se automaticky vyplní připojení, které jste vytvořili.

  3. Zadejte heslo správce databáze, které jste vytvořili dříve, a klikněte na Připojit.

    Configure database connection from Visual Studio

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

  1. Ujistěte se, že je vybraná možnost Přidat IP adresu mého klienta, a klikněte na OK.

    Create firewall rule

    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ší.

  2. Rozbalte databázové tabulky databází<>>>připojení.> Klikněte pravým tlačítkem na tabulku Todoes a vyberte Zobrazit data.

    Explore SQL Database objects

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.

  1. V nabídce Nástroje klikněte na Správce balíčků NuGet>Konzola správce balíčků.

  2. V okně konzoly správce balíčků povolte migraci Code First:

    Enable-Migrations
    
  3. Přidejte migraci:

    Add-Migration AddProperty
    
  4. Aktualizujte místní databázi:

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

  1. Otevřete Controllers\TodosController.cs.

  2. Vyhledejte metodu Create() na řádku 52 a přidejte vlastnost Done do seznamu vlastností v atributu Bind. Po dokončení bude podpis vaší metody Create() vypadat podobně jako následující kód:

    public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
    
  3. Otevřete Views\Todos\Create.cshtml.

  4. 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>
    
  5. Otevřete Views\Todos\Index.cshtml.

  6. 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>
    
  7. Vyhledejte prvek <td>, který obsahuje pomocné metody Html.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 a Create projevily změny.

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

  1. Stejně jako předtím klikněte pravým tlačítkem na svůj projekt a vyberte Publikovat.

  2. Kliknutím na Další akce>Upravit otevřete nastavení publikování.

    Open publish settings

  3. V rozevíracím seznamu MyDatabaseContext vyberte připojení databáze pro službu Azure SQL Database.

  4. Vyberte Spustit migraci Code First (spustí se při spuštění aplikace) a pak klikněte na Uložit.

    Enable Code First Migrations in Azure app

Publikování provedených změn

Teď, když jste v aplikaci Azure povolili Migrace Code First, publikujte změny kódu.

  1. Na stránce publikování klikněte na Publikovat.

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

    Azure app after Code First Migration

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ů

  1. Na stránce publikování se posuňte dolů do části Hostování .

  2. V pravém rohu klikněte na ...>Zobrazení protokolů streamování

    Enable log streaming

    Protokoly se teď streamují do okna Výstup.

    Log streaming in Output window

    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í

  1. Pokud chcete změnit úrovně trasování na výstup jiných trasovacích zpráv, vraťte se na stránku publikování.

  2. V části Hostování klikněte na ...>Otevřete na webu Azure Portal.

  3. Na stránce pro správu portálu pro vaši aplikaci v nabídce vlevo vyberte protokoly služby App Service.

  4. 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() a Trace.TraceError(), ale nezahrnuje protokoly vytvořené metodou Trace.WriteLine().

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

Stop log streaming

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

  1. Na stránce Přehled vaší webové aplikace na webu Azure Portal vyberte odkaz myResourceGroup v části Skupina prostředků.
  2. Na stránce skupiny prostředků zkontrolujte, že chcete všechny uvedené prostředky odstranit.
  3. Vyberte Odstranit, do textového pole zadejte myResourceGroup a potom vyberte 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?