Kurz: Nasazení aplikace ASP.NET Core a Azure SQL Database do služby Aplikace Azure Service

V tomto kurzu se dozvíte, jak nasadit aplikaci ASP.NET Core řízenou daty do služby Aplikace Azure Service a jak se připojit ke službě Azure SQL Database. Nasadíte také Azure Cache for Redis, abyste ve své aplikaci povolili kód ukládání do mezipaměti. Aplikace Azure Service je vysoce škálovatelná služba samoobslužných oprav, která umožňuje snadné nasazování aplikací ve Windows nebo Linuxu. I když tento kurz používá aplikaci ASP.NET Core 7.0, proces je stejný pro jiné verze ASP.NET Core a ASP.NET Framework.

V tomto kurzu budete potřebovat:

  • Účet Azure s aktivním předplatným. Pokud účet Azure nemáte, můžete si ho zdarma vytvořit.
  • Účet GitHub. můžete si ho zdarma získat.

Ukázková aplikace

Pokud chcete prozkoumat ukázkovou aplikaci použitou v tomto kurzu, stáhněte si ji z úložiště https://github.com/Azure-Samples/msdocs-app-service-sqldb-dotnetcore nebo ji naklonujte pomocí následujícího příkazu Gitu:

git clone https://github.com/Azure-Samples/msdocs-app-service-sqldb-dotnetcore.git
cd msdocs-app-service-sqldb-dotnetcore

1. Vytvoření služby App Service, databáze a mezipaměti

V tomto kroku vytvoříte prostředky Azure. Kroky použité v tomto kurzu vytvoří sadu prostředků zabezpečených ve výchozím nastavení, mezi které patří App Service, Azure SQL Database a Azure Cache. Pro proces vytváření zadáte:

  • Název webové aplikace. Jedná se o název, který se používá jako součást názvu DNS pro webovou aplikaci ve formě https://<app-name>.azurewebsites.net.
  • Oblast, ve které se má aplikace spouštět fyzicky na světě.
  • Zásobník modulu runtime pro aplikaci. Tady vyberete verzi .NET, kterou chcete použít pro vaši aplikaci.
  • Plán hostování aplikace. Je to cenová úroveň, která zahrnuje sadu funkcí a kapacitu škálování vaší aplikace.
  • Skupina prostředků pro aplikaci. Skupina prostředků umožňuje seskupovat (v logickém kontejneru) všechny prostředky Azure potřebné pro aplikaci.

Přihlaste se k webu Azure Portal a podle těchto kroků vytvořte prostředky služby Aplikace Azure Service.

Krok 1: Na webu Azure Portal:

  1. Do vyhledávacího panelu v horní části webu Azure Portal zadejte "databáze webové aplikace".
  2. Vyberte položku s popiskem Web App + Database pod nadpisem Marketplace . Můžete také přejít přímo do průvodce vytvořením.

Snímek obrazovky znázorňující použití vyhledávacího pole v horním panelu nástrojů k vyhledání průvodce vytvořením webové aplikace a databáze

Krok 2: Na stránce Vytvořit webovou aplikaci a databázi vyplňte formulář následujícím způsobem.

  1. Skupina prostředků → Vyberte Vytvořit nový a použijte název msdocs-core-sql-tutorial.
  2. Oblast → Libovolná oblast Azure blízko vás.
  3. Názevmsdocs-core-sql-XYZ , kde XYZ je jakékoli tři náhodné znaky. Tento název musí být v rámci služby Azure jedinečný.
  4. Zásobník modulu runtime → .NET 7 (STS)
  5. Přidat Azure Cache for Redis? → Ano.
  6. Plán hostování → Basic. Až budete připraveni, můžete později vertikálně navýšit kapacitu na cenovou úroveň produkčního prostředí.
  7. Jako databázový stroj vyberte SQLAzure . Azure SQL Database je plně spravovaný databázový stroj paaS (platforma jako služba), který je vždy spuštěný na nejnovější stabilní verzi SQL Serveru.
  8. Vyberte Zkontrolovat a vytvořit.
  9. Po dokončení ověření vyberte Vytvořit.

Snímek obrazovky znázorňující, jak nakonfigurovat novou aplikaci a databázi v průvodci webovou aplikací a databází

