Topik ini menjelaskan waktu proses PHP yang digunakan untuk menulis kode fungsi di Function Compute.
Waktu proses PHP
Function Compute mendukung waktu proses PHP berikut:
Versi | Sistem operasi | Arsitektur |
PHP 7.2 | Linux | x86_64 |
Paket PHP bawaan
Function Compute menyediakan paket bawaan berikut untuk waktu proses PHP.
Paket | Versi | Deskripsi |
oss | v2.4.3 | |
tablestore | v4.1.1 | |
mns | v1.3.5.5 | |
fc | v1.2.1 |
Ekstensi PHP bawaan
Built-in extensions
Untuk melihat dan mencetak informasi tentang ekstensi PHP yang terpasang, Anda dapat menyertakan print_r(get_loaded_extensions()); dalam kode fungsi yang ingin dikelola.
bcmath | bz2 | calendar | Core |
ctype | curl | date | dom |
exif | fileinfo | filter | ftp |
gd | gettext | gmp | hash |
iconv | imagick | json | libxml |
mbstring | memcached | mysqli | mysqlnd |
openSSL | pcntl | pcre | PDO |
pdo_mysql | Phar | posix | protobuf |
readline | redis | Reflection | session |
shmop | SimpleXML | soap | sockets |
SPL | standard | sysvmsg | sysvsem |
sysvshm | tokenizer | Xdebug | xml |
xmlreader | xmlrpc | xmlwriter | Zend OPcache |
zip | zlib | Tidak ada | Tidak ada |
Example
Contoh kode berikut menggunakan json untuk mengurai string JSON dan mengembalikan konten yang telah diuraikan ke stdout.
<?php
function handler($event, $context) {
var_dump(json_decode('{"a":123, "b":true, "c":"abcd", "d":{"a":123}}', true));
return "bye";
} Instal ekstensi PHP non-bawaan
Untuk menginstal ekstensi non-bawaan untuk waktu proses PHP, ikuti langkah-langkah berikut. Bagian ini menggunakan MongoDB sebagai contoh.
Prerequisites
Docker sudah terinstal. Untuk informasi lebih lanjut, lihat bagian "Instal Docker" dari topik Instal Serverless Devs dan Docker.
Fungsi dengan waktu proses PHP sudah dibuat. Untuk informasi lebih lanjut, lihat bagian "Buat Fungsi" dari topik Kelola Fungsi.
Procedure
Jalankan perintah berikut di direktori proyek untuk memulai gambar waktu proses PHP dan mount direktori saat ini ke direktori /code:
sudo docker run -v $(pwd):/code -it --entrypoint="" registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-php7.2:latest bashCatatanJika komputer Anda menjalankan Windows, Anda dapat mengganti
$(pwd)dengan direktori absolut tertentu.Instal ekstensi MongoDB dan salin tempel file mongodb.so ke direktori /code.
Jalankan perintah berikut untuk menginstal ekstensi MongoDB di dalam container:
pecl install mongodbJalankan perintah berikut untuk menemukan ekstensi .zip:
find /usr -name "mongodb.so"Jalankan perintah berikut untuk menyalin file ekstensi ke direktori /code (yaitu, salin dan tempel file ke direktori di komputer Anda):
cp /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so /codeJalankan perintah berikut untuk keluar dari container:
exitJalankan perintah berikut untuk memeriksa apakah file mongodb.so ada. Jika file tersebut ada, file .so disimpan di komputer Anda.
lsOutput yang diharapkan:
mongodb.so
Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Services & Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Services, klik layanan yang diinginkan.
Pada halaman layanan yang ingin dikelola, klik fungsi yang diinginkan. Pada tab Code, buat folder bernama extension, dan folder tersebut berada di direktori yang sama dengan file handler fungsi.
Tambahkan file mongodb.so ke folder extension dan buat file mongodb.ini di folder extension.
Edit file mongodb.ini.
Tambahkan konten berikut ke file mongodb.ini dan simpan file tersebut:
extension=/code/extension/mongodb.so
Jika Anda ingin menginstal ekstensi kustom lainnya, klik tautan berikut untuk mengunduh file yang sesuai berdasarkan kebutuhan bisnis Anda: