Penyebaran berkelanjutan ke Azure App Service

Azure App Service memungkinkan penyebaran berkelanjutan dari repositori GitHub, BitBucket, dan Azure Repos dengan menarik pembaruan terbaru.

Siapkan repositori Anda

Untuk mendapatkan build otomatis dari server build Azure App Service, pastikan akar repositori Anda memiliki file yang benar di proyek Anda.

Runtime File direktori akar
ASP.NET (khusus Windows) *.sln, *.csproj, atau default.aspx
Inti ASP.NET *.sln atau *.csproj
PHP index.php
Ruby (khusus Linux) Gemfile
Node.js server.js, , app.jsatau package.json dengan skrip mulai
Python *.py, requirements.txt, atau runtime.txt
HTML default.htm, default.html, default.asp, index.htm, index.html, atau iisstart.htm
WebJobs <job_name>/run.<extension> di bawah App_Data/jobs/continuous untuk WebJobs berkelanjutan, atau App_Data/jobs/triggered untuk WebJobs yang dipicu. Untuk informasi selengkapnya, lihat Dokumentasi Kudu WebJobs.
Fungsi Lihat Penyebaran berkelanjutan untuk Azure Functions.

Untuk menyesuaikan penyebaran Anda, sertakan file .penyebaran di akar repositori. Untuk informasi selengkapnya, lihat Mengkustomisasi penyebaran dan Skrip penyebaran kustom.

Catatan

Jika Anda menggunakan Visual Studio, biarkan Visual Studio membuat repositori untuk Anda. Proyek Anda akan segera siap untuk disebarkan melalui Git.

Mengonfigurasi sumber penyebaran

  1. Di portal Microsoft Azure, buka halaman manajemen untuk aplikasi App Service Anda.

  2. Di kiri panel, pilih Pusat Penyebaran. Lalu pilih Pengaturan.

  3. Di kotak Sumber, pilih salah satu opsi dari CI/CD:

    Cuplikan layar yang memperlihatkan cara memilih sumber penyebaran.

Pilih tab yang sesuai dengan penyedia build Anda untuk melanjutkan.

  1. GitHub Actions adalah penyedia build default. Untuk mengubah penyedia, pilih Ubah penyedia>App Service Build Service>OK.

  2. Jika Anda menyebarkan dari GitHub untuk pertama kalinya, pilih Otorisasi dan ikuti permintaan otoritasi. Jika Anda ingin menyebar dari repositori pengguna yang berbeda, pilih Ubah Akun.

  3. Setelah Anda mengotorisasi akun Azure Anda dengan GitHub, pilih Organisasi, Repositori, dan Cabang yang Anda inginkan.

    Jika Anda tidak dapat menemukan organisasi atau repositori, Anda mungkin perlu mengaktifkan lebih banyak izin pada GitHub. Untuk informasi selengkapnya, lihat Mengelola akses ke repositori organisasi Anda.

  4. Di bawah Jenis autentikasi, pilih Identitas yang ditetapkan pengguna untuk keamanan yang lebih baik. Untuk informasi selengkapnya, lihat tanya jawab umum.

    Catatan

    Jika akun Azure Anda memiliki izin yang diperlukan untuk opsi Identitas yang ditetapkan pengguna, Azure membuat identitas terkelola yang ditetapkan pengguna untuk Anda. Jika tidak, bekerja samalah dengan administrator Azure Anda untuk membuat identitas dengan peran yang diperlukan di aplikasi Anda, lalu pilih di sini di menu dropdown.

  5. (Opsional) Untuk melihat file sebelum menyimpan perubahan Anda, pilih File pratinjau. App Service memilih templat alur kerja berdasarkan pengaturan tumpukan bahasa aplikasi Anda dan menerapkannya ke dalam repositori GitHub yang Anda pilih.

  6. Pilih Simpan.

    Komitmen baru di repositori dan cabang yang dipilih sekarang diterapkan terus menerus ke aplikasi App Service Anda. Anda dapat melacak penerapan dan penyebaran pada tab Log.

Nonaktifkan penyebaran berkelanjutan

  1. Di portal Microsoft Azure, buka halaman manajemen untuk aplikasi App Service Anda.

  2. Di kiri panel, pilih Pusat Penyebaran. Lalu pilih Pengaturan>Memutuskan Sambungan:

    Cuplikan layar menunjukkan cara memutuskan sinkronisasi folder cloud Anda dengan aplikasi App Service Anda di portal Microsoft Azure.

  3. Secara default, file alur kerja GitHub Actions dipertahankan di repositori Anda, tetapi terus memicu penyebaran ke aplikasi Anda. Untuk menghapusnya dari repositori Anda, pilih Hapus file alur kerja.

  4. Pilih OK.

Apa saja penyedia build?

Bergantung pada sumber penyebaran Anda di Pusat Penyebaran, Anda mungkin melihat beberapa opsi untuk dipilih untuk penyedia build. Penyedia build membantu Anda membangun solusi CI/CD dengan Azure App Service dengan mengotomatiskan build, pengujian, dan penyebaran.

Anda tidak terbatas pada opsi penyedia build yang ditemukan di Pusat Penyebaran, tetapi App Service memungkinkan Anda menyiapkannya dengan cepat dan menawarkan beberapa pengalaman pengelogan penyebaran terintegrasi.

Penyedia build GitHub Actions hanya tersedia untuk penyebaran GitHub. Saat dikonfigurasi dari Pusat Penyebaran aplikasi, aplikasi menyelesaikan tindakan ini untuk menyiapkan CI/CD:

  • Simpan file alur kerja Tindakan GitHub ke dalam repositori GitHub Anda untuk menangani tugas membangun dan menyebarkan ke App Service.
  • Untuk autentikasi dasar, menambahkan profil publikasi untuk aplikasi Anda sebagai rahasia GitHub. File alur kerja menggunakan rahasia ini untuk mengautentikasi dengan App Service.
  • Untuk identitas yang ditetapkan pengguna, lihat Apa yang dilakukan opsi identitas yang ditetapkan pengguna untuk Tindakan GitHub?
  • Mengambil informasi dari log eksekusi alur kerja dan menampilkannya pada tab Log di Pusat Penyebaran.

Anda dapat menyesuaikan penyedia built GitHub dengan cara berikut:

  • Kustomisasi file alur kerja setelah dibuat di repositori GitHub Anda. Untuk informasi selengkapnya, lihat Sintaks alur kerja untuk Tindakan GitHub. Pastikan alur kerja diterapkan ke App Service dengan tindakan azure/webapps-deploy.
  • Jika cabang yang dipilih dilindungi, Anda masih dapat melihat pratinjau file alur kerja tanpa menyimpan konfigurasi, lalu menambahkannya secara manual ke dalam repositori Anda. Metode ini tidak memberi Anda integrasi log dengan portal Microsoft Azure.
  • Alih-alih menggunakan autentikasi dasar atau identitas yang ditetapkan pengguna, Anda juga dapat menyebarkan dengan menggunakan perwakilan layanan di ID Microsoft Entra. Ini tidak dapat dikonfigurasi di portal.

Apa yang terjadi pada aplikasi saya selama penyebaran?

Semua metode penyebaran yang didukung secara resmi membuat perubahan pada file di folder /home/site/wwwroot aplikasi Anda. File ini digunakan untuk menjalankan aplikasi Anda. Jadi penyebaran dapat gagal karena file terkunci. Aplikasi mungkin juga berperilaku tidak terduga selama penyebaran karena semua file tidak diperbarui secara bersamaan. Perilaku ini tidak diinginkan untuk aplikasi yang digunakan pelanggan. Ada beberapa cara untuk menghindari masalah ini:

Tanya jawab umum

Apakah penyedia build GitHub Actions berfungsi dengan autentikasi dasar jika autentikasi dasar dinonaktifkan?

Tidak. Coba gunakan GitHub Actions dengan opsi identitas yang ditetapkan pengguna.

Untuk informasi selengkapnya, lihat Penyebaran tanpa autentikasi dasar.

Apa yang dilakukan opsi identitas yang ditetapkan pengguna untuk GitHub Actions?

Saat Anda memilih identitas yang ditetapkan pengguna di bawah sumber GitHub Actions, App Service mengonfigurasi semua sumber daya yang diperlukan di Azure dan di GitHub untuk mengaktifkan autentikasi Koneksi OpenID yang direkomendasikan dengan GitHub Actions.

Secara khusus, App Service melakukan operasi berikut:

  • Membuat kredensial federasi antara identitas terkelola yang ditetapkan pengguna di Azure dan repositori dan cabang yang Anda pilih di GitHub.
  • Membuat rahasia AZURE_CLIENT_ID, AZURE_TENANT_ID, dan AZURE_SUBSCRIPTION_ID dari kredensial federasi di repositori GitHub yang Anda pilih.
  • Menetapkan identitas ke aplikasi Anda.

Dalam alur kerja GitHub Actions di repositori GitHub, Anda kemudian dapat menggunakan tindakan Azure/login untuk mengautentikasi dengan aplikasi Anda dengan menggunakan OpenID Koneksi. Misalnya, lihat Menambahkan file alur kerja ke repositori GitHub Anda.

Jika akun Azure Anda memiliki izin yang diperlukan, App Service membuat identitas terkelola yang ditetapkan pengguna dan mengonfigurasinya untuk Anda. Identitas ini tidak ditampilkan di halaman Identitas aplikasi Anda. Jika akun Azure Anda tidak memiliki izin yang diperlukan, Anda harus memilih identitas yang ada dengan peran yang diperlukan.

Mengapa saya melihat kesalahan, "Anda tidak memiliki izin yang memadai pada aplikasi ini untuk menetapkan akses berbasis peran ke identitas terkelola dan mengonfigurasi kredensial federasi"?

Pesan menunjukkan bahwa akun Azure Anda tidak memiliki izin yang diperlukan untuk membuat identitas terkelola yang ditetapkan pengguna untuk GitHub Actions. Izin yang diperlukan (terlingkup ke aplikasi Anda) adalah:

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.ManagedIdentity/userAssignedIdentities/write

Secara default, peran Administrator Akses Pengguna dan peran Pemilik sudah memiliki izin ini, tetapi peran Kontributortidak. Jika Anda tidak memiliki izin yang diperlukan, bekerja samalah dengan administrator Azure Anda untuk membuat identitas terkelola yang ditetapkan pengguna dengan peran Kontributor Situs Web. Di Pusat Penyebaran, Anda kemudian dapat memilih identitas di menu dropdown Identitas GitHub>.

Untuk informasi selengkapnya tentang langkah-langkah alternatif, lihat Menyebarkan ke App Service menggunakan GitHub Actions.

Mengapa saya melihat kesalahan, "Identitas ini tidak memiliki izin tulis di aplikasi ini. Silakan pilih identitas yang berbeda, atau bekerja dengan admin Anda untuk memberikan peran Kontributor Situs Web ke identitas Anda di aplikasi ini"?

Pesan menunjukkan bahwa identitas terkelola yang ditetapkan pengguna yang dipilih tidak memiliki peran yang diperlukan untuk mengaktifkan Koneksi OpenID antara repositori GitHub dan aplikasi App Service. Identitas harus memiliki salah satu peran berikut di aplikasi: Pemilik, Kontributor, Kontributor Situs Web. Peran paling tidak istimewa yang dibutuhkan identitas adalah Kontributor Situs Web.

Sumber daya lainnya