Krok 3: Dokončení nasazení trvá několik minut. Po dokončení nasazení vyberte tlačítko Přejít k prostředku . Přejdete přímo do aplikace App Service, ale vytvoří se následující prostředky:

  • Skupina prostředků → Kontejner pro všechny vytvořené prostředky.
  • Plán služby App Service → Definuje výpočetní prostředky služby App Service. Vytvoří se plán Linuxu na úrovni Basic .
  • → App Service Představuje vaši aplikaci a běží v plánu služby App Service.
  • Virtuální síť → integrovaná s aplikací App Service a izoluje back-endový síťový provoz.
  • Privátní koncové body → koncových bodů přístupu pro databázový server a mezipaměť Redis ve virtuální síti.
  • Síťová rozhraní → Představuje privátní IP adresy, jednu pro každý privátní koncový bod.
  • Server Azure SQL Database → Přístupný pouze ze svého privátního koncového bodu.
  • Azure SQL Database → databázi a uživatel se pro vás vytvoří na serveru.
  • Azure Cache for Redis → Přístupná pouze ze svého privátního koncového bodu.
  • Privátní DNS zón → Povolit překlad DNS databázového serveru a mezipaměti Redis ve virtuální síti.

Snímek obrazovky znázorňující dokončení procesu nasazení

2. Ověření připojovací řetězec

Průvodce vytvořením vygeneroval připojovací řetězec pro databázi SQL a mezipaměť Redis. V tomto kroku vyhledejte vygenerované připojovací řetězec pro pozdější použití.

Krok 1: Na stránce služby App Service v nabídce vlevo vyberte Konfigurace.

Snímek obrazovky znázorňující, jak otevřít stránku konfigurace ve službě App Service

Krok 2:

  1. Posuňte se do dolní části stránky a v části řetězce Připojení vyhledejte AZURE_SQL_CONNECTIONSTRING. Tento řetězec byl vygenerován z nové databáze SQL průvodcem vytvořením. K nastavení aplikace je tento název vše, co potřebujete.
  2. V části Nastavení aplikace vyhledejte také AZURE_REDIS_CONNECTIONSTRING. Tento řetězec byl vygenerován z nové mezipaměti Redis průvodcem vytvořením. K nastavení aplikace je tento název vše, co potřebujete.
  3. Pokud chcete, můžete vybrat tlačítko Upravit napravo od každého nastavení a zobrazit nebo zkopírovat jeho hodnotu. Později aplikaci změníte tak, aby používala AZURE_SQL_CONNECTIONSTRING a AZURE_REDIS_CONNECTIONSTRING.

Snímek obrazovky znázorňující, jak vytvořit nastavení aplikace

3. Nasazení ukázkového kódu

V tomto kroku nakonfigurujete nasazení GitHubu pomocí GitHub Actions. Je to jen jeden z mnoha způsobů nasazení do služby App Service, ale také skvělý způsob, jak mít kontinuální integraci v procesu nasazení. Ve výchozím nastavení spustí každá git push z vašich úložišť GitHub akci sestavení a nasazení.

Krok 1: V novém okně prohlížeče:

  1. Přihlaste se k účtu GitHub.
  2. Přejděte na https://github.com/Azure-Samples/msdocs-app-service-sqldb-dotnetcore.
  3. Vyberte Fork.
  4. Vyberte Vytvořit fork.

Snímek obrazovky znázorňující, jak vytvořit fork ukázkového úložiště GitHub

Krok 2: Na stránce služby App Service v nabídce vlevo vyberte Deployment Center.

Snímek obrazovky znázorňující, jak otevřít centrum nasazení ve službě App Service

Krok 3: Na stránce Deployment Center:

  1. Ve zdroji vyberte GitHub. Ve výchozím nastavení je jako zprostředkovatel sestavení vybrán GitHub Actions .
  2. Přihlaste se ke svému účtu GitHub a postupujte podle pokynů k autorizaci Azure.
  3. V organizaci vyberte svůj účet.
  4. V úložišti vyberte msdocs-app-service-sqldb-dotnetcore.
  5. Ve větvi vyberte hlavní.
  6. V horní nabídce vyberte Uložit. App Service potvrdí soubor pracovního postupu do zvoleného úložiště GitHub v .github/workflows adresáři.

Snímek obrazovky znázorňující, jak nakonfigurovat CI/CD pomocí GitHub Actions

Krok 4: Vraťte stránku GitHubu ukázky forku a otevřete Visual Studio Code v prohlížeči stisknutím klávesy . .

Snímek obrazovky znázorňující, jak otevřít prostředí prohlížeče editoru Visual Studio Code na GitHubu

Krok 5: V editoru Visual Studio Code v prohlížeči:

  1. V průzkumníku otevřete DotNetCoreSqlDb/appsettings.json .
  2. Změňte název MyDbConnection připojovací řetězec takAZURE_SQL_CONNECTIONSTRING, aby odpovídal připojovací řetězec vytvořeným ve službě App Service dříve.

Snímek obrazovky s připojovací řetězec změněným názvem v appsettings.json

Krok 6:

  1. V průzkumníku otevřete DotNetCoreSqlDb/Program.cs .
  2. options.UseSqlServer V metodě změňte název MyDbConnection připojovací řetězec na AZURE_SQL_CONNECTIONSTRING. Tady je připojovací řetězec používána ukázkovou aplikací.
  3. Odeberte metodu builder.Services.AddDistributedMemoryCache(); a nahraďte ji následujícím kódem. Změní kód z použití mezipaměti v paměti do mezipaměti Redis v Azure a provede to pomocí AZURE_REDIS_CONNECTIONSTRING dřívějších verzí.
builder.Services.AddStackExchangeRedisCache(options =>
{
options.Configuration = builder.Configuration["AZURE_REDIS_CONNECTIONSTRING"];
options.InstanceName = "SampleInstance";
});

Snímek obrazovky s připojovací řetězec změněným názvem v Program.cs

Krok 7:

  1. V průzkumníku otevřete .github/workflows/main_msdocs-core-sql-XYZ . Tento soubor vytvořil průvodce vytvořením služby App Service.
  2. Pod krokem dotnet publish přidejte krok pro instalaci nástroje Entity Framework Core pomocí příkazu dotnet tool install -g dotnet-ef --version 7.0.14.
  3. V novém kroku přidejte další krok pro vygenerování sady migrace databáze v balíčku pro nasazení: dotnet ef migrations bundle --runtime linux-x64 -p DotNetCoreSqlDb/DotNetCoreSqlDb.csproj -o ${{env.DOTNET_ROOT}}/myapp/migrate. Sada migrace je samostatný spustitelný soubor, který můžete spustit v produkčním prostředí bez nutnosti sady .NET SDK. Kontejner Služby App Service pro Linux má pouze modul runtime .NET, nikoli sadu .NET SDK.

Snímek obrazovky znázorňující kroky přidané do souboru pracovního postupu GitHubu pro sadu migrace databáze

Krok 8:

  1. Vyberte rozšíření správy zdrojového kódu .
  2. Do textového pole zadejte zprávu potvrzení, například Configure DB & Redis & add migration bundle.
  3. Vyberte Potvrdit a nasdílení změn.

Snímek obrazovky znázorňující potvrzené a nasdílené změny do GitHubu

Krok 9: Zpět na stránce Deployment Center na webu Azure Portal:

  1. Vyberte Protokoly. Od potvrzených změn už je spuštěné nové spuštění nasazení.
  2. V položce protokolu pro spuštění nasazení vyberte položku Sestavit/Nasadit protokoly s nejnovějším časovým razítkem.

Snímek obrazovky znázorňující, jak otevřít protokoly nasazení v centru nasazení

Krok 10: Přejdete do úložiště GitHub a zjistíte, že je spuštěná akce GitHubu. Soubor pracovního postupu definuje dvě samostatné fáze, sestavení a nasazení. Počkejte na spuštění GitHubu, aby se zobrazil stav Dokončeno. Trvá to několik minut.

Snímek obrazovky znázorňující probíhající spuštění GitHubu

4. Generování schématu databáze

S databází SQL chráněnou virtuální sítí je nejjednodušší způsob, jak spouštět migrace databází dotnet, v relaci SSH s kontejnerem služby App Service.

Krok 1: Zpět na stránce služby App Service v nabídce vlevo vyberte SSH.

Snímek obrazovky znázorňující, jak otevřít prostředí SSH pro vaši aplikaci z webu Azure Portal

Krok 2: V terminálu SSH:

  1. Spusťte cd /home/site/wwwroot. Tady jsou všechny vaše nasazené soubory.
  2. Spusťte sadu migrace vygenerovanou pracovním postupem GitHubu pomocí ./migratepříkazu . Pokud proběhne úspěšně, služba App Service se úspěšně připojuje ke službě SQL Database. Kromě restartování aplikace se můžou zachovat jenom změny v /home souborech. Změny mimo /home jiné se neuchovávají.

Snímek obrazovky znázorňující příkazy pro spuštění v prostředí SSH a jejich výstup

5. Přejděte do aplikace.

Krok 1: Na stránce služby App Service:

  1. V nabídce vlevo vyberte Přehled.
  2. Vyberte adresu URL aplikace. Můžete také přejít přímo na https://<app-name>.azurewebsites.net.

Snímek obrazovky znázorňující, jak spustit službu App Service z webu Azure Portal

Krok 2: Přidejte do seznamu několik úkolů. Blahopřejeme, ve službě Aplikace Azure Service spouštíte zabezpečenou aplikaci ASP.NET Core řízenou daty.

Snímek obrazovky aplikace .NET Core spuštěné ve službě App Service

Tip

Ukázková aplikace implementuje model doplňování do mezipaměti. Když navštívíte zobrazení dat podruhé nebo znovu načtete stejnou stránku po provedení změn dat, zobrazí se doba zpracování na webové stránce mnohem rychleji, protože načítá data z mezipaměti místo databáze.

6. Streamování diagnostických protokolů

Aplikace Azure Služba zaznamenává všechny zprávy protokolované do konzoly, aby vám pomohla při diagnostice problémů s vaší aplikací. Ukázková aplikace vypíše zprávy protokolu konzoly ve všech jejích koncových bodech, aby tuto funkci ukázala.

Krok 1: Na stránce služby App Service:

  1. V nabídce vlevo vyberte protokoly služby App Service.
  2. V části Protokolování aplikace vyberte Systém souborů.

Snímek obrazovky znázorňující povolení nativních protokolů ve službě App Service na webu Azure Portal

Krok 2: V nabídce vlevo vyberte Stream protokolu. Zobrazí se protokoly pro vaši aplikaci, včetně protokolů platformy a protokolů z kontejneru.

Snímek obrazovky znázorňující, jak zobrazit stream protokolu na webu Azure Portal

7. Vyčištění prostředků

Po dokončení můžete odstranit všechny prostředky z předplatného Azure odstraněním skupiny prostředků.

Krok 1: Na panelu hledání v horní části webu Azure Portal:

  1. Zadejte název skupiny prostředků.
  2. Vyberte tuto skupinu prostředků.

Snímek obrazovky znázorňující, jak hledat a přejít na skupinu prostředků na webu Azure Portal

Krok 2: Na stránce skupiny prostředků vyberte Odstranit skupinu prostředků.

Snímek obrazovky znázorňující umístění tlačítka Odstranit skupinu prostředků na webu Azure Portal

Krok 3:

  1. Potvrďte odstranění zadáním názvu skupiny prostředků.
  2. Vyberte Odstranit.

Snímek obrazovky s potvrzovací dialog pro odstranění skupiny prostředků na webu Azure Portal :

Nejčastější dotazy

Kolik stojí toto nastavení?

Ceny pro prostředky vytvoření jsou následující:

  • Plán služby App Service se vytvoří na úrovni Basic a dá se vertikálně navýšit nebo snížit. Podívejte se na ceny služby App Service.
  • Azure SQL Database se vytváří v bezserverové úrovni pro obecné účely na hardwaru řady Standard s minimálními jádry. Existují malé náklady a je možné je distribuovat do jiných oblastí. Náklady můžete minimalizovat ještě více tím, že zmenšujete maximální velikost nebo ji můžete vertikálně navýšit úpravou úrovně obsluhy, výpočetní úrovně, konfigurace hardwaru, počtu jader, velikosti databáze a redundance zón. Viz Ceny služby Azure SQL Database.
  • Azure Cache for Redis se vytvoří na úrovni Basic s minimální velikostí mezipaměti. K této úrovni jsou spojené malé náklady. Kapacitu můžete vertikálně navýšit na vyšší úroveň výkonu pro vyšší dostupnost, clustering a další funkce. Podívejte se na ceny služby Azure Cache for Redis.
  • Za virtuální síť se neúčtují poplatky, pokud nenakonfigurujete další funkce, jako je partnerský vztah. Podívejte se na ceny služby Azure Virtual Network.
  • Za privátní zónu DNS se účtují malé poplatky. Podívejte se na ceny Azure DNS.

Návody se připojit k serveru Azure SQL Database, který je zabezpečený za virtuální sítí pomocí jiných nástrojů?

  • Základní přístup z nástroje příkazového řádku můžete spustit sqlcmd z terminálu SSH aplikace. Kontejner aplikace není součástí sqlcmd, takže ho musíte nainstalovat ručně. Mějte na paměti, že nainstalovaný klient se při restartování aplikace neuchová.
  • Pokud se chcete připojit z klienta aplikace SQL Server Management Studio nebo ze sady Visual Studio, musí být váš počítač ve virtuální síti. Může to být například virtuální počítač Azure, který je připojený k jedné z podsítí, nebo počítač v místní síti, který má připojení VPN typu site-to-site s virtuální sítí Azure.

Jak místní vývoj aplikací funguje s GitHub Actions?

Jako příklad vezměte automaticky vygenerovaný soubor pracovního postupu ze služby App Service a každý git push spustí nové sestavení a nasazení. Z místního klonu úložiště GitHub provedete požadované aktualizace nasdílení změn do GitHubu. Příklad:

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

Návody chyby ladění během nasazení GitHub Actions?

Pokud v automaticky vygenerovaném souboru pracovního postupu GitHubu selže krok, zkuste upravit neúspěšný příkaz a vygenerovat více podrobného výstupu. Přidáním možnosti můžete například získat další výstup z libovolného dotnet příkazu -v . Potvrďte a nasdílejte změny, aby se aktivovalo další nasazení do služby App Service.

Další kroky

V dalším kurzu se dozvíte, jak zabezpečit aplikaci pomocí vlastní domény a certifikátu.

Nebo se podívejte na další zdroje informací: