Tutorial: Menyebarkan aplikasi ASP.NET Core dan Azure SQL Database ke Azure App Service

Dalam tutorial ini, Anda akan mempelajari cara menyebarkan aplikasi ASP.NET Core berbasis data ke Azure App Service dan menyambungkan ke Azure SQL Database. Anda juga akan menyebarkan Azure Cache for Redis untuk mengaktifkan kode penembolokan di aplikasi Anda. Azure App Service adalah layanan patch mandiri dan hosting web yang sangat dapat diskalakan, yang dapat dengan mudah menyebarkan aplikasi di Windows atau Linux. Meskipun tutorial ini menggunakan aplikasi ASP.NET Core 7.0, prosesnya sama untuk versi ASP.NET Core dan ASP.NET Framework lainnya.

Tutorial ini membutuhkan:

Aplikasi sampel

Untuk menjelajahi aplikasi sampel yang digunakan dalam tutorial ini, unduh dari repositori https://github.com/Azure-Samples/msdocs-app-service-sqldb-dotnetcore atau kloning menggunakan perintah Git berikut:

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

1. Buat App Service, database, dan cache

Dalam langkah ini, Anda membuat sumber daya Azure. Langkah-langkah yang digunakan dalam tutorial ini membuat sekumpulan sumber daya aman secara default yang mencakup App Service, Azure SQL Database, dan Azure Cache. Untuk proses pembuatan, Anda akan menentukan:

  • Nama untuk aplikasi web. Ini adalah nama yang digunakan sebagai bagian dari nama DNS untuk aplikasi web Anda dalam bentuk https://<app-name>.azurewebsites.net.
  • Wilayah tempat menjalankan aplikasi secara fisik di dunia.
  • Tumpukan runtime untuk aplikasi. Di sinilah Anda memilih versi .NET yang akan digunakan untuk aplikasi Anda.
  • Paket hosting untuk aplikasi. Ini adalah tingkat harga yang mencakup serangkaian fitur dan kapasitas penskalaan untuk aplikasi Anda.
  • Resource Group untuk aplikasi. Grup sumber daya memungkinkan Anda mengelompokkan (dalam kontainer logika) semua sumber daya Azure yang diperlukan untuk aplikasi.

Masuk ke portal Microsoft Azure dan ikuti langkah-langkah ini untuk membuat sumber daya Azure App Service Anda.

Langkah 1: Di portal Azure:

  1. Masukkan "database apl web" di bilah pencarian di bagian atas portal Azure.
  2. Pilih item berlabel Apl Web + Database di bawah judul Marketplace. Anda juga dapat menavigasi ke wizard pembuatan secara langsung.

Cuplikan layar yang menunjukkan cara menggunakan kotak pencarian di bilah alat atas untuk menemukan wizard pembuatan Apl Web + Database.

Langkah 2: Di halaman Buat Aplikasi Web + Database , isi formulir sebagai berikut.

  1. Grup Sumber Daya → Pilih Buat baru dan gunakan nama msdocs-core-sql-tutorial.
  2. Wilayah → Wilayah Azure di dekat Anda.
  3. Namamsdocs-core-sql-XYZ di mana XYZ adalah tiga karakter acak. Nama ini harus unik di seluruh Azure.
  4. Tumpukan runtime → .NET 7 (STS).
  5. Menambahkan Azure Cache for Redis? → Ya.
  6. Paket hostingDasar. Setelah siap, Anda dapat melakukan peningkatan ke tingkat harga produksi nanti.
  7. Pilih SQLAzure sebagai mesin database. Azure SQL Database adalah mesin database platform as a service (PaaS) yang dikelola sepenuhnya yang selalu berjalan pada versi stabil terbaru SQL Server.
  8. Pilih Tinjau + buat.
  9. Setelah validasi selesai, pilih Buat.

Cuplikan layar yang menampilkan cara mengonfigurasi apl dan database baru di wizard Apl Web + Database.

Langkah 3: Penyebaran membutuhkan waktu beberapa menit untuk diselesaikan. Setelah penyebaran selesai, pilih tombol Buka sumber daya. Anda diarahkan ke aplikasi App Service, tetapi sumber daya berikut dibuat:

  • Grup sumber daya → Kontainer untuk semua sumber daya yang dibuat.
  • App Service → Menentukan sumber daya komputasi untuk App Service. Paket Linux di tingkat Dasar dibuat.
  • App Service → Mewakili aplikasi Anda dan berjalan dalam paket App Service.
  • Jaringan virtual → Terintegrasi dengan aplikasi App Service dan mengisolasi lalu lintas jaringan back-end.
  • Titik akhir privat → Titik akhir Akses untuk server database dan cache Redis di jaringan virtual.
  • Antarmuka jaringan → Mewakili alamat IP privat, satu untuk setiap titik akhir privat.
  • Server Azure SQL Database → Hanya dapat diakses dari belakang titik akhir privatnya.
  • Azure SQL Database → Database dan pengguna dibuat untuk Anda di server.
  • Azure Cache for Redis → Hanya dapat diakses dari belakang titik akhir privatnya.
  • Zona DNS privat → Mengaktifkan resolusi DNS server database dan cache Redis di jaringan virtual.

