Function Compute menetapkan subdomain fcapp.run ke pemicu HTTP baru. Anda dapat menggunakan nama domain ini untuk mengakses aplikasi RESTful Anda. Topik ini menjelaskan cara menggunakan fcapp.run untuk mengakses aplikasi RESTful tanpa memodifikasi kode.
Latar Belakang
Function Compute mendukung pemicu HTTP, yang memungkinkan fungsi dipanggil melalui permintaan HTTP. Function Compute menggunakan komponen server API bersama untuk menanggapi pemanggilan pemicu HTTP. Saat memanggil suatu fungsi, jalur dalam URL digunakan untuk mengarahkan lalu lintas pelanggan ke kontainer fungsi milik pelanggan. Jalur permintaan HTTP yang diterima di dalam kontainer berisi pengenal rute dari Function Compute. Jika Anda menerapkan aplikasi RESTful di Function Compute, kesalahan 404 akan dilaporkan.
Awalnya, Function Compute menyediakan arsitektur RESTful asli di mana setiap fungsi berfungsi sebagai sumber daya independen. Dalam hal ini, setiap fungsi bertindak sebagai Operasi API untuk melaksanakan tugas tertentu. Jika suatu fungsi hanya sesuai dengan satu Operasi API, Anda tidak perlu menggunakan serangkaian logika perutean dalam kode fungsi untuk menanggapi permintaan dari jalur URL yang berbeda.
Function Compute telah memperkenalkan runtime kustom dan runtime Kontainer Kustom untuk fungsi. Anda dapat menjalankan aplikasi yang ada di Function Compute tanpa harus membagi aplikasi berdasarkan arsitektur yang direkomendasikan di Function Compute. Pengembang cenderung mengembangkan sejumlah besar operasi API RESTful dalam program. Logika perutean dalam-proses digunakan untuk meneruskan permintaan dari jalur yang berbeda sehingga permintaan tersebut diproses dengan metode yang berbeda.
Gunakan fcapp.run untuk memanggil fungsi
Function Compute menetapkan setiap pemicu HTTP yang baru dibuat dengan nama domain terpisah dalam format berikut: {random_string}.{region_id}.fcapp.run. Saat menggunakan nama domain untuk mengakses Function Compute, Function Compute merutekan lalu lintas berdasarkan nama domain dan meneruskan lalu lintas ke kontainer fungsi. Dengan cara ini, perutean tidak bergantung pada jalur, dan kode pelanggan tidak terpengaruh.
Sebagai contoh, jika API /function1, /function2, dan /function3 dienkapsulasi dalam fungsi yang sesuai dengan pemicu HTTP, URL berikut dipanggil oleh fcapp.run:
{random_string}.{region_id}.fcapp.run/function1{random_string}.{region_id}.fcapp.run/function2{random_string}.{region_id}.fcapp.run/function3
Gunakan fcapp-test.run untuk men-debug halaman web pada mesin lokal
Domain root untuk Function Compute adalah aliyuncs.com, yang tidak dapat digunakan untuk menyediakan layanan situs web. Semua hasil permintaan fungsi diunduh sebagai lampiran di browser. Untuk fungsi halaman web, teks HTML dan kode JavaScript yang dikembalikan tidak dapat ditampilkan seperti yang diharapkan. Dalam hal ini, Anda dapat menyelesaikan masalah ini dengan mengikat nama domain kustom yang telah memperoleh pengisian ICP untuk fungsi tersebut. Untuk informasi lebih lanjut, lihat Ikhtisar.
Anda juga dapat menyelesaikan masalah di atas dengan menggunakan domain uji fcapp-test.run dan menambahkan entri resolusi domain ke file hosts. Kemudian, hasil permintaan tidak lagi diunduh sebagai lampiran dan Anda dapat melakukan debugging pada halaman web seperti yang diharapkan. Contoh kode berikut memberikan contoh skrip:
# 1. Dapatkan nama domain fcapp.run dari halaman.
FC_DOMAIN='serviceName-functionName-vtnazzbxrr.cn-hangzhou.fcapp.run'
FC_TEST_DOMAIN=`echo ${FC_DOMAIN} | sed 's/fcapp.run/fcapp-test.run/g'`
echo "Nama domain Function Compute: ${FC_DOMAIN}"
echo "Nama domain uji Function Compute: ${FC_TEST_DOMAIN}"
# 2. Periksa alamat IP yang diperoleh setelah resolusi nama domain.
FC_IP=`ping ${FC_DOMAIN} -c 1 | HEAD -1 | awk '{print $3}' | sed 's/[():]//g'`
echo "IP FC: ${FC_IP}"
# 3. Ubah file hosts untuk menyelesaikan nama domain uji ke alamat IP untuk fcapp.run.
# Jika Anda tidak memiliki izin, Anda perlu menambahkan konten secara manual.
sudo -- sh -c "printf '\n${FC_IP} ${FC_TEST_DOMAIN}\n' >> /etc/hosts"
cat /etc/hosts
# 4. Gunakan nama domain uji untuk mengakses fungsi di browser.
curl -v "${FC_TEST_DOMAIN}"
Gunakan Function Compute untuk menjalankan gambar WordPress
Function Compute memungkinkan Anda memigrasikan aplikasi RESTful Anda tanpa memodifikasi kode. Dalam bagian ini, aplikasi WordPress dimigrasikan.
Sebelum Anda mulai
Function Compute
ApsaraDB RDS
CatatanAnda juga dapat menggunakan instance ApsaraDB RDS for MySQL yang ada dan menginisialisasi akun dan database untuk layanan WordPress.
Saat membuat instance ApsaraDB RDS for MySQL, pastikan bahwa VPC yang dikonfigurasikan untuk instance sama dengan layanan di Function Compute, dan blok CIDR dari vSwitch yang dikonfigurasikan untuk layanan di Function Compute ditambahkan ke daftar putih. Untuk informasi lebih lanjut tentang pengaturan jaringan Function Compute, lihat Konfigurasikan pengaturan jaringan. Untuk informasi lebih lanjut tentang cara mengonfigurasi daftar putih alamat IP untuk instance ApsaraDB RDS for MySQL, lihat Langkah 1: Konfigurasikan daftar putih alamat IP untuk database.
Container Registry
Tarik gambar WordPress dan dorong gambar ke repositori Alibaba Cloud Container Registry. Untuk informasi lebih lanjut, lihat Dorong gambar ke dan tarik gambar dari repositori gambar instance Personal Edition Container Registry.
CatatanAnda dapat mendorong dan menarik gambar menggunakan instance Personal Edition atau Enterprise Edition Container Registry. Dalam bagian ini, instance Personal Edition Container Registry digunakan sebagai contoh.
Prosedur
Masuk ke Konsol Manajemen Function Compute. Di bilah navigasi di sebelah kiri, klik Services & Functions.
Di bilah navigasi atas, pilih wilayah. Di halaman Services, klik layanan yang diinginkan.
Di halaman Functions, klik Create Function dan pilih Use Container Image. Konfigurasikan parameter dan klik Create.
Pilih gambar WordPress dan atur Listening Port ke 80. Untuk informasi lebih lanjut, lihat Buat fungsi Custom Container.

