Topik ini menjelaskan cara menentukan fungsi dari Function Compute sebagai server backend untuk Application Load Balancer (ALB). Fungsi tersebut digunakan untuk memproses permintaan. Anda dapat membuat grup server tipe Function Compute untuk instance ALB Anda. Setelah menambahkan fungsi ke grup server ALB, permintaan ke ALB diteruskan ke Function Compute dan memanggil fungsi tersebut. Hasil eksekusi dikembalikan kepada peminta setelah Function Compute menjalankan fungsi.
Ikhtisar solusi
Function Compute Alibaba Cloud adalah layanan komputasi berbasis peristiwa yang sepenuhnya dikelola. Dengan Function Compute, Anda tidak perlu mengelola infrastruktur seperti server. Cukup tulis dan unggah kode Anda ke Function Compute, lalu biarkan Function Compute menyiapkan sumber daya komputasi yang diperlukan dan menjalankan kode Anda secara andal dengan penskalaan otomatis. Selain itu, ia menyediakan fitur pencatatan, pemantauan kinerja, dan peringatan. Dengan menggunakan Function Compute, Anda dapat dengan cepat membangun berbagai jenis aplikasi dan layanan, serta hanya membayar untuk sumber daya yang sebenarnya Anda konsumsi.
ALB mendukung penambahan fungsi Function Compute sebagai server backend. Saat ALB menerima permintaan, permintaan tersebut diteruskan ke Function Compute. Fungsi yang terkait dengan ALB sebagai server backend dipanggil, dan hasil eksekusi dikembalikan sebagai respons kepada peminta.
ALB mendukung Function Compute 3.0 dan Function Compute 2.0.
Untuk menggunakan fungsi Function Compute untuk ALB, Anda harus mengaktifkan layanan Function Compute terlebih dahulu. Jika akun Anda didaftarkan satu hari setelah 27 Agustus 2024 dan telah menyelesaikan autentikasi nama asli, Anda dapat melewati proses aktivasi untuk Function Compute.
ALB dan Function Compute berkomunikasi melalui jaringan internal aman Alibaba Cloud.
Fitur utama
Arsitektur tanpa server: Menambahkan fungsi Function Compute sebagai layanan backend ke ALB memungkinkan Anda dengan mudah membangun aplikasi tanpa server dan mengurangi biaya operasional serta pemeliharaan.
Penskalaan otomatis: Function Compute secara otomatis menyesuaikan sumber daya komputasi naik atau turun berdasarkan lalu lintas, memastikan daya komputasi yang cukup selama lonjakan lalu lintas dan menghemat sumber daya selama penurunan lalu lintas.
Ketersediaan tinggi dan toleransi kesalahan: ALB dan Function Compute bersama-sama memberikan kemampuan ketersediaan tinggi dan pemulihan bencana, memastikan operasi aplikasi yang stabil.
Skenario penggunaan
Arsitektur mikroservis: Melalui kemampuan pengalihan lanjutan ALB, permintaan didistribusikan ke fungsi mikroservis yang berbeda. Function Compute secara otomatis menyesuaikan skalanya untuk menangani permintaan konkurensi tinggi, meningkatkan skalabilitas dan keandalan sistem.
Pemrosesan data real-time: Dengan ALB mendistribusikan permintaan ke fungsi yang diperlukan, Anda hanya perlu menulis beberapa baris kode dan melakukan konfigurasi dasar. Kemudian, Function Compute dapat memproses data bisnis Anda secara real-time.
Permintaan berbasis peristiwa: ALB memeriksa dan meneruskan permintaan yang dipicu oleh peristiwa ke fungsi terkait. Function Compute memproses permintaan dan menyimpan hasil pemrosesan di database atau mengirimkannya ke layanan lain, memungkinkan arsitektur berbasis peristiwa.
Pemrosesan gambar dan video: ALB memeriksa dan meneruskan permintaan unggah gambar dan video ke fungsi pemrosesan. Function Compute secara otomatis menyesuaikan sumber daya komputasi berdasarkan ukuran tugas, memastikan penyelesaian tugas pemrosesan gambar dan video secara efisien.
Batasan
Untuk wilayah tempat Function Compute didukung sebagai server backend untuk ALB, lihat Wilayah dan zona.
Instance ALB dan fungsi yang ingin Anda gunakan sebagai server backend harus berada di wilayah yang sama.
Untuk grup server ALB tipe Function Compute, hanya satu fungsi yang dapat ditambahkan sebagai server backend.
Untuk Function Compute 2.0, jika Anda mengatur Handler Type suatu fungsi menjadi Event Handler, dan menggunakan fungsi tersebut sebagai server backend ALB, pemicu HTTP harus dikonfigurasikan untuk fungsi tersebut.
Skema contoh
Sebuah perusahaan e-commerce telah menerapkan ALB di wilayah Alibaba Cloud untuk menangani permintaan pengguna yang mengakses platformnya. Seiring dengan pertumbuhan bisnis dan bertambahnya jumlah pengguna, perusahaan membutuhkan arsitektur yang dapat diskalakan untuk menyelesaikan tugas pembuatan konten, analisis perilaku pengguna, dan rekomendasi personalisasi secara efisien.
Untuk memenuhi kebutuhan ini, perusahaan menggabungkan Function Compute Alibaba Cloud dengan ALB untuk meningkatkan pengalaman pengguna.
Prasyarat
Instance ALB yang menghadap Internet telah dibuat.
Nama domain kustom didaftrakan dan nomor penyedia konten Internet (ICP) diperoleh untuk nama domain tersebut.
Prosedur
Langkah 1: Buat fungsi
Dalam contoh ini, Function Compute 3.0 digunakan. Jika Anda ingin menggunakan Function Compute 2.0, pada halaman utama di konsol Function Compute, klik Back to Function Compute 2.0 di pojok kanan atas dan merujuk pada panduan ini: Cepat buat fungsi.
Masuk ke konsol Function Compute. Di panel navigasi kiri, pilih Functions. Pada halaman Functions, pilih wilayah di bilah navigasi atas, lalu klik Create Function.
Di halaman Create Function, pilih tipe fungsi, lengkapi konfigurasi kode fungsi, lalu klik Create.
Dalam contoh ini, tipe Event Function dipilih dan konfigurasi Code default metode Use Sample Code digunakan. Anda dapat mempertahankan nilai default untuk parameter lainnya dari Fungsi Peristiwa atau mengaturnya sesuai kebutuhan.


Di halaman detail fungsi, pada tab Code, klik Test Function.
Saat pesan Successful Execution ditampilkan, Anda dapat melihat hasil eksekusi fungsi di bagian Response. Dalam contoh ini, responsnya adalah
hello world.
Langkah 2: Buat grup server tipe Function Compute
Buka konsol ALB, di panel navigasi kiri, pilih Server Groups. Di bilah navigasi atas, pilih wilayah yang sama dengan fungsi yang dibuat, lalu klik Create Server Group.
Di kotak dialog Create Server Group, pilih Function Compute untuk Server Group Type, lalu klik Create.
PentingJika Anda mengaktifkan pemeriksaan kesehatan untuk grup server ini, probe pemeriksaan kesehatan dihitung sebagai permintaan ke Function Compute, dan Function Compute membebankan biaya untuk permintaan tersebut.

Di pesan yang ditampilkan, klik Add Backend Server.
Di panel Add Backend Server, pilih fungsi yang telah dibuat, lalu klik OK.
Dalam topik ini, Configuration Method disetel ke Service, fungsi yang dibuat dipilih untuk Function Name, dan Version disetel ke LATEST. Jika Anda perlu mengonfigurasi berdasarkan ARN, Anda perlu memperoleh Nama Sumber Daya Alibaba Cloud (ARN) dari fungsi tersebut.

Langkah 3: Buat pendengar
Di panel navigasi kiri, pilih , lalu klik ID instance yang Anda inginkan.
Klik tab Listener, lalu klik Create Listener.
Di halaman wizard Configure Listener, atur protokol dan port pendengar, lalu klik Next.
Dalam topik ini, protokol HTTP dan port 80 dipilih. Anda dapat mempertahankan nilai default untuk parameter pendengar HTTP lainnya atau mengaturnya sesuai kebutuhan.

Di halaman wizard Select Server Group, pilih Function Compute dari daftar drop-down Select Server Group, pilih grup server yang telah dibuat, lalu klik Next.

Di halaman wizard Configuration Review, konfirmasi konfigurasi, lalu klik Submit.
Langkah 4: Konfigurasi resolusi nama domain
Dalam skenario bisnis dunia nyata, kami sarankan Anda menggunakan nama domain kustom dan menyelesaikan ke nama domain instance ALB Anda dengan catatan CNAME.
Di panel navigasi kiri, pilih . Pada halaman Instances, salin nama DNS instance ALB Anda.
Tambahkan catatan CNAME:
Di halaman Authoritative DNS Resolution di konsol Alibaba Cloud DNS, temukan nama domain kustom yang Anda inginkan, dan klik DNS Settings di kolom Actions.
CatatanUntuk nama domain yang tidak terdaftar di Alibaba Cloud, Anda perlu menambahkan nama domain ke Alibaba Cloud DNS sebelum Anda dapat mengonfigurasi resolusi nama domain.
Di halaman pengaturan resolusi, klik Add DNS Record, konfigurasikan catatan CNAME, lalu klik OK.
Dalam topik ini, Record Type disetel ke CNAME, dan Record Value disetel ke nama DNS instance ALB. Anda dapat mempertahankan nilai default untuk parameter catatan DNS lainnya atau mengaturnya sesuai kebutuhan.

Langkah 5: Uji efek penyeimbangan beban
Dengan langkah-langkah di atas selesai, koneksi terbentuk antara ALB dan Function Compute. Buka jendela baris perintah dan jalankan perintah curl <Nama domain kustom> untuk menguji konektivitas antara ALB dan Function Compute.
Jika Anda menerima pesan respons seperti yang ditunjukkan pada gambar berikut, itu menunjukkan bahwa ALB dapat meneruskan permintaan ke Function Compute dan memanggil fungsi tersebut.

FAQ
Mengapa permintaan per detik (QPS) instance ALB saya gagal mencapai level yang dijanjikan ketika fungsi Function Compute digunakan sebagai server backend untuk ALB?
Instance ALB dapat menangani hingga 1 juta QPS pada performa optimal. Namun, ketika layanan backend instance ALB adalah Function Compute, QPS instance ALB mungkin tidak mencapai level yang dijanjikan karena alasan berikut:
Batas QPS Function Compute: Jumlah permintaan konkuren yang dapat diproses oleh instance Function Compute terbatas. Ketika volume permintaan bisnis melebihi QPS maksimum yang dapat ditangani oleh instance saat ini, permintaan mungkin akan diantrekan atau dibatasi.
Batas jumlah instance Function Compute: Jumlah instance Function Compute yang berjalan secara paralel terbatas. Jika instance Function Compute tidak cukup untuk lalu lintas bisnis Anda, meskipun QPS dari satu instance tinggi, QPS keseluruhan tetap tidak mencukupi.
Untuk informasi tentang estimasi jumlah instance yang diperlukan untuk bisnis Anda, lihat Mempertimbangkan bahwa batas atas instance untuk setiap pengguna di wilayah adalah 100, apakah layanan dapat memproses lebih dari 100 permintaan per detik?
Solusi: Merujuk pada hasil profil kinerja fungsi, konfigurasikan dengan benar konkurensi instance, tipe instance, dan parameter relevan lainnya, serta tingkatkan kuota Function Compute untuk mencapai QPS optimal.
Referensi
Konsol
Untuk informasi lebih lanjut tentang ALB:
Untuk informasi lebih lanjut tentang Function Compute:
API
CreateServerGroup: Membuat grup server tipe Function Compute dengan menyetel parameter
ServerGroupTypekeFc.AddServersToServerGroup: Menambahkan fungsi Function Compute sebagai server backend dengan menyetel parameter
ServerTypekeFc.RemoveServersFromServerGroup: Menghapus server backend dari grup server dengan menyetel parameter
ServerTypekeFcdan parameterServerIdke ARN fungsi Function Compute.DeleteServerGroup: Menghapus grup server tertentu.