Cuplikan layar menunjukkan proses penyebaran selesai.

2. Verifikasi string koneksi

Wizard pembuatan yang dihasilkan string koneksi untuk database SQL dan cache Redis sudah. Dalam langkah ini, temukan string koneksi yang dihasilkan untuk nanti.

Langkah 1: Di halaman App Service, di menu sebelah kiri, pilih Konfigurasi.

Cuplikan layar yang menampilkan cara membuka halaman konfigurasi di App Service.

Langkah 2:

  1. Gulir ke bagian bawah halaman dan temukan AZURE_SQL_CONNECTIONSTRING di bagian string Koneksi ion. String ini dihasilkan dari database SQL baru oleh wizard pembuatan. Untuk menyiapkan aplikasi Anda, nama ini adalah semua yang Anda butuhkan.
  2. Selain itu, temukan AZURE_REDIS_CONNECTIONSTRING di bagian Pengaturan aplikasi. String ini dihasilkan dari cache Redis baru oleh wizard pembuatan. Untuk menyiapkan aplikasi Anda, nama ini adalah semua yang Anda butuhkan.
  3. Jika mau, Anda dapat memilih tombol Edit di sebelah kanan setiap pengaturan dan melihat atau menyalin nilainya. Nantinya, Anda akan mengubah aplikasi untuk digunakan AZURE_SQL_CONNECTIONSTRING dan AZURE_REDIS_CONNECTIONSTRING.

Cuplikan layar menampilkan cara membuat pengaturan aplikasi.

3. Menyebarkan kode sampel

Dalam langkah ini, Anda akan mengonfigurasi penyebaran GitHub menggunakan GitHub Actions. Ini hanya salah satu dari banyak cara untuk menyebarkan ke App Service, tetapi juga cara yang bagus untuk memiliki integrasi berkelanjutan dalam proses penyebaran Anda. Secara default, setiap git push repositori GitHub Anda akan memulai tindakan build dan deploy.

Langkah 1: Di jendela browser baru:

  1. Masuk ke akun GitHub Anda.
  2. Buka https://github.com/Azure-Samples/msdocs-app-service-sqldb-dotnetcore.
  3. Pilih Fork.
  4. Pilih Buat fork.

Cuplikan layar yang menampilkan cara membuat fork repositori GitHub sampel.

Langkah 2: Di halaman App Service, di menu sebelah kiri, pilih Pusat Penyebaran.

Cuplikan layar yang menampilkan cara membuka pusat penyebaran di App Service.

Langkah 3: Di halaman Pusat Penyebaran:

  1. Di Sumber, pilih GitHub. Secara default, GitHub Actions dipilih sebagai penyedia build.
  2. Masuk ke akun GitHub Anda dan ikuti perintah untuk mengotorisasi Azure.
  3. Di Organisasi, pilih akun Anda.
  4. Di Repositori, pilih msdocs-app-service-sqldb-dotnetcore.
  5. Di Cabang, pilih utama.
  6. Di menu atas, pilih Simpan. App Service menerapkan file alur kerja ke dalam repositori GitHub yang dipilih, di direktori .github/workflows.

Cuplikan layar menampilkan cara mengonfigurasi CI/CD menggunakan GitHub Actions.

Langkah 4: Kembalikan halaman GitHub sampel fork, buka Visual Studio Code di browser dengan menekan tombol . .

Cuplikan layar yang menampilkan cara membuka pengalaman browser Visual Studio Code di GitHub.

Langkah 5: Di Visual Studio Code di browser:

  1. Buka DotNetCoreSqlDb/appsettings.json di penjelajah.
  2. Ubah nama MyDbConnection string koneksi menjadi AZURE_SQL_CONNECTIONSTRING, yang cocok dengan string koneksi yang dibuat di App Service sebelumnya.

Cuplikan layar memperlihatkan nama string koneksi diubah dalam appsettings.json.

Langkah 6:

  1. Buka DotNetCoreSqlDb/Program.cs di penjelajah.
  2. Dalam metode , options.UseSqlServer ubah nama MyDbConnection string koneksi menjadi AZURE_SQL_CONNECTIONSTRING. Di sinilah string koneksi digunakan oleh aplikasi sampel.
  3. builder.Services.AddDistributedMemoryCache(); Hapus metode dan ganti dengan kode berikut. Ini mengubah kode Anda dari menggunakan cache dalam memori ke cache Redis di Azure, dan itu melakukannya dengan menggunakan AZURE_REDIS_CONNECTIONSTRING dari sebelumnya.
builder.Services.AddStackExchangeRedisCache(options =>
{
options.Configuration = builder.Configuration["AZURE_REDIS_CONNECTIONSTRING"];
options.InstanceName = "SampleInstance";
});

Cuplikan layar memperlihatkan nama string koneksi diubah di Program.cs.

Langkah 7:

  1. Buka .github/workflows/main_msdocs-core-sql-XYZ di penjelajah. File ini dibuat oleh wizard pembuatan App Service.
  2. Di bawah langkah, dotnet publish tambahkan langkah untuk menginstal alat Entity Framework Core dengan perintah dotnet tool install -g dotnet-ef --version 7.0.14.
  3. Di bawah langkah baru, tambahkan langkah lain untuk menghasilkan bundel migrasi database dalam paket penyebaran: dotnet ef migrations bundle --runtime linux-x64 -p DotNetCoreSqlDb/DotNetCoreSqlDb.csproj -o ${{env.DOTNET_ROOT}}/myapp/migrate. Bundel migrasi adalah executable mandiri yang dapat Anda jalankan di lingkungan produksi tanpa memerlukan .NET SDK. Kontainer linux App Service hanya memiliki runtime .NET dan bukan .NET SDK.

Cuplikan layar memperlihatkan langkah-langkah yang ditambahkan ke file alur kerja GitHub untuk bundel migrasi database.

Langkah 8:

  1. Pilih ekstensi Kontrol Sumber.
  2. Di kotak teks, ketik pesan penerapan seperti Configure DB & Redis & add migration bundle.
  3. Pilih Terapkan dan Dorong.

Cuplikan layar memperlihatkan perubahan yang diterapkan dan didorong ke GitHub.

Langkah 9: Kembali ke halaman Pusat Penyebaran di portal Azure:

  1. Pilih Log. Eksekusi penyebaran baru sudah dimulai dari perubahan yang Anda lakukan.
  2. Di item log untuk eksekusi penyebaran, pilih entri Bangun/Sebarkan Log dengan tanda waktu terbaru.

Cuplikan layar yang menampilkan cara membuka log penyebaran di pusat penyebaran.

Langkah 10: Anda dibawa ke repositori GitHub Anda dan melihat bahwa tindakan GitHub sedang berjalan. File alur kerja menentukan dua tahap terpisah, mem-build dan menyebarkan. Tunggu hingga eksekusi GitHub menampilkan status Selesai. Pembuatan kotak pasir memerlukan waktu selama beberapa menit.

Cuplikan layar menunjukkan eksekusi GitHub.

4. Hasilkan skema database

Dengan SQL Database yang dilindungi oleh jaringan virtual, cara term mudah untuk menjalankan migrasi database dotnet adalah dalam sesi SSH dengan kontainer App Service.

Langkah 1: Kembali ke halaman App Service, di menu sebelah kiri, pilih SSH.

Cuplikan layar yang menampilkan cara membuka shell SSH untuk aplikasi Anda dari portal Azure.

Langkah 2: Di terminal SSH:

  1. Jalankan cd /home/site/wwwroot. Berikut adalah semua file yang Anda sebarkan.
  2. Jalankan bundel migrasi yang dihasilkan oleh alur kerja GitHub dengan ./migrate. Jika berhasil, App Service berhasil tersambung ke SQL Database. Hanya perubahan pada file di /home yang dapat bertahan di luar mulai ulang aplikasi. Perubahan di luar /home tidak dipertahankan.

Cuplikan layar yang menampilkan perintah untuk menjalankan shell SSH dan keluarannya.

5. Telusuri aplikasi

Langkah 1: Di halaman App Service:

  1. Dari menu kiri, pilih Ringkasan.
  2. Pilih URL aplikasi Anda. Anda juga dapat menavigasi langsung ke https://<app-name>.azurewebsites.net.

Cuplikan layar yang menampilkan cara meluncurkan App Service dari portal Azure.

Langkah 2: Tambahkan beberapa tugas ke daftar. Selamat, Anda menjalankan aplikasi ASP.NET Core berbasis data yang aman di Azure App Service.

Cuplikan layar aplikasi .NET Core yang berjalan di App Service.

Tip

Aplikasi sampel mengimplementasikan pola cache-aside . Saat Anda mengunjungi tampilan data untuk kedua kalinya, atau memuat ulang halaman yang sama setelah membuat perubahan data, Waktu pemrosesan di halaman web menunjukkan waktu yang jauh lebih cepat karena memuat data dari cache alih-alih database.

6. Mengalirkan log diagnostik

Azure App Service menangkap semua pesan yang masuk ke konsol untuk membantu Anda mendiagnosis masalah dengan aplikasi Anda. Aplikasi sampel mengeluarkan pesan log konsol dalam setiap titik akhirnya untuk menunjukkan kemampuan ini.

Langkah 1: Di halaman App Service:

  1. Dari menu kiri, pilih Log App Service.
  2. Di Pengelogan aplikasi, pilih Sistem File.

Cuplikan layar yang menampilkan cara mengaktifkan log asli di App Service di portal Azure.

Langkah 2: Dari menu sebelah kiri, pilih Aliran log. Anda melihat log untuk aplikasi Anda, termasuk log platform dan log dari dalam kontainer.

Cuplikan layar yang menampilkan cara melihat aliran log di porta Azure.

7. Membersihkan sumber daya

Setelah selesai, Anda dapat menghapus semua sumber daya dari langganan Azure dengan menghapus grup sumber daya.

Langkah 1: Di bilah pencarian di bagian atas portal Azure:

  1. Masukkan nama grup sumber daya.
  2. Pilih grup sumber daya.

Cuplikan layar yang menunjukkan cara mencari dan menavigasi ke grup sumber daya di portal Azure.

Langkah 2: Di halaman grup sumber daya, pilih Hapus grup sumber daya.

Cuplikan layar yang menunjukkan letak tombol Hapus Grup Sumber Daya di portal Azure.

Langkah 3:

  1. Masukkan nama grup sumber daya untuk mengonfirmasi penghapusan Anda.
  2. Pilih Hapus.

Cuplikan layar dialog konfirmasi untuk menghapus grup sumber daya di portal Azure. :

Tanya jawab umum

Berapa biaya untuk penyiapan ini?

Harga untuk buat sumber daya adalah sebagai berikut:

  • Paket App Service dibuat di tingkat Dasar dan dapat ditingkatkan atau diturunkan. Lihat Harga App Service.
  • Azure SQL Database dibuat dalam tingkat tujuan umum tanpa server pada perangkat keras seri Standar dengan inti minimum. Ada biaya kecil dan dapat didistribusikan ke wilayah lain. Anda dapat meminimalkan biaya lebih banyak lagi dengan mengurangi ukuran maksimumnya, atau Anda dapat meningkatkannya dengan menyesuaikan tingkat penyajian, tingkat komputasi, konfigurasi perangkat keras, jumlah inti, ukuran database, dan redundansi zona. Lihat Harga Azure SQL Database.
  • Azure Cache for Redis dibuat di tingkat Dasar dengan ukuran cache minimum. Ada biaya kecil yang terkait dengan tingkat ini. Anda dapat meningkatkannya ke tingkat performa yang lebih tinggi untuk ketersediaan, pengklusteran, dan fitur lainnya yang lebih tinggi. Lihat Harga Azure Cache for Redis.
  • Jaringan virtual tidak dikenakan biaya kecuali Anda mengonfigurasi fungsionalitas tambahan, seperti peering. Lihat Harga Azure Virtual Network.
  • Zona DNS privat dikenakan biaya kecil. Lihat Harga Azure DNS.

Bagaimana cara menyambungkan ke server Azure SQL Database yang diamankan di belakang jaringan virtual dengan alat lain?

  • Untuk akses dasar dari alat baris perintah, Anda dapat menjalankan sqlcmd dari terminal SSH aplikasi. Kontainer aplikasi tidak disertakan dengan sqlcmd, jadi Anda harus menginstalnya secara manual. Ingat bahwa klien yang diinstal tidak bertahan di seluruh mulai ulang aplikasi.
  • Untuk terhubung dari klien SQL Server Management Studio atau dari Visual Studio, komputer Anda harus berada dalam jaringan virtual. Misalnya, itu bisa berupa Azure VM yang terhubung ke salah satu subnet, atau komputer di jaringan lokal yang memiliki koneksi VPN situs-ke-situs dengan jaringan virtual Azure.

Bagaimana cara kerja pengembangan aplikasi lokal dengan GitHub Actions?

Ambil file alur kerja yang dibuat secara otomatis dari App Service sebagai contoh, masing-masing git push memulai eksekusi build dan penyebaran baru. Dari klon lokal repositori GitHub, Anda membuat pembaruan yang diinginkan mendorongnya ke GitHub. Contohnya:

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

Bagaimana cara men-debug kesalahan selama penyebaran GitHub Actions?

Jika langkah gagal dalam file alur kerja GitHub yang dibuat secara otomatis, coba ubah perintah yang gagal untuk menghasilkan lebih banyak output verbose. Misalnya, Anda bisa mendapatkan lebih banyak output dari salah dotnet satu perintah dengan menambahkan -v opsi . Terapkan dan dorong perubahan Anda untuk memicu penyebaran lain ke App Service.

Langkah berikutnya

Lanjutkan ke tutorial berikutnya untuk mempelajari cara mengamankan aplikasi Anda dengan domain dan sertifikat kustom.

Atau, lihat sumber daya lainnya: