Menyebarkan dan menskalakan aplikasi ASP.NET Core di Azure Container Apps

Aplikasi yang disebarkan ke Azure yang mengalami manfaat permintaan tinggi terputus-terputus dari skalabilitas untuk memenuhi permintaan. Aplikasi yang dapat diskalakan dapat diskalakan untuk memastikan kapasitas selama puncak beban kerja dan kemudian menurunkan skala secara otomatis saat puncak turun, yang dapat menurunkan biaya. Penskalaan horizontal (perluasan skala) menambahkan instans sumber daya baru, seperti VM atau replika database. Artikel ini menunjukkan cara menyebarkan aplikasi ASP.NET Core yang dapat diskalakan secara horizontal ke aplikasi kontainer Azure dengan menyelesaikan tugas-tugas berikut:

  1. Menyiapkan proyek sampel
  2. Menyebarkan aplikasi ke Azure Container Apps
  3. Menskalakan dan memecahkan masalah aplikasi
  4. Membuat Layanan Azure
  5. Koneksi layanan Azure
  6. Mengonfigurasi dan menyebarkan ulang aplikasi

Artikel ini menggunakan Razor Pages, tetapi sebagian besar berlaku untuk aplikasi ASP.NET Core lainnya.

Dalam beberapa kasus, aplikasi dasar ASP.NET Core dapat menskalakan tanpa pertimbangan khusus. Namun, aplikasi yang menggunakan fitur kerangka kerja atau pola arsitektur tertentu memerlukan konfigurasi tambahan, termasuk yang berikut ini:

  • Pengiriman formulir yang aman: Razor Aplikasi Halaman, MVC, dan API Web sering mengandalkan pengiriman formulir. Secara default aplikasi ini menggunakan token pemalsuan lintas situs dan layanan perlindungan data internal untuk mengamankan permintaan. Saat disebarkan ke cloud, aplikasi ini harus dikonfigurasi untuk mengelola masalah layanan perlindungan data di lokasi yang aman dan terpusat.

  • SignalRsirkuit: Blazor Server aplikasi memerlukan penggunaan layanan Azure SignalR terpusat untuk menskalakan dengan aman. Layanan ini juga menggunakan layanan perlindungan data yang disebutkan sebelumnya.

  • Penembolokan terpusat atau layanan manajemen status: Aplikasi yang dapat diskalakan dapat menggunakan Azure Cache for Redis untuk menyediakan penembolokan terdistribusi. Penyimpanan Azure mungkin diperlukan untuk menyimpan status untuk kerangka kerja seperti Microsoft Orleans, yang dapat membantu menulis aplikasi yang mengelola status di berbagai instans aplikasi.

Langkah-langkah dalam artikel ini menunjukkan cara mengatasi masalah sebelumnya dengan benar dengan menyebarkan aplikasi yang dapat diskalakan ke Azure Container Apps. Sebagian besar konsep dalam tutorial ini juga berlaku saat menskalakan instans Azure App Service .

Menyiapkan proyek sampel

Gunakan aplikasi sampel GitHub Explorer untuk mengikuti tutorial ini. Klon aplikasi dari GitHub menggunakan perintah berikut:

git clone "https://github.com/dotnet/AspNetCore.Docs.Samples.git"

Navigasi ke /tutorials/scalable-razor-apps/start folder dan buka ScalableRazor.csproj.

Aplikasi sampel menggunakan formulir pencarian untuk menelusuri repositori GitHub berdasarkan nama. Formulir ini bergantung pada layanan perlindungan data ASP.NET Core bawaan untuk menangani masalah anti-pemalsuan. Secara default, saat aplikasi menskalakan secara horizontal di Container Apps, layanan perlindungan data melemparkan pengecualian.

Menguji aplikasi

  1. Luncurkan aplikasi di Visual Studio. Proyek ini menyertakan file Docker, yang berarti bahwa panah di samping tombol jalankan dapat dipilih untuk memulai aplikasi menggunakan penyiapan Docker Desktop atau server web lokal ASP.NET Core standar.

Gunakan formulir pencarian untuk menelusuri repositori GitHub berdasarkan nama.

A screenshot showing the GitHub Explorer app.

Menyebarkan aplikasi ke Azure Container Apps

Visual Studio digunakan untuk menyebarkan aplikasi ke Azure Container Apps. Aplikasi kontainer menyediakan layanan terkelola yang dirancang untuk menyederhanakan hosting aplikasi kontainer dan layanan mikro.

Catatan

Banyak sumber daya yang dibuat untuk aplikasi memerlukan lokasi. Untuk aplikasi ini, lokasi tidak penting. Aplikasi nyata harus memilih lokasi yang paling dekat dengan klien. Anda mungkin ingin memilih lokasi di dekat Anda.

  1. Di penjelajah solusi Visual Studio, klik kanan pada simpul proyek tingkat atas dan pilih Terbitkan.

  2. Dalam dialog penerbitan, pilih Azure sebagai target penyebaran, lalu pilih Berikutnya.

  3. Untuk target tertentu, pilih Azure Container Apps (Linux), lalu pilih Berikutnya.

  4. Buat aplikasi kontainer baru untuk disebarkan. Pilih ikon hijau + untuk membuka dialog baru dan masukkan nilai berikut:

    A screenshot showing Visual Studio deployment.

    • Nama aplikasi kontainer: Biarkan nilai default atau masukkan nama.
    • Nama langganan: Pilih langganan yang akan disebarkan.
    • Grup sumber daya: Pilih Baru dan buat grup sumber daya baru yang disebut msdocs-scalable-razor.
    • Lingkungan aplikasi kontainer: Pilih Baru untuk membuka dialog lingkungan aplikasi kontainer dan masukkan nilai berikut:
      • Nama lingkungan: Pertahankan nilai default.
      • Lokasi: Pilih lokasi di dekat Anda.
      • Ruang Kerja Azure Log Analytics: Pilih Baru untuk membuka dialog ruang kerja analitik log.
        • Nama: Biarkan nilai default.
        • Lokasi: Pilih lokasi di dekat Anda lalu pilih Ok untuk menutup dialog.
      • Pilih Ok untuk menutup dialog lingkungan aplikasi kontainer.
    • Pilih Buat untuk menutup dialog aplikasi kontainer asli. Visual Studio membuat sumber daya aplikasi kontainer di Azure.
  5. Setelah sumber daya dibuat, pastikan sumber daya dipilih dalam daftar aplikasi kontainer, lalu pilih Berikutnya.

  6. Anda harus membuat Azure Container Registry untuk menyimpan artefak gambar yang diterbitkan untuk aplikasi Anda. Pilih ikon hijau + pada layar registri kontainer.

    A screenshot showing how to create a new container registry.

  7. Biarkan nilai default, lalu pilih Buat.

    A screenshot showing the values for a new container registry.

  8. Setelah registri kontainer dibuat, pastikan registri tersebut dipilih, lalu pilih selesai untuk menutup alur kerja dialog dan menampilkan ringkasan profil penerbitan.

    Jika Visual Studio meminta Anda untuk mengaktifkan pengguna Admin untuk mengakses kontainer docker yang diterbitkan, pilih Ya.

  9. Pilih Terbitkan di kanan atas ringkasan profil penerbitan untuk menyebarkan aplikasi ke Azure.

Setelah penyebaran selesai, Visual Studio meluncurkan browser untuk menampilkan aplikasi yang dihosting. Cari Microsoft di bidang formulir, dan daftar repositori ditampilkan.

Menskalakan dan memecahkan masalah aplikasi

Aplikasi saat ini berfungsi tanpa masalah apa pun, tetapi kami ingin menskalakan aplikasi di lebih banyak instans untuk mengantisipasi volume lalu lintas yang tinggi.

  1. Di portal Azure, cari razorscaling-app-**** aplikasi kontainer di bilah pencarian tingkat atas dan pilih dari hasilnya.
  2. Pada halaman gambaran umum, pilih Skalakan dari navigasi kiri, lalu pilih + Edit dan sebarkan.
  3. Pada halaman revisi, beralihlah ke tab Skala .
  4. Atur instans min dan maks ke 4 lalu pilih Buat. Perubahan konfigurasi ini menjamin aplikasi Anda diskalakan secara horizontal di empat instans.

Navigasikan kembali ke aplikasi. Ketika halaman dimuat, pada awalnya muncul semuanya berfungsi dengan benar. Namun, ketika istilah pencarian dimasukkan dan dikirimkan, kesalahan dapat terjadi. Jika kesalahan tidak ditampilkan, kirim formulir beberapa kali lagi.

Pemecahan masalah kesalahan

Tidak segera terlihat mengapa permintaan pencarian gagal. Alat browser menunjukkan respons 400 Permintaan Buruk dikirim kembali. Namun, Anda dapat menggunakan fitur pengelogan aplikasi kontainer untuk mendiagnosis kesalahan yang terjadi di lingkungan Anda.

  1. Pada halaman gambaran umum aplikasi kontainer, pilih Log dari navigasi kiri.

  2. Pada halaman Log , tutup pop-up yang membuka dan menavigasi ke tab Tabel .

  3. Perluas item Log Kustom untuk mengungkapkan simpul ContainerAppConsoleLogs_CL. Tabel ini menyimpan berbagai log untuk aplikasi kontainer yang dapat dikueri untuk memecahkan masalah.

    A screenshot showing the container app logs.

  4. Di editor kueri, buat kueri dasar untuk mencari tabel log ContainerAppConsoleLogs_CL untuk pengecualian terbaru, seperti skrip berikut:

    ContainerAppConsoleLogs_CL
    | where Log_s contains "exception"
    | sort by TimeGenerated desc
    | limit 500
    | project ContainerAppName_s, Log_s
    

    Kueri sebelumnya mencari tabel ContainerAppConsoleLogs_CL untuk setiap baris yang berisi pengecualian kata. Hasilnya diurutkan berdasarkan waktu yang dihasilkan, dibatasi hingga 500 hasil, dan hanya menyertakan kolom ContainerAppName_s dan Log_s untuk membuat hasilnya lebih mudah dibaca.

  5. Pilih Jalankan, daftar hasil ditampilkan. Baca log dan perhatikan bahwa sebagian besar dari mereka terkait dengan token antiforgeri dan kriptografi.

    A screenshot showing the logs query.

    Penting

    Kesalahan dalam aplikasi disebabkan oleh layanan perlindungan data .NET. Ketika beberapa instans aplikasi berjalan, tidak ada jaminan bahwa permintaan HTTP POST untuk mengirimkan formulir dirutekan ke kontainer yang sama yang awalnya memuat halaman dari permintaan HTTP GET. Jika permintaan ditangani oleh instans yang berbeda, token antiforgery tidak ditangani dengan benar dan terjadi pengecualian.

    Dalam langkah-langkah ke depan, masalah ini diselesaikan dengan memusatkan kunci perlindungan data dalam layanan penyimpanan Azure dan melindunginya dengan Key Vault.

Membuat Layanan Azure

Untuk mengatasi kesalahan sebelumnya, layanan berikut dibuat dan tersambung ke aplikasi:

  • Akun Azure Storage: Menangani penyimpanan data untuk Layanan Perlindungan Data. Menyediakan lokasi terpusat untuk menyimpan data kunci saat aplikasi diskalakan. Akun penyimpanan juga dapat digunakan untuk menyimpan dokumen, data antrean, berbagi file, dan hampir semua jenis data blob.
  • Azure KeyVault: Layanan ini menyimpan rahasia untuk aplikasi, dan digunakan untuk membantu mengelola masalah enkripsi untuk Layanan Perlindungan Data.

Membuat layanan akun penyimpanan

  1. Di bilah pencarian portal Azure, masukkan Storage accounts dan pilih hasil yang cocok.
  2. Pada halaman daftar akun penyimpanan, pilih + Buat.
  3. Pada tab Dasar , masukkan nilai berikut ini:
    • Langganan: Pilih langganan yang sama dengan yang Anda pilih untuk aplikasi kontainer.
    • Grup Sumber Daya: Pilih grup sumber daya msdocs-scalable-razor yang Anda buat sebelumnya.
    • Nama akun penyimpanan: Beri nama akun scalablerazorstorageXXXX di mana X adalah angka acak yang Anda pilih. Nama ini harus unik di semua Azure.
    • Wilayah: Pilih wilayah yang sama dengan yang sebelumnya Anda pilih.
  4. Biarkan nilai lainnya di defaultnya dan pilih Tinjau. Setelah Azure memvalidasi input, pilih Buat.

Azure menyediakan akun penyimpanan baru. Saat tugas selesai, pilih Buka sumber daya untuk melihat layanan baru.

Membuat kontainer penyimpanan

Buat Kontainer untuk menyimpan kunci perlindungan data aplikasi.

  1. Pada halaman gambaran umum untuk akun penyimpanan baru, pilih Browser penyimpanan di navigasi kiri.
  2. Pilih Kontainer Blob.
  3. Pilih + Tambahkan kontainer untuk membuka menu Flyout kontainer baru.
  4. Masukkan nama scalablerazorkeys, biarkan pengaturan lainnya di defaultnya, lalu pilih Buat.

Kontainer baru muncul di daftar halaman.

Membuat layanan brankas kunci

Buat brankas kunci untuk menahan kunci yang melindungi data dalam kontainer penyimpanan blob.

  1. Di bilah pencarian portal Azure, masukkan Key Vault dan pilih hasil yang cocok.
  2. Pada halaman daftar brankas kunci, pilih + Buat.
  3. Pada tab Dasar , masukkan nilai berikut ini:
    • Langganan: Pilih langganan yang sama yang sebelumnya dipilih.
    • Grup Sumber Daya: Pilih grup sumber daya msdocs-scalable-razor yang sebelumnya dibuat.
    • Nama Key Vault: Masukkan nama scalablerazorvaultXXXX.
    • Wilayah: Pilih wilayah di dekat lokasi Anda.
  4. Biarkan pengaturan lainnya di default-nya, kemudian pilih Tinjau + buat. Tunggu Azure memvalidasi pengaturan Anda, lalu pilih Buat.

Azure menyediakan brankas kunci baru. Saat tugas selesai, pilih Buka sumber daya untuk melihat layanan baru.

Membuat kunci

Buat kunci rahasia untuk melindungi data di akun penyimpanan blob.

  1. Pada halaman gambaran umum utama brankas kunci, pilih Kunci dari navigasi kiri.
  2. Pada halaman Buat kunci , pilih + Buat/Impor untuk membuka menu Buat flyout kunci .
  3. Masukkan razorkey di bidang Nama . Biarkan pengaturan lainnya pada nilai defaultnya lalu pilih Buat. Kunci baru muncul di halaman daftar kunci.

Koneksi Azure Services

Aplikasi Kontainer memerlukan koneksi aman ke akun penyimpanan dan layanan brankas kunci untuk mengatasi kesalahan perlindungan data dan menskalakan dengan benar. Layanan baru tersambung bersama menggunakan langkah-langkah berikut:

Penting

Penetapan peran keamanan melalui Service Koneksi or dan alat lain biasanya membutuhkan waktu satu atau dua menit untuk disebarluaskan, dan dalam beberapa kasus yang jarang terjadi dapat memakan waktu hingga delapan menit.

Koneksi akun penyimpanan

  1. Di portal Azure, navigasikan ke halaman gambaran umum Aplikasi Kontainer.
  2. Di navigasi kiri, pilih Konektor layanan
  3. Pada halaman Service Koneksi or, pilih + Buat untuk membuka panel flyout Creation Koneksi ion dan masukkan nilai berikut:
    • Kontainer: Pilih Aplikasi Kontainer yang dibuat sebelumnya.
    • Jenis layanan: Pilih Penyimpanan - blob.
    • Langganan: Pilih langganan yang sebelumnya digunakan.
    • nama Koneksi ion: Biarkan nilai default.
    • Akun penyimpanan: Pilih akun penyimpanan yang dibuat sebelumnya.
    • Jenis klien: Pilih .NET.
  4. Pilih Berikutnya: Autentikasi untuk maju ke langkah berikutnya.
  5. Pilih Identitas terkelola yang ditetapkan sistem dan pilih Berikutnya: Jaringan.
  6. Biarkan opsi jaringan default dipilih, lalu pilih Tinjau + Buat.
  7. Setelah Azure memvalidasi pengaturan, pilih Buat.

Konektor layanan memungkinkan identitas terkelola yang ditetapkan sistem pada aplikasi kontainer. Ini juga menetapkan peran Kontributor Data Blob Penyimpanan ke identitas sehingga dapat melakukan operasi data pada kontainer penyimpanan.

Koneksi brankas kunci

  1. Di portal Azure, navigasikan ke halaman gambaran umum Aplikasi Kontainer Anda.
  2. Di navigasi kiri, pilih Konektor layanan.
  3. Pada halaman Service Koneksi or, pilih + Buat untuk membuka panel flyout Creation Koneksi ion dan masukkan nilai berikut:
    • Kontainer: Pilih aplikasi kontainer yang dibuat sebelumnya.
    • Jenis layanan: Pilih Key Vault.
    • Langganan: Pilih langganan yang sebelumnya digunakan.
    • nama Koneksi ion: Biarkan nilai default.
    • Brankas kunci: Pilih brankas kunci yang dibuat sebelumnya.
    • Jenis klien: Pilih .NET.
  4. Pilih Berikutnya: Autentikasi untuk maju ke langkah berikutnya.
  5. Pilih Identitas terkelola yang ditetapkan sistem dan pilih Berikutnya: Jaringan.
  6. Biarkan opsi jaringan default dipilih, lalu pilih Tinjau + Buat.
  7. Setelah Azure memvalidasi pengaturan, pilih Buat.

Konektor layanan menetapkan peran ke identitas sehingga dapat melakukan operasi data pada kunci brankas kunci.

Mengonfigurasi dan menyebarkan ulang aplikasi

Sumber daya Azure yang diperlukan telah dibuat. Di bagian ini kode aplikasi dikonfigurasi untuk menggunakan sumber daya baru.

  1. Instal paket NuGet berikut:

    • Azure.Identity: Menyediakan kelas untuk bekerja dengan identitas Azure dan layanan manajemen akses.
    • Microsoft.Extensions.Azure: Menyediakan metode ekstensi yang bermanfaat untuk melakukan konfigurasi Azure inti.
    • Azure.Extensions.AspNetCore.DataProtection.Blobs: Memungkinkan penyimpanan kunci ASP.NET Core DataProtection di Azure Blob Storage sehingga kunci dapat dibagikan di beberapa instans aplikasi web.
    • Azure.Extensions.AspNetCore.DataProtection.Keys: Memungkinkan perlindungan kunci tidak aktif menggunakan fitur Azure Key Vault Key Encryption/Wrapping.
    dotnet add package Azure.Identity
    dotnet add package Microsoft.Extensions.Azure
    dotnet add package Azure.Extensions.AspNetCore.DataProtection.Blobs
    dotnet add package Azure.Extensions.AspNetCore.DataProtection.Keys
    
  2. Perbarui Program.cs dengan kode yang disorot berikut:

    using Azure.Identity;
    using Microsoft.AspNetCore.DataProtection;
    using Microsoft.Extensions.Azure;
    
    var builder = WebApplication.CreateBuilder(args);
    var BlobStorageUri = builder.Configuration["AzureURIs:BlobStorage"];
    var KeyVaultURI = builder.Configuration["AzureURIs:KeyVault"];
    
    builder.Services.AddRazorPages();
    builder.Services.AddHttpClient();
    builder.Services.AddServerSideBlazor();
    
    builder.Services.AddAzureClientsCore();
    
    builder.Services.AddDataProtection()
                    .PersistKeysToAzureBlobStorage(new Uri(BlobStorageUri),
                                                    new DefaultAzureCredential())
                    .ProtectKeysWithAzureKeyVault(new Uri(KeyVaultURI),
                                                    new DefaultAzureCredential());
    var app = builder.Build();
    
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Error");
        app.UseHsts();
    }
    
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    
    app.UseRouting();
    
    app.UseAuthorization();
    
    app.MapRazorPages();
    
    app.Run();
    

Perubahan sebelumnya memungkinkan aplikasi mengelola perlindungan data menggunakan arsitektur terpusat dan dapat diskalakan. DefaultAzureCredential menemukan konfigurasi identitas terkelola yang diaktifkan sebelumnya saat aplikasi disebarkan ulang.

Perbarui tempat penampung di AzureURIs bagian appsettings.json file untuk menyertakan yang berikut ini:

  1. <storage-account-name> Ganti tempat penampung dengan nama scalablerazorstorageXXXX akun penyimpanan.

  2. <container-name> Ganti tempat penampung dengan nama scalablerazorkeys kontainer penyimpanan.

  3. <key-vault-name> Ganti tempat penampung dengan nama brankas scalablerazorvaultXXXX kunci.

  4. <key-name> Ganti tempat penampung di URI brankas kunci dengan nama yang razorkey dibuat sebelumnya.

    {
      "GitHubURL": "https://api.github.com",
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
      },
      "AllowedHosts": "*",
      "AzureURIs": {
        "BlobStorage": "https://<storage-account-name>.blob.core.windows.net/<container-name>/keys.xml",
        "KeyVault": "https://<key-vault-name>.vault.azure.net/keys/<key-name>/"
      }
    }
    

Menyebarkan ulang aplikasi

Aplikasi ini sekarang dikonfigurasi dengan benar untuk menggunakan layanan Azure yang dibuat sebelumnya. Sebarkan ulang aplikasi agar perubahan kode diterapkan.

  1. Klik kanan pada simpul proyek di penjelajah solusi dan pilih Terbitkan.
  2. Pada tampilan ringkasan profil penerbitan, pilih tombol Terbitkan di sudut kanan atas.

Visual Studio menyebarkan ulang aplikasi ke lingkungan aplikasi kontainer yang dibuat sebelumnya. Setelah proses selesai, browser diluncurkan ke beranda aplikasi.

Uji aplikasi lagi dengan mencari Microsoft di bidang pencarian. Halaman sekarang harus dimuat ulang dengan hasil yang benar setiap kali Anda mengirimkan.

Mengonfigurasi peran untuk pengembangan lokal

Kode dan konfigurasi aplikasi yang ada juga dapat berfungsi saat berjalan secara lokal selama pengembangan. Kelas DefaultAzureCredential yang dikonfigurasi sebelumnya dapat mengambil kredensial lingkungan lokal untuk mengautentikasi ke Azure Services. Anda harus menetapkan peran yang sama ke akun Anda sendiri yang ditetapkan ke identitas terkelola aplikasi Anda agar autentikasi berfungsi. Ini harus menjadi akun yang sama dengan yang Anda gunakan untuk masuk ke Visual Studio atau Azure CLI.

Masuk ke lingkungan pengembangan lokal Anda

Anda harus masuk ke Azure CLI, Visual Studio, atau Azure PowerShell agar kredensial Anda diambil oleh DefaultAzureCredential.

az login

Menetapkan peran ke akun pengembang Anda

  1. Di portal Azure, navigasikan ke akun penyimpanan yang scalablerazor**** dibuat sebelumnya.
  2. Pilih Access Control (IAM) dari navigasi kiri.
  3. Pilih + Tambahkan lalu Tambahkan penetapan peran dari menu drop-down.
  4. Pada halaman Tambahkan penetapan peran, cari Storage blob data contributor, pilih hasil yang cocok, lalu pilih Berikutnya.
  5. Pastikan Pengguna, grup, atau perwakilan layanan dipilih, lalu pilih + Pilih anggota.
  6. Di flyout Pilih anggota, cari akun user@domain Anda sendiri dan pilih dari hasilnya.
  7. Pilih Berikutnya lalu pilih Tinjau + tetapkan. Setelah Azure memvalidasi pengaturan, pilih Tinjau + tetapkan lagi.

Seperti yang dinyatakan sebelumnya, izin penetapan peran mungkin membutuhkan waktu satu atau dua menit untuk disebarluaskan, atau dalam kasus yang jarang terjadi hingga delapan menit.

Ulangi langkah-langkah sebelumnya untuk menetapkan peran ke akun Anda sehingga dapat mengakses layanan dan rahasia brankas kunci.

  1. Di portal Azure, navigasikan ke brankas kunci yang razorscalingkeys dibuat sebelumnya.
  2. Pilih Access Control (IAM) dari navigasi kiri.
  3. Pilih + Tambahkan lalu Tambahkan penetapan peran dari menu drop-down.
  4. Pada halaman Tambahkan penetapan peran, cari Key Vault Crypto Service Encryption User, pilih hasil yang cocok, lalu pilih Berikutnya.
  5. Pastikan Pengguna, grup, atau perwakilan layanan dipilih, lalu pilih + Pilih anggota.
  6. Di flyout Pilih anggota, cari akun user@domain Anda sendiri dan pilih dari hasilnya.
  7. Pilih Berikutnya lalu pilih Tinjau + tetapkan. Setelah Azure memvalidasi pengaturan Anda, pilih Tinjau + tetapkan lagi.

Anda mungkin perlu menunggu lagi agar penetapan peran ini disebarluaskan.

Anda kemudian dapat kembali ke Visual Studio dan menjalankan aplikasi secara lokal. Kode harus terus berfungsi seperti yang diharapkan. DefaultAzureCredential menggunakan kredensial Anda yang sudah ada dari Visual Studio atau Azure CLI.

Pola aplikasi web yang andal

Lihat video dan artikel Reliable Web App Pattern for.NETYouTube untuk panduan tentang membuat aplikasi modern, andal, berkinerja, dapat diuji, hemat biaya, dan dapat diskalakan ASP.NET Core, baik dari awal atau refaktor aplikasi yang ada.