Bagikan melalui


Meningkatkan load balancer dasar dengan PowerShell

Penting

Pada 30 September 2025, Load Balancer Dasar akan dihentikan. Untuk informasi selengkapnya, lihat pengumuman resmi. Jika saat ini Anda menggunakan Load Balancer Dasar, pastikan untuk meningkatkan ke Load Balancer Standar sebelum tanggal penghentian.

Azure Standard Load Balancer menawarkan set fungsionalitas yang kaya dan ketersediaan tinggi melalui redundansi zona. Untuk mempelajari selengkapnya tentang Load Balancer SKU, lihat tabel perbandingan.

Artikel ini memperkenalkan modul PowerShell yang membuat Load Balancer Standar dengan konfigurasi yang sama dengan Load Balancer Dasar, lalu mengaitkan Set Skala Komputer Virtual atau anggota kumpulan backend Komputer Virtual dengan Load Balancer baru.

Untuk panduan mendalam tentang modul dan proses peningkatan, lihat video berikut:

Gambaran Umum Peningkatan

Modul PowerShell melakukan fungsi berikut:

  • Memverifikasi bahwa skenario Load Balancer Dasar yang disediakan didukung untuk peningkatan.
  • Mencadangkan konfigurasi Load Balancer Dasar dan Virtual Machine Scale Set, memungkinkan coba lagi pada kegagalan atau jika terjadi kesalahan.
  • Untuk penyeimbang beban publik, perbarui alamat IP publik ujung depan ke SKU Standar dan penugasan statis
  • Meningkatkan konfigurasi Load Balancer Dasar ke Load Balancer Standar baru, memastikan konfigurasi dan paritas fitur.
  • Memigrasikan Set Skala Komputer Virtual dan anggota kumpulan backend Komputer Virtual dari Load Balancer Dasar ke Load Balancer Standar.
  • Membuat dan mengaitkan grup keamanan jaringan dengan Virtual Machine Scale Set atau Virtual Machine untuk memastikan lalu lintas seimbang beban mencapai anggota kumpulan backend, setelah perpindahan Load Balancer Standar ke kebijakan jaringan penolakan default.
  • Meningkatkan alamat IP Publik tingkat instans yang terkait dengan Virtual Machine Scale Set atau instans Komputer Virtual
  • Meningkatkan Kumpulan NAT Masuk ke Aturan NAT Masuk untuk backend Set Skala Komputer Virtual, membuat kumpulan backend baru untuk setiap Kumpulan NAT yang dimigrasikan. Tentukan -skipUpgradeNATPoolsToNATRules untuk melewati peningkatan ini dan gunakan modul migrasi KUMPULAN NAT mandiri nanti untuk opsi kumpulan backend lainnya.
  • Mencatat operasi peningkatan untuk pemulihan audit dan kegagalan yang mudah.

Peringatan

Memigrasikan Load Balancer Dasar internal di mana VM backend atau instans VMSS tidak memiliki Alamat IP Publik memerlukan langkah tambahan untuk konektivitas backend ke internet. Tinjau Bagaimana cara mengonfigurasi lalu lintas keluar untuk Load Balancer saya?

Catatan

Jika Set Skala Komputer Virtual di kumpulan backend Load Balancer memiliki Alamat IP Publik dalam konfigurasi jaringannya, Alamat IP Publik yang terkait dengan setiap instans Set Skala Komputer Virtual akan berubah saat ditingkatkan ke SKU Standar. Ini karena alamat IP Publik tingkat instans set skala tidak dapat ditingkatkan, hanya diganti dengan IP Publik SKU Standar baru. Semua alamat IP Publik lainnya akan dipertahankan melalui migrasi.

Catatan

Jika Set Skala Komputer Virtual di belakang Load Balancer adalah Kluster Service Fabric, migrasi dengan skrip ini akan membutuhkan lebih banyak waktu, berisiko lebih tinggi bagi aplikasi Anda, dan akan menyebabkan waktu henti. Tinjau panduan peningkatan Service Fabric Cluster Load Balancer untuk opsi migrasi.

Skenario Yang Tidak Didukung

  • Load Balancer Dasar dengan konfigurasi IP frontend IPv6
  • Load Balancer Dasar untuk kluster Azure Kubernetes Services (AKS)
  • Load Balancer Dasar dengan anggota kumpulan backend Set Skala Komputer Virtual di mana satu atau beberapa instans Set Skala Komputer Virtual mengaktifkan kebijakan Perlindungan Instans ProtectFromScaleSetActions
  • Memigrasikan Load Balancer Dasar ke Load Balancer Standar yang ada

Instal modul 'AzureBasicLoadBalancerUpgrade'

Prasyarat

  • PowerShell: Versi PowerShell versi 7 atau yang lebih tinggi yang didukung direkomendasikan untuk digunakan dengan modul AzureBasicLoadBalancerUpgrade di semua platform termasuk Windows, Linux, dan macOS. Namun, PowerShell 5.1 pada Windows didukung.

Penginstalan Modul

Menginstal modul dari Galeri PowerShell

Install-Module -Name AzureBasicLoadBalancerUpgrade -Scope CurrentUser -Repository PSGallery -Force

Langkah-Langkah Pra-dan Pascamigrasi

Tahap pra-migrasi

  • Validasi bahwa skenario Anda didukung
  • Merencanakan waktu henti aplikasi selama migrasi
  • Mengembangkan pengujian konektivitas masuk dan keluar untuk lalu lintas Anda
  • Merencanakan perubahan IP Publik tingkat instans pada instans Virtual Machine Scale Set (lihat catatan)
  • [Disarankan] Buat Grup Keamanan Jaringan atau tambahkan aturan keamanan ke Grup Keamanan Jaringan yang ada untuk anggota kumpulan backend Anda. Izinkan lalu lintas melalui Load Balancer dan lalu lintas lain yang harus diizinkan secara eksplisit pada sumber daya SKU Standar publik
  • [Disarankan] Siapkan konektivitas keluar Anda, dengan mengambil salah satu pendekatan berikut yang dijelaskan dalam Bagaimana cara mengonfigurasi lalu lintas keluar untuk Load Balancer saya?

Langkah setelah migrasi

  • Validasi bahwa migrasi Anda berhasil
  • Menguji konektivitas aplikasi masuk melalui Load Balancer
  • Menguji konektivitas keluar dari anggota kumpulan backend ke Internet
  • Untuk Load Balancer Publik dengan beberapa kumpulan backend, buat Aturan Keluar untuk setiap kumpulan backend

Menggunakan modul

  1. Pastikan Anda telah memilih ID langganan Load Balancer Dasar dengan menjalankan Select-AzSubscription.

    Select-AzSubscription -Subscription <SubscriptionId>
    
  2. Temukan Load Balancer yang ingin Anda tingkatkan. Catat nama dan nama grup sumber dayanya.

  3. Periksa parameter modul dasar:

    • BasicLoadBalancerName [string] Required - Parameter ini adalah nama Load Balancer Dasar yang ada yang ingin Anda tingkatkan
    • ResourceGroupName [string] Required - Parameter ini adalah nama grup sumber daya yang berisi Load Balancer Dasar
    • StandardLoadBalancerName [string] Opsional - Gunakan parameter ini untuk mengonfigurasi nama baru secara opsional untuk Load Balancer Standar. Jika tidak ditentukan, nama Load Balancer Dasar digunakan kembali.
    • RecoveryBackupPath [string] Opsional - Parameter ini memungkinkan Anda menentukan jalur alternatif untuk menyimpan file cadangan templat ARM Load Balancer Dasar (default ke direktori kerja saat ini)

    Tip

    Parameter tambahan untuk skenario tingkat lanjut dan pemulihan dapat dilihat dengan menjalankan Get-Help Start-AzBasicLoadBalancerUpgrade -Detailed

  4. Jalankan Start-AzBasicLoadBalancerUpgrade perintah , menggunakan contoh berikut untuk panduan.

Contoh: memvalidasi skenario

Memvalidasi bahwa Load Balancer Dasar didukung untuk peningkatan

Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -validateScenarioOnly

Contoh: tingkatkan menurut nama

Tingkatkan Load Balancer Dasar ke Load Balancer Standar dengan nama yang sama, memberikan nama Load Balancer Dasar dan nama grup sumber daya

Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName>

Contoh: meningkatkan, mengubah nama, dan menampilkan log

Tingkatkan Load Balancer Dasar ke Load Balancer Standar dengan nama yang ditentukan, menampilkan output yang dicatat di layar

Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -FollowLog

Contoh: meningkatkan dengan jalur cadangan alternatif

Tingkatkan Load Balancer Dasar ke Load Balancer Standar dengan nama yang ditentukan dan simpan file cadangan Load Balancer Dasar di jalur yang ditentukan

Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <loadBalancerRGName> -BasicLoadBalancerName <basicLBName> -StandardLoadBalancerName <newStandardLBName> -RecoveryBackupPath C:\BasicLBRecovery

Contoh: memvalidasi migrasi yang selesai

Memvalidasi migrasi yang telah selesai dengan meneruskan pencadangan file status Load Balancer Dasar dan nama Load Balancer Standar

Start-AzBasicLoadBalancerUpgrade -validateCompletedMigration -StandardLoadBalancerName <newStandardLBName> -basicLoadBalancerStatePath C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json

Migrasikan beberapa Load Balancer dengan anggota backend bersama secara bersamaan, biasanya ketika aplikasi memiliki Load Balancer internal dan eksternal

# build array of multiple basic load balancers
$multiLBConfig = @(
    @{
        'standardLoadBalancerName' = 'myStandardInternalLB01' # specifying the standard load balancer name is optional
        'basicLoadBalancer' = (Get-AzLoadBalancer -ResourceGroupName myRG -Name myBasicInternalLB01)
    },
        @{
        'standardLoadBalancerName' = 'myStandardExternalLB02'
        'basicLoadBalancer' = (Get-AzLoadBalancer -ResourceGroupName myRG -Name myBasicExternalLB02)
    }
)
# pass the array of load balancer configurations to the -MultiLBConfig parameter
Start-AzBasicLoadBalancerUpgrade -MultiLBConfig $multiLBConfig

Contoh: coba lagi migrasi set skala komputer virtual yang gagal

Coba lagi peningkatan yang gagal untuk penyeimbang beban set skala komputer virtual (karena kesalahan atau penghentian skrip) dengan menyediakan file status cadangan Basic Load Balancer dan Virtual Machine Scale Set

Start-AzBasicLoadBalancerUpgrade -FailedMigrationRetryFilePathLB C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json -FailedMigrationRetryFilePathVMSS C:\RecoveryBackups\VMSS_myVMSS_rg-basiclbrg_20220912T1740032148.json

Contoh: mencoba kembali migrasi komputer virtual yang gagal

Coba lagi peningkatan yang gagal untuk load balancer VM (karena kesalahan atau penghentian skrip) dengan menyediakan file status cadangan Load Balancer Dasar

Start-AzBasicLoadBalancerUpgrade -FailedMigrationRetryFilePathLB C:\RecoveryBackups\State_mybasiclb_rg-basiclbrg_20220912T1740032148.json

Pertanyaan Umum

Bagaimana cara mencantumkan Load Balancer Dasar yang akan dimigrasikan di lingkungan saya?

Salah satu cara untuk mendapatkan daftar Load Balancer Dasar yang perlu dimigrasikan di lingkungan Anda adalah dengan menggunakan kueri Azure Resource Graph. Kueri sederhana seperti ini akan mencantumkan semua Load Balancer Dasar yang dapat Anda akses.

Resources
| where type == 'microsoft.network/loadbalancers' and sku.name == 'Basic'

'' Kami juga telah menulis kueri yang lebih kompleks yang menilai kesiapan setiap Load Balancer Dasar untuk migrasi pada sebagian besar kriteria yang diperiksa modul ini selama validasi. Kueri Resource Graph dapat ditemukan di proyek GitHub kami atau dibuka di Azure Resource Graph Explorer.

Apakah migrasi ini akan menyebabkan waktu henti ke aplikasi saya?

Ya, karena Load Balancer Dasar perlu dihapus sebelum Load Balancer Standar baru dapat dibuat, akan ada waktu henti untuk aplikasi Anda. Lihat Berapa lama Peningkatan berlangsung?

Apakah modul akan memigrasikan alamat IP frontend saya ke Standard Load Balancer baru?

Ya, untuk load balancer publik dan internal, modul memastikan bahwa alamat IP front end dipertahankan. Untuk IP publik, IP dikonversi ke IP statis sebelum migrasi. Untuk front end internal, modul mencoba menetapkan ulang alamat IP yang sama yang dibebaskan saat Load Balancer Dasar dihapus. Jika IP privat tidak tersedia, skrip gagal (lihat Apa yang terjadi jika peningkatan saya gagal di tengah migrasi?).

Berapa lama waktu yang dibutuhkan Peningkatan?

Peningkatan biasanya membutuhkan waktu beberapa menit agar skrip selesai. Faktor-faktor berikut dapat menyebabkan waktu peningkatan yang lebih lama:

  • Kompleksitas konfigurasi load balancer Anda
  • Jumlah anggota kumpulan backend
  • Jumlah instans Virtual Machine Scale Sets atau Virtual Machinesf terkait
  • Kluster Service Fabric: Peningkatan untuk Kluster Service Fabric membutuhkan waktu sekitar satu jam dalam pengujian

Ingatlah waktu henti dan rencanakan untuk failover jika perlu.

Apakah skrip memigrasikan anggota kumpulan backend saya dari Load Balancer Dasar saya ke Load Balancer Standar yang baru dibuat?

Ya. Skrip Azure PowerShell memigrasikan Virtual Machine Scale Sets dan Virtual Machines ke kumpulan backend Standard Load Balancer yang baru dibuat.

Komponen load balancer mana yang dimigrasikan?

Skrip memigrasikan hal berikut dari Load Balancer Dasar ke Load Balancer Standar:

Load Balancer Publik dan Privat:

  • Pemeriksaan Kesehatan:
    • Semua pemeriksaan dimigrasikan ke Load Balancer Standar baru
  • Aturan penyeimbangan beban:
    • Semua aturan penyeimbangan beban dimigrasikan ke Load Balancer Standar baru
  • Aturan NAT masuk:
    • Semua aturan NAT yang dibuat pengguna dimigrasikan ke Load Balancer Standar baru
  • Kumpulan NAT Masuk:
    • Secara default, Kumpulan NAT ditingkatkan ke Aturan NAT
    • Untuk memigrasikan Kumpulan NAT, tentukan -skipUpgradeNATPoolsToNATRules parameter saat memutakhirkan
  • Kumpulan backend:
    • Semua kumpulan backend dimigrasikan ke Load Balancer Standar baru
    • Semua Virtual Machine Scale Set dan antarmuka jaringan Virtual Machine dan konfigurasi IP dimigrasikan ke Standard Load Balancer baru
    • Jika Set Skala Komputer Virtual menggunakan kebijakan Peningkatan Bergulir, skrip akan memperbarui kebijakan peningkatan Set Skala Komputer Virtual ke "Manual" selama proses migrasi dan mengembalikannya kembali ke "Bergulir" setelah migrasi selesai.
  • Alamat IP Publik tingkat instans
    • Untuk Virtual Machines dan Virtual Machine Scale Sets, mengonversi IP Publik yang terpasang dari SKU Dasar ke Standar. Catatan, INSTANS Set Skala IP Publik berubah selama peningkatan; IP komputer virtual tidak.
  • Tag dari Load Balancer Dasar ke Load Balancer Standar

Load Balancer Publik:

  • Konfigurasi IP frontend publik
    • Mengonversi IP publik ke IP statis, jika dinamis
    • Memperbarui SKU IP publik ke Standar, jika Dasar
    • Tingkatkan semua IP publik terkait ke Load Balancer Standar baru
  • Aturan Keluar:
    • Load balancer dasar tidak mendukung aturan keluar yang dikonfigurasi. Skrip membuat aturan keluar di load balancer Standar untuk mempertahankan perilaku keluar dari load balancer Dasar. Untuk informasi selengkapnya tentang aturan keluar, lihat Aturan keluar.
  • Kelompok keamanan jaringan
    • Load Balancer Dasar tidak memerlukan kelompok keamanan jaringan untuk mengizinkan konektivitas keluar. Jika tidak ada grup keamanan jaringan yang terkait dengan Virtual Machine Scale Set, grup keamanan jaringan baru dibuat untuk mempertahankan fungsionalitas yang sama. Grup keamanan jaringan baru ini dikaitkan dengan antarmuka jaringan anggota kumpulan backend Virtual Machine Scale Set. Ini memungkinkan port dan protokol aturan penyeimbangan beban yang sama dan mempertahankan konektivitas keluar.

