Function Compute mendukung pemicu HTTP yang memungkinkan Anda memanggil fungsi melalui permintaan HTTP. Fungsi tersebut memproses permintaan HTTP dan mengembalikan hasilnya. Topik ini menjelaskan cara mengonfigurasi pemicu HTTP di konsol Function Compute serta menggunakannya untuk memanggil fungsi.
Prasyarat
Langkah 1: Buat pemicu
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang dituju.
Di halaman detail fungsi, pada tab Triggers, klik Create Trigger.
Di panel Buat Pemicu, konfigurasikan parameter, lalu klik OK.
Item konfigurasi
Operasi
Contoh
Trigger Type
Pilih HTTP Trigger.
HTTP Trigger
Name
Masukkan nama pemicu kustom.
http-trigger
Version Or Alias
Nilai default adalah LATEST. Untuk membuat pemicu untuk versi atau alias lain, Anda harus terlebih dahulu memilih versi tersebut di halaman detail fungsi dari daftar drop-down Version Or Alias. Untuk gambaran umum tentang versi dan alias, lihat Mengelola versi dan Mengelola alias.
LATEST
Request Methods
Tentukan metode yang dapat memicu pemicu HTTP ini.
GET, POST, PUT, DELETE
Disable Internet URL
Secara default, opsi ini dinonaktifkan, sehingga pemicu dapat diakses dari nama domain publik.
Jika Anda mengaktifkan opsi ini, nama domain publik default tidak disediakan untuk pemicu HTTP. Jika Anda kemudian memanggil fungsi menggunakan nama domain publik, kesalahan
access denied due to function internet URL is disableakan dilaporkan. Akses melalui nama domain kustom tidak terpengaruh.Tidak
Authentication Method
Pilih metode yang digunakan Function Compute untuk mengotentikasi permintaan HTTP. Nilai berikut tersedia:
No Authentication: Otentikasi identitas tidak diperlukan untuk permintaan HTTP. Akses anonim didukung. Siapa pun dapat mengirim permintaan HTTP untuk memanggil fungsi Anda.
Signature Authentication: Otentikasi identitas diperlukan untuk permintaan HTTP. Untuk contoh kode otentikasi tanda tangan, lihat Akses URL pemicu HTTP menggunakan tanda tangan.
Basic Authentication: Autentikasi identitas diperlukan untuk permintaan HTTP. Untuk contoh kode autentikasi Basic, lihat Mengonfigurasi autentikasi Basic untuk Pemicu HTTP.
JWT Authentication: Otentikasi JWT diperlukan untuk permintaan HTTP. Untuk informasi selengkapnya, lihat Konfigurasi otentikasi JWT untuk pemicu HTTP.
Bearer Authentication: Otentikasi Bearer diperlukan untuk permintaan HTTP. Untuk informasi selengkapnya, lihat Aktifkan otentikasi Bearer untuk pemicu HTTP.
Tanpa Otentikasi
Setelah membuat pemicu, Anda dapat memodifikasi item konfigurasinya, seperti Version or Alias, Request Methods, dan Authentication Method.
Langkah 2: Tulis dan deploy kode
Setelah membuat pemicu HTTP, Anda dapat menulis kode fungsi.
Di halaman detail fungsi, klik tab Code. Di editor kode, tulis kode Anda, lalu klik Deploy Code. Untuk contoh kode, lihat dokumentasi penanganan untuk berbagai waktu proses di bagian dalam dokumentasi Function Compute.
Langkah 3: Uji fungsi
Metode 1: Gunakan konsol untuk menguji fungsi
Di halaman Function Details, klik tab Code.
Pemanggilan sinkron
Klik Test Function.
Pemanggilan asinkron
Klik ikon
di samping Test Function dan pilih Async Invocation. Lalu, klik Test Function.
Setelah eksekusi selesai, Anda dapat melihat hasilnya di tab Code.
Metode 2: Gunakan cURL untuk menguji fungsi
Di halaman detail fungsi, klik tab Triggers. Di kolom Configuration Information untuk pemicu HTTP, dapatkan titik akhir publik.

Jalankan perintah cURL di command line untuk menguji fungsi.
Panggilan sinkron
Berikut adalah contohnya. Ganti
https://example.cn-shenzhen.fcapp.rundengan titik akhir publik pemicu HTTP yang Anda peroleh pada langkah sebelumnya. Ganti$pathdengan nama operasi API yang ingin Anda panggil.curl -v https://example.cn-shenzhen.fcapp.run/$pathCatatanPanggil fungsi web: Untuk aplikasi Flask, jika rute fungsi Python didefinisikan sebagai
@app.route('/test'), ganti$pathdengantest. Jika rute didefinisikan sebagai@app.route('/'), panggil langsung titik akhir publik pemicu HTTP.Panggil fungsi event: Panggil langsung titik akhir publik pemicu HTTP.
Setelah perintah dieksekusi, Function Compute mengembalikan hasil eksekusi kode.
Pemanggilan asinkron
Berikut adalah contohnya. Ganti
https://example.cn-shenzhen.fcapp.rundengan titik akhir publik pemicu HTTP Anda. Ganti$pathdengan nama operasi API yang ingin Anda panggil.curl -v -H "X-Fc-Invocation-Type: Async" https://example.cn-shenzhen.fcapp.run/$pathCatatanPanggil fungsi web: Untuk aplikasi Flask, jika rute fungsi Python didefinisikan sebagai
@app.route('/test'), ganti$pathdengantest. Jika rute didefinisikan sebagai@app.route('/'), panggil langsung titik akhir publik pemicu HTTP.Panggil fungsi event: Panggil langsung titik akhir publik pemicu HTTP.
Setelah perintah dieksekusi, Function Compute mengembalikan hasil penerimaan permintaan. Kode status
202menunjukkan bahwa permintaan berhasil dikirim. Kode status lain menunjukkan terjadinya kesalahan selama pemanggilan. Untuk informasi lebih lanjut tentang penyebab kode kesalahan, lihat FAQ (Pemecahan Masalah).
Metode 3: (Tidak disarankan) Gunakan browser untuk menguji fungsi
Di halaman detail fungsi, klik tab Triggers. Di kolom Configuration Information pemicu HTTP yang dituju, dapatkan titik akhir publik. Masukkan titik akhir ini ke bilah alamat browser Anda dan tekan Enter.
Setelah eksekusi selesai, browser mengembalikan file yang berisi hasil eksekusi.
(Opsional) Gunakan API Gateway untuk melindungi fungsi
Function Compute mendukung akses anonim untuk permintaan HTTP. Artinya, siapa pun dapat mengirim permintaan HTTP untuk memanggil fungsi Anda. Untuk mencegah pengguna yang tidak sah mengakses fungsi Anda—yang dapat menyebabkan konsumsi sumber daya berlebih atau risiko keamanan—Anda dapat mengaktifkan otentikasi identitas dan mengintegrasikan fungsi HTTP Anda dengan API Gateway. Anda juga dapat menggunakan plugin API Gateway, seperti plugin kontrol akses IP, plugin otentikasi JWT, atau plugin BasicAuth, untuk melindungi fungsi HTTP Anda.
Di Konsol Function Compute, temukan fungsi yang dituju. Di halaman detail fungsi, klik tab Triggers. Di kolom Actions pemicu HTTP yang dituju, klik Edit.
Di panel Edit Pemicu, aktifkan sakelar Disable Internet URL.
Masuk ke Konsol API Gateway dan beralih ke wilayah tempat fungsi HTTP berada.
Buat grup dan API.
Anda dapat membuat API untuk memungkinkan aplikasi eksternal memanggil layanan fungsi internal dengan cara tertentu. Grup API dapat digunakan untuk mengatur dan mengelola beberapa operasi API terkait, sehingga mempermudah penerapan kebijakan keamanan terpadu dan langkah-langkah pembentukan lalu lintas.
Di Konsol API Gateway, di panel navigasi sebelah kiri, pilih API Management > Group Management. Klik Create Group.
Di kotak dialog Create Group, pilih Instance. Atur Group Name menjadi
FC-Groupdan BasePath menjadi/. Lalu, klik OK.Di kolom Actions grup yang dituju, klik API Management. Lalu, klik Create API. Di tab Basic Information, konfigurasikan informasi berikut dan klik Next.

Di tab Define API Request, atur Request Path menjadi
/, pertahankan nilai default untuk parameter lainnya, lalu klik Next.
Di tab Define API Backend Service, atur Trigger Path menjadi titik akhir internal pemicu Function Compute, misalnya
https://example.cn-hangzhou-vpc.fcapp.run. Konfigurasikan pengaturan seperti yang ditunjukkan pada gambar dan klik Next.
Di tab Define Response, pertahankan konfigurasi default dan klik Create. Setelah API dibuat, klik Publish di kolom Tindakan API.
Debug API. Sebelum mempublikasikan API, Anda dapat menggunakan alat debugging online yang disediakan oleh API Gateway untuk menguji apakah API berfungsi sesuai harapan. Hal ini membantu Anda menemukan dan menyelesaikan masalah secara tepat waktu. Jika debugging berhasil, API Gateway terhubung ke Function Compute.
Di Konsol API Gateway, di panel navigasi sebelah kiri, pilih API Calling > Debug.
Di halaman Debug, pilih API
FC-testyang telah Anda buat dan klik Send Request. Jika informasi seperti pada gambar berikut ditampilkan, konfigurasi berhasil.
Buat plugin jenis Backend Signature. Atur
keydansecretmenjadiAccessKey IDdanAccessKey Secretakun Alibaba Cloud Anda. Lalu, ikat plugin tersebut ke API yang telah Anda buat. Untuk informasi selengkapnya, lihat Ikhtisar plugin.
Selesaikan nama domain Anda ke domain tingkat kedua yang disediakan oleh API Gateway menggunakan rekaman CNAME.
Di Konsol API Gateway, di panel navigasi sebelah kiri, pilih API Management > Group Management. Salin domain tingkat kedua publik.

Buka halaman manajemen resolusi nama domain Anda. Konsol DNS Alibaba Cloud tersedia di https://dnsnext.console.alibabacloud.com. Di daftar nama domain, temukan nama domain yang ingin Anda kelola dan klik nama domain tersebut untuk membuka halaman manajemen.
CatatanNama domain independen di wilayah Daratan Tiongkok harus memiliki Pendaftaran ICP dari Alibaba Cloud atau mentransfer Pendaftaran ICP-nya ke Alibaba Cloud.
Di Konsol API Gateway, di panel navigasi sebelah kiri, pilih API Management > Group Management. Buka bagian Independent Domain. Di pojok kanan bawah halaman, klik tombol untuk mengikat nama domain. Masukkan nama domain Anda dan klik OK. Nama domain telah diikat.

Setelah menyelesaikan langkah-langkah ini, Anda dapat mengakses fungsi HTTP melalui nama domain Anda. Anda juga dapat membuat plugin berikut dan mengikatnya ke API Anda untuk melindungi fungsi HTTP Anda.
Pemecahan Masalah
Kesalahan dibagi menjadi dua jenis utama:
Kesalahan permintaan terjadi ketika permintaan yang dikirim tidak memenuhi standar yang ditentukan. Kode status 4xx dikembalikan dalam tanggapan.
Kesalahan fungsi terjadi ketika terdapat masalah pada kode fungsi. Kode status 5xx dikembalikan.
Tabel berikut menjelaskan skenario di mana kesalahan permintaan dan kesalahan fungsi dapat terjadi untuk membantu Anda memecahkan masalah dengan cepat.
Jenis kesalahan | Kode status HTTP | Analisis penyebab | Ditagih |
Kesalahan permintaan | 400 | Permintaan Anda melebihi batas permintaan. Untuk informasi selengkapnya, lihat Ikhtisar pemicu HTTP. | Tidak |
400 | Permintaan untuk memanggil fungsi yang memerlukan otentikasi identitas tidak berisi informasi Date atau Authorization. | Tidak | |
403 | Tanda tangan permintaan untuk memanggil fungsi yang memerlukan otentikasi identitas tidak valid. Artinya, informasi Authorization salah. Date merupakan bagian dari perhitungan tanda tangan, dan tanda tangan kedaluwarsa setelah 15 menit. Penyebab umum kesalahan ini adalah menggunakan pemicu HTTP yang memerlukan otentikasi akses, tetapi Date dalam header permintaan lebih dari 15 menit di masa lalu. Hal ini membuat tanda tangan tidak valid. | Tidak | |
403 | Permintaan menggunakan metode yang tidak dikonfigurasi dalam pemicu HTTP. Misalnya, kesalahan ini terjadi jika Anda mengirim permintaan HTTP menggunakan metode POST, tetapi hanya metode GET yang dikonfigurasi dalam pemicu HTTP. | Tidak | |
404 | Permintaan HTTP dikirim ke fungsi yang tidak memiliki pemicu HTTP yang dikonfigurasi. | Tidak | |
Pengendalian aliran pengguna | 429 | Lalu lintas pengguna dikendalikan. Kurangi jumlah permintaan konkuren atau hubungi tim pengembang Function Compute untuk meningkatkan batas konkurensi. | Tidak |
Kesalahan fungsi | 502 | Nilai kembali fungsi melebihi batas tanggapan. Untuk informasi selengkapnya, lihat Ikhtisar pemicu HTTP. | Ya |
502 | Kode fungsi memiliki kesalahan sintaksis atau pengecualian. | Ya | |
502 | Permintaan HTTP dikirim ke fungsi yang tidak menggunakan penanganan HTTP. | Ya | |
Kesalahan sistem | 500 | Terjadi kesalahan sistem Function Compute. Ulangi operasi. | Tidak |
Pengendalian aliran sistem | 503 | Function Compute mengalami pengendalian aliran sistem. Ulangi dengan backoff eksponensial. | Tidak |
Jika masalah berlanjut, bergabunglah dengan grup pengguna DingTalk (ID: 64970014484) untuk menghubungi insinyur Function Compute guna mendapatkan bantuan.