Kloning Aplikasi Azure App Service Menggunakan PowerShell

Catatan

Kami menyarankan agar Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Dengan rilis Microsoft Azure PowerShell versi 1.1.0, opsi baru telah ditambahkan ke New-AzWebApp yang memungkinkan Anda mengkloning aplikasi App Service yang sudah ada ke aplikasi yang baru dibuat di wilayah sama atau berbeda. Opsi ini memungkinkan pelanggan untuk menyebarkan sejumlah aplikasi di berbagai wilayah dengan cepat dan mudah.

Kloning aplikasi didukung untuk paket layanan aplikasi Standar, Premium, Premium V2, dan Terisolasi. Fitur baru ini menggunakan batasan yang sama dengan fitur Pencadangan App Service, lihat Mencadangkan aplikasi di Azure App Service.

Mengkloning aplikasi yang sudah ada

Skenario: Aplikasi yang sudah ada berada di wilayah AS Tengah Selatan, dan Anda ingin mengkloning konten ke aplikasi baru di wilayah AS Tengah Utara. Ini dapat dicapai dengan menggunakan cmdlet PowerShell versi Azure Resource Manager untuk membuat aplikasi baru dengan opsi -SourceWebApp.

JIka mengetahui nama grup sumber daya yang berisi aplikasi sumber, Anda dapat menggunakan perintah PowerShell berikut untuk mendapatkan informasi aplikasi sumber (dalam hal ini bernama source-webapp):

$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp

Untuk membuat Paket App Service baru, Anda bisa menggunakan perintah New-AzAppServicePlan seperti dalam contoh berikut

New-AzAppServicePlan -Location "North Central US" -ResourceGroupName DestinationAzureResourceGroup -Name DestinationAppServicePlan -Tier Standard

Dengan menggunakan perintah New-AzWebApp, Anda dapat membuat aplikasi baru di wilayah AS Tengah Utara, dan mengikatnya ke Paket App Service yang sudah ada. Selain itu, Anda dapat menggunakan grup sumber daya yang sama dengan aplikasi sumber, atau menentukan grup sumber daya baru, seperti yang ditunjukkan dalam perintah berikut:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp

Untuk mengkloning aplikasi yang ada termasuk semua slot penyebaran terkait, Anda harus menggunakan parameter IncludeSourceWebAppSlots. Perhatikan bahwa parameter IncludeSourceWebAppSlots hanya didukung untuk mengkloning seluruh aplikasi termasuk semua slotnya. Perintah PowerShell berikut ini menunjukkan penggunaan parameter tersebut dengan perintah New-AzWebApp:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -IncludeSourceWebAppSlots

Untuk mengkloning aplikasi yang sudah ada di wilayah yang sama, Anda perlu membuat grup sumber daya baru dan paket layanan aplikasi baru di wilayah yang sama, lalu menggunakan perintah PowerShell berikut untuk mengkloning aplikasi:

$destapp = New-AzWebApp -ResourceGroupName NewAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan NewAppServicePlan -SourceWebApp $srcapp

Mengkloning Aplikasi yang sudah ada ke Lingkungan App Service

Skenario: Aplikasi yang sudah ada berada di wilayah AS Tengah Selatan, dan Anda ingin mengkloning konten ke aplikasi baru ke Lingkungan Layanan Aplikasi (ASE) yang sudah ada.

JIka mengetahui nama grup sumber daya yang berisi aplikasi sumber, Anda dapat menggunakan perintah PowerShell berikut untuk mendapatkan informasi aplikasi sumber (dalam hal ini bernama source-webapp):

$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp

Jika mengetahui nama ASE, dan nama grup sumber daya tempat ASE berada, Anda dapat membuat aplikasi baru di ASE yang ada, seperti yang ditunjukkan dalam perintah berikut:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -ASEName DestinationASE -ASEResourceGroupName DestinationASEResourceGroupName -SourceWebApp $srcapp

Parameter Location diperlukan karena alasan warisan, tetapi diabaikan ketika Anda membuat aplikasi di ASE.

Mengkloning Slot Aplikasi yang sudah ada

Skenario: Anda ingin mengkloning slot penyebaran aplikasi yang ada ke aplikasi baru atau slot baru. Aplikasi baru dapat berada di wilayah yang sama atau berbeda dengan slot aplikasi asli.

JIka mengetahui nama grup sumber daya yang berisi aplikasi sumber, Anda dapat menggunakan perintah PowerShell berikut untuk mendapatkan informasi aplikasi sumber (dalam hal ini bernama source-appslot) terkait dengan source-app:

$srcappslot = Get-AzWebAppSlot -ResourceGroupName SourceAzureResourceGroup -Name source-app -Slot source-appslot

Perintah berikut menunjukkan pembuatan kloning aplikasi sumber ke aplikasi baru:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-app -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcappslot

Mengonfigurasi Traffic Manager saat mengkloning aplikasi

Membuat aplikasi multiwilayah dan mengonfigurasi Azure Traffic Manager untuk mengarahkan lalu lintas ke semua aplikasi ini, merupakan skenario penting untuk memastikan bahwa aplikasi pelanggan sangat tersedia. Saat mengkloning aplikasi yang sudah ada, Anda memiliki opsi untuk menyambungkan kedua aplikasi ke profil pengelola lalu lintas baru atau yang sudah ada. Hanya Traffic Manager versi Azure Resource Manager yang didukung.

Membuat profil Traffic Manager baru saat mengkloning aplikasi

Skenario: Anda ingin mengkloning aplikasi ke wilayah lain, sambil mengonfigurasi profil pengelola lalu lintas Azure Resource Manager yang menyertakan kedua aplikasi. Perintah berikut menunjukkan pembuatan kloning aplikasi sumber ke aplikasi baru saat mengonfigurasi profil Traffic Manager baru:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileName newTrafficManagerProfile

Menambahkan aplikasi kloning baru ke profil Traffic Manager yang sudah ada

Skenario: Anda sudah memiliki profil manajer lalu lintas Azure Resource Manager dan ingin menambahkan kedua aplikasi sebagai titik akhir. Untuk melakukannya, pertama-tama Anda perlu merakit ID profil manajer lalu lintas yang ada. Anda memerlukan ID langganan, nama grup sumber daya, dan nama profil manajer lalu lintas yang ada.

$TMProfileID = "/subscriptions/<Your subscription ID goes here>/resourceGroups/<Your resource group name goes here>/providers/Microsoft.TrafficManagerProfiles/ExistingTrafficManagerProfileName"

Setelah memiliki ID manajer lalu lintas, perintah berikut menunjukkan pembuatan kloning aplikasi sumber ke aplikasi baru sambil menambahkannya ke profil Traffic Manager yang ada:

$destapp = New-AzWebApp -ResourceGroupName <Resource group name> -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileId $TMProfileID

Catatan

Jika Anda menerima kesalahan yang menyatakan, "Validasi SSL pada nama host manajer lalu lintas gagal" maka kami sarankan Anda menggunakan atribut -IgnoreCustomHostNames di cmdlet powershell saat melakukan operasi kloning atau menggunakan portal.

Pembatasan Saat Ini

Berikut adalah batasan kloning aplikasi yang diketahui:

  • Pengaturan skala otomatis tidak dikloning
  • Pengaturan jadwal pencadangan tidak dikloning
  • Pengaturan VNET tidak dikloning
  • App Insights tidak disiapkan secara otomatis di aplikasi tujuan
  • Pengaturan Easy Auth tidak dikloning
  • Kudu Extension tidak dikloning
  • Aturan TiP tidak dikloning
  • Konten database tidak dikloning
  • Alamat IP keluar berubah jika mengkloning ke unit skala yang berbeda
  • Tidak tersedia untuk Aplikasi Linux
  • Identitas Terkelola tidak dikloning
  • Tidak tersedia untuk Aplikasi Fungsi

Referensi