Load Balancer Internal:

  • Konfigurasi IP frontend privat

Catatan

Kelompok keamanan jaringan tidak dikonfigurasi sebagai bagian dari peningkatan Load Balancer Internal. Untuk mempelajari selengkapnya tentang NSG, lihat Kelompok keamanan jaringan

Bagaimana cara bermigrasi saat anggota kumpulan backend saya termasuk dalam beberapa Load Balancer?

Dalam skenario di mana anggota kumpulan backend Anda juga merupakan anggota kumpulan backend di Load Balancer lain, seperti ketika Anda memiliki Load Balancer internal dan eksternal untuk aplikasi yang sama, Load Balancer Dasar perlu dimigrasikan pada saat yang sama. Mencoba memigrasikan Load Balancer satu per satu akan mencoba mencampur sumber daya SKU Dasar dan Standar, yang tidak diizinkan. Skrip migrasi mendukung ini dengan meneruskan beberapa Load Balancer Dasar ke dalam eksekusi skrip yang sama menggunakan -MultiLBConfig parameter .

Bagaimana cara memvalidasi bahwa migrasi berhasil?

Pada akhir eksekusinya, modul peningkatan melakukan validasi berikut, membandingkan Load Balancer Dasar dengan Load Balancer Standar baru. Dalam migrasi yang gagal, operasi yang sama ini dapat dipanggil menggunakan -validateCompletedMigration parameter dan -basicLoadBalancerStatePath untuk menentukan status konfigurasi Load Balancer Standar (jika dibuat). File log yang dibuat selama migrasi juga memberikan detail yang luas tentang operasi migrasi dan kesalahan apa pun.

  • Load Balancer Standar ada dan SKU-nya adalah 'Standar'
  • Jumlah konfigurasi IP ujung depan cocok dan bahwa alamat IP sama
  • Jumlah kumpulan backend dan kecocokan keanggotaannya
  • Jumlah kecocokan aturan penyeimbangan beban
  • Jumlah kecocokan pemeriksaan kesehatan
  • Jumlah kecocokan aturan NAT masuk
  • Jumlah kecocokan kumpulan NAT masuk
  • Load Balancer Standar Eksternal memiliki aturan keluar yang dikonfigurasi
  • Anggota kumpulan backend Load Balancer Standar Eksternal memiliki Kelompok Keamanan Jaringan terkait

Bagaimana cara mengonfigurasi lalu lintas keluar untuk Load Balancer saya?

Load Balancer SKU Standar tidak mengizinkan akses keluar default untuk anggota kumpulan backend mereka. Mengizinkan akses keluar ke internet memerlukan lebih banyak langkah.

Untuk Load Balancer eksternal, Anda dapat menggunakan Aturan Keluar untuk mengaktifkan lalu lintas keluar secara eksplisit untuk anggota kumpulan Anda. Jika Anda memiliki satu kumpulan backend, kami secara otomatis mengonfigurasi Aturan Keluar untuk Anda selama migrasi; jika Anda memiliki lebih dari satu kumpulan backend, Anda harus membuat Aturan Keluar secara manual untuk menentukan alokasi port.

Untuk Load Balancer internal, Aturan Keluar bukan pilihan karena tidak ada alamat IP Publik ke SNAT melalui. Ini meninggalkan beberapa opsi untuk dipertimbangkan:

  • NAT Gateway: NAT Gateway adalah pendekatan azure yang direkomendasikan untuk lalu lintas keluar dalam banyak kasus. Namun, NAT Gateway mengharuskan subnet terlampir tidak memiliki sumber daya jaringan SKU dasar--yang berarti Anda harus memigrasikan semua Load Balancer dan Alamat IP Publik Anda sebelum Anda dapat menggunakannya. Untuk alasan ini, sebaiknya gunakan pendekatan dua langkah di mana Anda terlebih dahulu menggunakan salah satu pendekatan berikut untuk konektivitas keluar, lalu beralih ke NAT Gateway setelah migrasi SKU dasar Anda selesai.
  • Network Virtual Appliance: Rutekan lalu lintas Anda melalui Network Virtual Appliance, seperti Azure Firewall, yang pada gilirannya akan merutekan lalu lintas Anda ke internet. Opsi ini sangat ideal jika Anda sudah memiliki Network Virtual Appliance yang dikonfigurasi.
  • Load Balancer Eksternal Sekunder: Dengan menambahkan Load Balancer eksternal sekunder ke sumber daya backend, Anda dapat menggunakan Load Balancer eksternal untuk lalu lintas keluar dengan mengonfigurasi aturan keluar. Jika Load Balancer eksternal ini tidak memiliki aturan penyeimbangan beban, aturan NAT, atau kumpulan NAT masuk yang dikonfigurasi, sumber daya backend Anda akan tetap terisolasi ke jaringan internal Anda untuk lalu lintas masuk--lihat konfigurasi load balancer keluar saja. Dengan opsi ini, Load Balancer eksternal dapat dikonfigurasi sebelum bermigrasi dari SKU dasar ke standar dan dimigrasikan pada saat yang sama dengan load balancer internal menggunakan -MultiLBConfig parameter
  • Alamat IP Publik: Terakhir, alamat IP Publik dapat ditambahkan langsung ke instans Virtual Machines atau Virtual Machine Scale Set Anda. Namun, opsi ini tidak disarankan karena area permukaan keamanan tambahan dan biaya penambahan Alamat IP Publik.

Apa yang terjadi jika peningkatan saya gagal di tengah migrasi?

Modul ini dirancang untuk mengakomodasi kegagalan, baik karena kesalahan yang tidak tertangani atau penghentian skrip yang tidak terduga. Desain kegagalan adalah pendekatan 'fail forward', di mana alih-alih mencoba untuk pindah kembali ke Load Balancer Dasar, Anda harus memperbaiki masalah yang menyebabkan kegagalan (lihat output kesalahan atau file log), dan mencoba kembali migrasi lagi, menentukan -FailedMigrationRetryFilePathLB <BasicLoadBalancerBackupFilePath> -FailedMigrationRetryFilePathVMSS <VMSSBackupFile> parameter. Untuk penyeimbang beban publik, karena SKU Alamat IP Publik telah diperbarui ke Standar, memindahkan IP yang sama kembali ke Load Balancer Dasar tidak akan dimungkinkan.

Tonton video proses pemulihan:

Jika migrasi Anda yang gagal menargetkan beberapa penyeimbang muatan secara bersamaan, menggunakan -MultiLBConfig parameter , pulihkan setiap Load Balancer satu per satu menggunakan proses yang sama seperti di bawah ini.

Prosedur pemulihan kegagalan dasar adalah:

  1. Atasi penyebab kegagalan migrasi. Periksa file Start-AzBasicLoadBalancerUpgrade.log log untuk detailnya
  2. Hapus Load Balancer Standar baru (jika dibuat). Bergantung pada tahap migrasi mana yang gagal, Anda mungkin harus menghapus referensi Load Balancer Standar dari Set Skala Komputer Virtual atau antarmuka jaringan Komputer Virtual (konfigurasi IP) dan Pemeriksaan Kesehatan untuk menghapus Load Balancer Standar.
  3. Temukan file cadangan status Load Balancer Dasar. File ini akan berada di direktori tempat skrip dijalankan, atau di jalur yang ditentukan dengan -RecoveryBackupPath parameter selama eksekusi yang gagal. File diberi nama: State_<basicLBName>_<basicLBRGName>_<timestamp>.json
  4. Jalankan ulang skrip migrasi, menentukan -FailedMigrationRetryFilePathLB <BasicLoadBalancerbackupFilePath> parameter dan -FailedMigrationRetryFilePathVMSS <VMSSBackupFile> (untuk backend set Skala Komputer Virtual) alih-alih -BasicLoadBalancerName atau meneruskan Load Balancer Dasar melalui alur

Langkah berikutnya