Cara Menggunakan Slot Deployment dengan Azure Functions
Cara Kerja Slot Deployment
Slot Deployment adalah fitur hebat yang memungkinkan pengiriman ke produksi tanpa waktu henti atau kehilangan pesan. Akhirnya, slot tersedia secara umum untuk Azure Functions. Berikut penjelasan cara kerjanya, perbedaannya dengan paket App Service klasik, dan beberapa skenario penggunaan.
Apa yang Terjadi Saat Menukar Slot Staging dan Produksi?
- Pengaturan khusus slot berpindah dari Produksi ke Staging.
- Instance aplikasi Staging diinisialisasi ulang dengan parameter baru.
- Sejumlah server Staging yang sama dimulai untuk slot Produksi.
- Pemeriksaan kesehatan otomatis dilakukan.
- Keajaiban DNS Azure, rute dipertukarkan untuk kedua kontainer.
Contoh untuk aplikasi API Serverless: Saat Anda menyebarkan versi baru aplikasi ke slot Staging dan instance yang sudah dihangatkan dengan permintaan, sejumlah server idle yang sama akan dibuat di slot Produksi.
Jika tidak ada VM yang hangat di slot Staging, tidak ada server ekstra yang digunakan di Produksi.
Ini tampak jelas dan logis, tetapi Anda harus memantau batas atas skala Produksi. Untuk paket Consumption, batas atas adalah 200 VM, dan untuk Premium adalah 20. Batas ini adalah alasan mengapa hanya ada satu opsi slot deployment, yang membatasi skenario penggunaan hanya satu (UAT atau Pengujian) pada satu waktu.
Bagaimana Perbedaannya?
Pembatasan utama adalah slot tunggal dan tidak adanya fitur “Traffic Redirect”. Fitur sebelumnya berguna untuk skenario “pengujian di produksi”, yang memungkinkan kita mengarahkan persentase lalu lintas produksi yang masuk ke slot deployment yang dipilih.
Slot tunggal membatasi skenario penggunaan yang tersedia. Anda dapat memilih skenario apa pun yang diinginkan, seperti “Pengujian di Produksi”, “Pengujian Beban”, “Pemeliharaan”, atau “UAT”. Paket App Service non-serverless menyediakan lebih dari empat slot.
Slot tidak tersedia untuk paket Consumption Linux. © Dokumentasi Microsoft
Pengaturan Slot Individual dan Bersama
Pengaturan aplikasi apa pun di bagian Konfigurasi App dapat dibuat terikat ke slot. Opsi tanpa kotak centang yang dipilih sama untuk kedua slot.
Semua pengaturan jaringan yang ditetapkan ke slot deployment tertentu akan dipertukarkan:
- Jaringan dengan penugasan CDN dan pembatasan akses IP.
- Sertifikat publik.
- Fungsi domain kustom dan pengaturan yang berorientasi HTTPS.
- Pengaturan Autentikasi/Otorisasi untuk akses App Service.
- Identitas Terkelola untuk mengakses rahasia KeyVault.
- Konfigurasi notifikasi push (jika menggunakan Event hub).
Perlu diingat bahwa slot Deployment berbagi sertifikat x509 pribadi yang diunggah, dan perlu menggunakan variabel slot dengan nilai thumbprint sertifikat. Jika tidak, sertifikat tidak akan tersedia untuk penggunaan dalam aplikasi.
WEBSITE_LOAD_CERTIFICATES : Cert thumbprint
Nama domain kustom dengan pengaturan HTTPS/TSL, pengaturan skala, CORS, pembatasan IP, dan titik akhir publikasi tidak dipertukarkan.
Cara Menyebarkan dan Menggunakannya
Cukup sederhana, cara yang lebih disukai adalah membuat aplikasi Function dengan slot deployment melalui Azure CLI dan kemudian menggunakan pipeline Azure DevOps untuk pengiriman berkelanjutan.
- Buat slot staging melalui Azure CLI atau Portal.
- Buat identitas terkelola dan hubungkan ke Azure KeyVault (jika diperlukan).
- Batasi konektivitas slot eksternal ke jaringan dev dan CD dengan aturan IP.
- Konfigurasikan integrasi berkelanjutan dengan Azure DevOps.
- Hangatkan fungsi slot Staging secara manual atau dengan contoh ini.
- Tambahkan operasi penukaran otomatis atau jalankan secara manual (lihat catatan di bawah).
- Periksa kembali aturan pembatasan IP Anda.
Berikut adalah kode Azure CLI:
az functionapp deployment slot create --resource-group $functionsGroupName --name $functionAppName --slot staging
az functionapp deployment slot swap --resource-group $functionsGroupName --name $functionAppName --slot staging --target-slot production
az functionapp identity assign -g MyResourceGroup -n TestFunctionapp
managedIdKey=$(az functionapp identity show --name TestFunctionapp --resource-group MyResourceGroup --query identitypalId --o tsv)
echo "Managed key = " $managedIdKey
az keyvault set-policy --name YourVault --object-id $managedIdKey --certificate-permissions get list --key-permissions get list --secret-permissions get list
Catatan: Penukaran otomatis tidak didukung di aplikasi web di Linux. Saya lebih suka operasi penukaran kustom untuk menghindari masalah, tetapi Anda dapat menggunakan dokumentasi resmi untuk otomatisasi.
Cara Menggunakannya melalui Azure Portal
Harap perhatikan, jika Anda membuat Identitas Terkelola untuk slot deployment dan mencoba menambahkannya ke KeyVault melalui Portal, Anda dapat menemukannya dengan nama di bawah ini:
YourAppName/slots/StagingSlotName
Buka aplikasi melalui Azure Portal dan pilih Slot. Pilih + dan tambahkan nama.
Batasi akses publik ke slot Staging.
Buat integrasi dengan layanan yang diinginkan.
Lakukan operasi penukaran melalui portal.
Platform Lainnya
Berita Piala Dunia
Jika Anda memiliki pertanyaan, silakan kirim email ke [email protected]