Ubah konfigurasi fungsi dan injeksikan konfigurasi database ke dalam kontainer fungsi dalam bentuk variabel lingkungan.
Untuk informasi lebih lanjut tentang cara mengonfigurasi variabel lingkungan, lihat Variabel lingkungan.

Pemetaan antara variabel lingkungan dan konfigurasi database adalah sebagai berikut:
WORDPRESS_DB_HOST: titik akhir internal dari database yang Anda buat untuk instance ApsaraDB RDS for MySQL.
WORDPRESS_DB_NAME: akun database yang Anda buat.
WORDPRESS_DB_PASSWORD: kata sandi dari akun database yang Anda buat.
WORDPRESS_DB_USER: Nama database yang Anda buat.
Masukkan nama domain yang ditetapkan oleh Function Compute ke pemicu HTTP di bilah alamat browser untuk menguji fungsi tersebut.
Setelah fungsi dibuat, Function Compute secara otomatis membuat pemicu HTTP. Anda dapat memperoleh nama domain dari konfigurasi pemicu. API yang sesuai dengan aplikasi WordPress dipanggil menggunakan nama domain sebagai jalur root.
Klik alamat berikut sebelum Anda menggunakannya untuk pengujian. Di panel yang muncul, klik untuk mengunduh skrip konfigurasi yang sesuai dengan sistem lokal dan jalankan skrip tersebut. Anda hanya dapat mengakses alamat melalui browser setelah menjalankan skrip.


Referensi
Anda dapat menggunakan subdomain sebagai URL pemicu HTTP untuk menguji fungsi. Ini mencegah kesalahan 404. Untuk informasi lebih lanjut, lihat Apa yang harus saya lakukan jika terjadi kesalahan 404 saat saya menggunakan browser atau alat cURL untuk mengakses fungsi?
Layanan situs web hanya dapat disediakan menggunakan nama domain yang telah memperoleh pengisian ICP. Anda dapat mengonfigurasi nama domain kustom, mengikat nama domain ke fungsi Anda, dan kemudian menggunakan nama domain untuk menyediakan layanan. Untuk informasi lebih lanjut, lihat Konfigurasikan nama domain kustom.