Function Compute mendukung pemicu HTTP. Anda dapat memanggil fungsi yang memiliki pemicu HTTP dengan mengirimkan permintaan HTTP. Fungsi tersebut memproses permintaan dan mengembalikan hasilnya kepada pemanggil. Topik ini menjelaskan cara mengonfigurasi pemicu HTTP di Konsol Function Compute dan mengujinya dengan permintaan HTTP.
Prasyarat
Langkah 1: Buat pemicu
Masuk ke Konsol Function Compute. Di panel navigasi kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang dituju.
Di halaman detail fungsi, klik tab Trigger, lalu klik Create Trigger.
Di panel Create Trigger, konfigurasikan parameter, lalu klik OK.
Configuration Item
Operation
Example
Trigger Type
Pilih HTTP Trigger.
HTTP Trigger
Name
Masukkan nama kustom untuk pemicu.
http-trigger
Version or Alias
Nilai default-nya adalah LATEST. Jika Anda ingin membuat pemicu untuk versi atau alias lain, Anda harus terlebih dahulu memilih versi atau alias tersebut dari daftar drop-down Version or Alias di halaman detail fungsi. Untuk informasi selengkapnya tentang versi dan alias, lihat Version management dan Alias management.
LATEST
Request Method
Tentukan metode yang dapat digunakan untuk memicu pemicu HTTP.
GET, POST, PUT, DELETE
Disable Internet URL
Fitur ini dinonaktifkan secara default. Artinya, pemicu dapat diakses melalui titik akhir publiknya.
Jika Anda mengaktifkan fitur ini, tidak akan disediakan titik akhir publik default untuk pemicu HTTP. Jika Anda kemudian mencoba memanggil fungsi menggunakan titik akhir publik, pesan kesalahan
access denied due to function internet URL is disableakan dikembalikan. Akses melalui nama domain kustom tidak terpengaruh.No
Authentication Method
Pilih metode autentikasi untuk Function Compute agar dapat mengotentikasi permintaan HTTP. Nilai berikut tersedia:
No Authentication: Permintaan HTTP tidak perlu diautentikasi. Akses anonim didukung. Siapa pun dapat mengirim permintaan HTTP untuk memanggil fungsi Anda.
Signature Authentication: Permintaan HTTP harus diautentikasi. Untuk contoh kode tentang autentikasi signature, lihat Access an HTTP trigger endpoint with a signature.
Bearer Authentication: Permintaan HTTP harus diautentikasi. Untuk contoh kode tentang autentikasi Basic, lihat Configure Basic authentication for an HTTP trigger.
JWT Authentication: Permintaan HTTP harus diautentikasi menggunakan JSON Web Token (JWT). Untuk informasi selengkapnya, lihat Configure JWT authentication for an HTTP trigger.
Bearer Authentication: Permintaan HTTP harus diautentikasi menggunakan autentikasi Bearer. Untuk informasi selengkapnya, lihat Enable Bearer authentication for an HTTP trigger.
No authentication
Setelah pemicu dibuat, Anda dapat mengubah konfigurasinya, seperti Version or Alias, Request Method, dan Authentication Method.
Langkah 2: Tulis dan deploy kode
Setelah membuat pemicu HTTP, tulis kode fungsi.
Di halaman detail fungsi, klik tab Code. Tulis kode di editor kode, lalu klik Deploy. Untuk contoh kode, lihat dokumentasi penanganan untuk berbagai runtime di bagian pada 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 sebelah kanan Test Function, pilih Async Invocation, lalu klik Test Function.
Setelah eksekusi selesai, lihat hasilnya di tab Code.
Metode 2: Gunakan cURL untuk menguji fungsi
Di halaman detail fungsi, klik tab Trigger. Di kolom Configurations pemicu HTTP yang dituju, dapatkan titik akhir publik.

Jalankan perintah cURL di command line untuk menguji fungsi.
Pemanggilan sinkron
Berikut 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: Ambil Flask sebagai contoh. Untuk menguji fungsi Python yang rutenya didefinisikan sebagai
@app.route('/test'), ganti$pathdengantest. Untuk menguji fungsi Python yang rutenya didefinisikan sebagai@app.route('/'), langsung panggil titik akhir publik pemicu HTTP.Panggil fungsi event: Langsung panggil titik akhir publik pemicu HTTP.
Setelah eksekusi selesai, Function Compute mengembalikan hasil eksekusi kode.
Pemanggilan asinkron
Berikut 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: Ambil Flask sebagai contoh. Untuk menguji fungsi Python yang rutenya didefinisikan sebagai
@app.route('/test'), ganti$pathdengantest. Untuk menguji fungsi Python yang rutenya didefinisikan sebagai@app.route('/'), langsung panggil titik akhir publik pemicu HTTP.Panggil fungsi event: Langsung panggil titik akhir publik pemicu HTTP.
Setelah eksekusi selesai, Function Compute mengembalikan hasil penerimaan permintaan. Kode status
202menunjukkan bahwa permintaan berhasil dikirimkan, sedangkan kode status lain menunjukkan terjadi kesalahan selama pemanggilan. Untuk informasi lebih lanjut tentang penyebab spesifik kode kesalahan, lihat FAQ (Troubleshooting).
Metode 3: (Tidak direkomendasikan) Gunakan browser untuk menguji fungsi
Di halaman detail fungsi, klik tab Trigger. Di kolom Configurations pemicu HTTP yang dituju, dapatkan titik akhir publik. Masukkan titik akhir ini di bilah alamat browser Anda, lalu tekan Enter.
Setelah eksekusi selesai, browser mengembalikan file yang berisi hasil eksekusi.
(Opsional) Gunakan API Gateway untuk melindungi fungsi
Function Compute memungkinkan akses anonim ke fungsi HTTP, artinya siapa pun dapat mengirim permintaan HTTP untuk memanggil fungsi Anda. Untuk mencegah pemborosan sumber daya dan risiko keamanan akibat akses tidak sah, aktifkan otentikasi identitas dan hubungkan fungsi HTTP Anda ke API Gateway. Anda dapat menggunakan plugin kontrol akses berbasis IP, plugin autentikasi JWT, atau plugin autentikasi dasar dari API Gateway untuk melindungi fungsi HTTP Anda.
Di Konsol Function Compute, temukan fungsi yang dituju. Di halaman detail fungsi, klik tab Trigger. Di kolom Actions pemicu HTTP yang dituju, klik Modify.
Di panel Edit Trigger, aktifkan sakelar Disable Internet URL.
Masuk ke Konsol API Gateway dan beralih ke wilayah tempat fungsi HTTP berada.
Buat grup dan API.
Buat API untuk memungkinkan aplikasi eksternal memanggil layanan fungsi internal dengan cara tertentu. Gunakan grup API untuk mengorganisasi dan mengelola beberapa operasi API terkait. Hal ini mempermudah penerapan kebijakan keamanan terpadu dan pengaturan trafik.
Di Konsol API Gateway, pilih Manage APIs > API Groups di panel navigasi kiri. Lalu, klik Create Group.
Di kotak dialog Create Group, pilih Instances:. Atur Group Name menjadi
FC-Groupdan BasePath menjadi/. Lalu, klik Confirm.Di kolom Actions grup yang dituju, klik Manage APIs. Lalu, klik Create API. Di bagian Basic Information, konfigurasikan parameter berikut dan klik Next.

Di bagian Define API Request, atur Request Path menjadi
/, pertahankan nilai default untuk parameter lain, lalu klik Next.
Di bagian Define Backend Service, atur Trigger Path menjadi titik akhir pribadi pemicu Function Compute, yaitu
https://example.cn-hangzhou-vpc.fcapp.run. Konfigurasikan parameter seperti yang ditunjukkan pada gambar, lalu klik Next.
Di bagian Define Response, pertahankan konfigurasi default dan klik Create. Setelah API dibuat, klik Publish di kolom Actions API tersebut.
Debug API. Gunakan alat debugging online yang disediakan oleh API Gateway untuk menguji apakah API berfungsi sesuai harapan sebelum dipublikasikan. Hal ini membantu Anda mengidentifikasi dan menyelesaikan masalah dengan cepat. Jika debugging berhasil, berarti API Gateway telah terhubung ke Function Compute.
Di Konsol API Gateway, pilih Call APIs > Debug di panel navigasi kiri.
Di halaman Debug, pilih API
FC-testyang telah Anda buat dan klik Send Request. Jika informasi seperti pada gambar berikut dikembalikan, konfigurasi berhasil.
Buat plugin jenis Backend Signature. Atur
keymenjadiAccessKey IDAnda dansecretmenjadiAccessKey secretAnda. Lalu, bind plugin tersebut ke API yang telah Anda buat. Untuk informasi selengkapnya, lihat Plug-in overview.
Lakukan resolusi nama domain Anda ke domain tingkat kedua yang disediakan oleh API Gateway menggunakan rekaman CNAME.
Di Konsol API Gateway, pilih Manage APIs > API Groups di panel navigasi kiri. Salin domain tingkat kedua publik.

Buka halaman manajemen resolusi nama domain Anda. Untuk Alibaba Cloud, halaman manajemen resolusi nama domain berada di https://dnsnext.console.alibabacloud.com. Di halaman daftar domain, temukan domain yang ingin Anda kelola dan klik tautan pada nama domain tersebut untuk membuka halaman manajemennya.
CatatanNama domain independen di Tiongkok daratan harus memiliki Pendaftaran ICP dari Alibaba Cloud atau mentransfer Pendaftaran ICP-nya ke Alibaba Cloud.
Di Konsol API Gateway, pilih Manage APIs > API Groups di panel navigasi kiri. Buka bagian Independent Domains. Di pojok kanan bawah halaman, temukan tombol untuk bind domain. Klik tombol tersebut, masukkan nama domain Anda, lalu klik OK. Nama domain berhasil di-bind.

Setelah menyelesaikan langkah-langkah ini, Anda dapat mengakses fungsi HTTP melalui nama domain Anda sendiri. Anda juga dapat membuat dan mengikat plugin berikut ke API Anda untuk melindungi fungsi HTTP Anda.
Atasi kesalahan
Kesalahan terbagi menjadi dua kategori 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 mengatasi masalah dengan cepat.
Error Type | HTTP Status Code | Cause Analysis | Billed |
Request error | 400 | Permintaan Anda melebihi batas permintaan. Untuk informasi selengkapnya, lihat HTTP trigger overview. | No |
400 | Permintaan untuk memanggil fungsi yang memerlukan autentikasi tidak berisi informasi Date atau Authorization. | No | |
403 | Signature permintaan untuk memanggil fungsi yang memerlukan autentikasi salah. Artinya, Authorization salah. Karena Date digunakan dalam perhitungan tanda tangan dan tanda tangan hanya berlaku selama 15 menit, tanda tangan tersebut dapat kedaluwarsa. Penyebab umumnya adalah Date yang dikirim dalam header permintaan untuk pemicu HTTP yang memerlukan autentikasi berbeda lebih dari 15 menit dari waktu saat ini, sehingga tanda tangan kedaluwarsa. | No | |
403 | Permintaan Anda menggunakan metode permintaan yang tidak dikonfigurasi dalam pemicu HTTP. Misalnya, pemicu HTTP dikonfigurasi hanya menerima permintaan GET, tetapi permintaan POST dikirim. | No | |
404 | Permintaan HTTP dikirim ke fungsi yang tidak memiliki pemicu HTTP. | No | |
User throttling | 429 | Anda mengalami pembatasan kecepatan. Anda dapat mengurangi tingkat konkurensi atau menghubungi tim pengembang Function Compute untuk meningkatkan batas konkurensi Anda. | No |
Function error | 502 | Nilai kembali fungsi melebihi batas respons. Untuk informasi selengkapnya, lihat HTTP trigger overview. | Yes |
502 | Kode fungsi memiliki kesalahan sintaksis atau exception. | Yes | |
502 | Permintaan HTTP dikirim ke fungsi yang tidak menggunakan penanganan HTTP. | Yes | |
System error | 500 | Function Compute mengalami kesalahan sistem. Anda dapat mencoba kembali operasi tersebut. | No |
System throttling | 503 | Kesalahan pembatasan kecepatan sistem Function Compute. Anda dapat mencoba lagi dengan mode exponential backoff. | No |
Jika masalah berlanjut, bergabunglah dengan grup DingTalk (ID: 64970014484) untuk menghubungi insinyur Function Compute guna mendapatkan dukungan..