Saat menyebarkan aplikasi menggunakan paket kode, Serverless App Engine (SAE) mendukung tumpukan teknologi dan lingkungan runtime berikut. Sebelum penyebaran, Anda perlu membuat paket kode yang memenuhi persyaratan SAE. Jika bahasa tumpukan teknologi dan lingkungan runtime Anda tidak terdaftar di bawah ini, Anda perlu menyebarkan aplikasi menggunakan gambar.
Java
Lingkungan runtime | Waktu pembaruan | Versi JDK | Versi sistem operasi | Open source | Dikelola | Deskripsi |
Dragonwell 21 | 2024-07-18 | 21.0.3.0.3+9 | CentOS Linux release 7.9.2009 | Ya | Ya | |
Dragonwell 17 | 2022-07-11 | 17.0.3.0.3+7 | CentOS Linux release 7.9.2009 | Ya | Ya | |
Dragonwell 11 | 2021-08-27 | 11.0.10.10-AJDK | CentOS Linux release 7.9.2009 | Tidak | Ya |
|
2020-09-27 | ||||||
Dragonwell 8 | 2021-10-18 | 1.8.0_302 | CentOS Linux release 7.9.2009 | Ya | Ya | Memperbaiki masalah sesekali penggunaan CPU tinggi. |
2021-08-27 |
| |||||
2020-09-27 | Mengaktifkan fitur seperti Wisp coroutine dan pemeriksaan kompatibilitas mandiri dengan klien NIO Netty. Untuk informasi lebih lanjut, lihat Open source Dragonwell 8. | |||||
OpenJDK 8 | 2019-06-19 | 1.8.0_191 | CentOS Linux release 7.6.1810 | Ya | Tidak | Tidak ada |
OpenJDK 7 | 2019-02-25 | 1.7.0_201 | CentOS Linux release 7.6.1810 | Ya | Tidak | Tidak ada |
openjdk-8u191-jdk-alpine3.9 | 2019-02-25 | 1.8.0_191 | alpine 3.9.2 | Ya | Tidak | Beberapa perintah dalam gambar alpine berbeda dari yang ada di CentOS. Contohnya:
|
openjdk-7u201-jdk-alpine3.9 | 2019-02-25 | 1.7.0_201 | alpine 3.9.2 | Ya | Tidak | Beberapa perintah dalam gambar alpine berbeda dari yang ada di CentOS. Contohnya:
|
PHP
Pengenalan runtime
Aplikasi online: NGINX dengan PHP-FPM
SAE menyediakan lingkungan runtime LNMP (Linux+NGINX+MySQL+PHP) untuk aplikasi web PHP, mencakup:
Gambar dasar default PHP FastCGI Process Manager (FPM).
NGINX.
Ekstensi PHP umum.
Jika aplikasi Anda membutuhkan lebih banyak sumber daya, Anda dapat menggunakan layanan Alibaba Cloud berikut:
Pemantauan aplikasi: ARMS
Untuk aplikasi SAE dengan versi PHP 5.4 hingga 7.3, Anda dapat mengaktifkan pemantauan aplikasi untuk mendapatkan informasi pemantauan yang lebih rinci seperti jejak rantai panggilan aplikasi dan latensi akses sumber daya untuk ApsaraDB RDS MySQL dan Tair (Redis OSS-compatible).Untuk informasi lebih lanjut, lihat Ikhtisar pemantauan aplikasi ARMS.
Deskripsi runtime PHP
Versi perangkat lunak
Tabel berikut menjelaskan lingkungan runtime PHP yang tersedia. Jika Anda membutuhkan versi PHP yang lebih tinggi, silakan bergabung dengan grup DingTalk (Nomor Grup: 32874633) untuk berkonsultasi dengan ahli teknis produk.
Lingkungan runtime | Waktu pembaruan | Versi PHP | Versi NGINX | Versi sistem operasi | Deskripsi |
PHP-FPM 7.3 | 2021-12-27 | 7.3.32 | 1.18.0 | Debian 11.0 |
|
PHP-FPM 7.2 | 2021-09-17 | 7.2.34 | 1.18.0 | Debian 10.7 | Tidak ada |
PHP-FPM 7.1 | 2021-09-17 | 7.1.33 | 1.18.0 | Debian 10.2 | Tidak ada |
PHP-FPM 7.0 | 2021-09-17 | 7.0.33 | 1.18.0 | Debian 9.6 | Tidak ada |
PHP-FPM 5.6 | 2021-09-17 | 5.6.40 | 1.18.0 | Debian 9.6 | Tidak ada |
PHP-FPM 5.5 | 2021-09-17 | 5.5.38 | 1.18.0 | Debian 8.5 | Tidak ada |
PHP-FPM 5.4 | 2021-09-17 | 5.4.45 | 1.18.0 | Debian 8.2 | Tidak ada |
Direktori sistem
Lingkungan PHP SAE menggunakan direktori berikut secara default untuk penyebaran paket aplikasi:
Tipe | Path | Deskripsi |
Direktori | /home/admin/app/ | Direktori default tempat paket aplikasi diterapkan. |
Direktori | /home/admin/app/nginx/ |
|
Direktori | /home/admin/app/php/ | Direktori aplikasi PHP default, yang sesuai dengan direktori ./php/ dalam paket demo. |
File | /usr/local/etc/php.ini | Path konfigurasi php.ini yang direkomendasikan untuk SAE. Untuk informasi lebih lanjut, lihat Konfigurasikan file konfigurasi aplikasi PHP. |
Tabel berikut menjelaskan konfigurasi default PHP-FPM:
Tipe | Path | Deskripsi |
Direktori | /usr/local/etc/php |
|
Direktori | /usr/local/etc/php/conf.d/ | Direktori tempat ekstensi PHP disimpan. Secara default, ekstensi tersebut termasuk dalam file .ini. |
File | /usr/local/etc/php-fpm.conf | File konfigurasi default untuk PHP-FPM. Untuk informasi lebih lanjut, lihat FastCGI Process Manager (FPM). Untuk informasi tentang cara memodifikasi konfigurasi, lihat Kelola dan gunakan item konfigurasi (K8s ConfigMap). |
Tabel berikut menjelaskan konfigurasi default NGINX:
Tipe | Path | Deskripsi |
File | /usr/sbin/nginx | Direktori NGINX. |
Direktori | /etc/nginx/ | Direktori konfigurasi default NGINX. |
File | /etc/nginx/nginx.conf | File konfigurasi default NGINX nginx.conf, yang mencakup konfigurasi |
Ekstensi bawaan
Lingkungan PHP yang disediakan oleh SAE mendukung ekstensi berikut:
Ekstensi PHP default: Dirilis dengan pembaruan versi PHP.
Ekstensi komunitas PHP PECL: Dirilis secara independen dan dikelola oleh komunitas.
Izin terkait
Secara default, PHP-FPM dan NGINX menggunakan pengguna www-data untuk menjalankan aplikasi. Tabel berikut menjelaskan izin.
Layanan | Grup Pengguna Izin | Deskripsi |
PHP-FPM | Proses | Default PHP, path file konfigurasi adalah /usr/local/etc/php-fpm.conf. |
NGINX | Proses | Default NGINX, path file konfigurasi adalah /etc/nginx/nginx.conf. |
Direktori file | Direktori | Direktori tempat paket kode diterapkan, direktori konfigurasinya adalah /home/admin/app/. Lihat contoh berikut: |
Kami menyarankan Anda untuk mempertahankan pengguna ini agar mencegah kegagalan aplikasi.
Dukungan ekstensi PHP
Ekstensi default dan PECL
Anda dapat mengonfigurasi file php.ini untuk menentukan ekstensi bawaan saat Anda menyebarkan aplikasi, termasuk ekstensi PHP default dan ekstensi PECL. Untuk informasi lebih lanjut, lihat Konfigurasikan file konfigurasi aplikasi PHP.
Jalankan perintah berikut di webshell untuk melihat ekstensi bawaan. Untuk informasi tentang cara membuka webshell, lihat Lihat webshell.
php -mContoh ekstensi bawaan yang didukung oleh berbagai lingkungan runtime:
PECL 7.3
[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
mcrypt
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib
[Zend Modules]
Xdebug
Zend OPcachePECL 7.2
[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
mcrypt
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib
[Zend Modules]
Xdebug
Zend OPcachePECL 7.1
[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
mcrypt
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib
[Zend Modules]
Xdebug
Zend OPcachePECL 7.0
[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib
[Zend Modules]
Xdebug
Zend OPcachePECL 5.6
[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib
[Zend Modules]
Xdebug
Zend OPcachePECL 5.5
[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib
[Zend Modules]
Xdebug
Zend OPcachePECL 5.4
[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
recode
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
zip
zlib
[Zend Modules]
XdebugInstal ekstensi melalui konsol dan API
Anda dapat mengaktifkan ekstensi PHP default atau menginstal versi tertentu dari ekstensi PECL melalui konsol SAE atau API. Untuk informasi lebih lanjut, lihat Menyebarkan aplikasi PHP.
Instal ekstensi pihak ketiga
Berikut ini menjelaskan cara menginstal ekstensi pihak ketiga dengan mengompilasi file YAML yang berisi kode sumber dalam PHP-FPM 7.3.
Buat aplikasi SAE dengan PHP 7.3 sebagai lingkungan runtime.
Aktifkan akses Internet.
Masuk ke instance menggunakan webshell, dan jalankan perintah berikut untuk mengompilasi dan menginstal ekstensi:
# Dapatkan kode sumber wget https://pecl.php.net/get/yaml-2.2.2.tgz tar -zxvf yaml-2.2.2.tgz # Kompilasi dan instal ekstensi cd yaml-2.2.2 && \ phpize && \ ./configure && \ make && make installUnduh ekstensi ke mesin lokal Anda. Untuk informasi lebih lanjut, lihat Unggah dan unduh file untuk mendiagnosis aplikasi melalui log.
Direktori ekstensi:
/home/admin/yaml-2.2.2/modules/yaml.soSertakan ekstensi dalam paket ZIP aplikasi. Struktur paket ZIP:
. ├── nginx │ ├── default.conf │ ├── fastcgi_params │ ├── global │ └── root.dir ├── php │ ├── index.php └── extensions └── yaml.soSebarkan aplikasi, unggah paket ZIP yang berisi ekstensi, lalu tambahkan konfigurasi ekstensi ke file php.ini untuk mengaktifkan ekstensi.
extension=/home/admin/app/extensions/yaml.soMasuk ke instance menggunakan webshell dan periksa apakah ekstensi telah dimuat.
# php -m | grep yaml yaml
Konfigurasi umum
Port layanan default
Tabel berikut menjelaskan port layanan default NGINX dan PHP-FPM yang dikonfigurasi oleh SAE:
Program | Port |
NGINX |
|
PHP-FPM |
|
Log PHP-FPM: output standar
Log PHP-FPM terkandung dalam log real-time. Contoh kode berikut memberikan contoh konfigurasi log dalam file /usr/local/etc/php-fpm.d/docker.conf:
[global] error_log = /proc/self/fd/2 log_limit = 8192 [www] access.log = /proc/self/fd/2Log kesalahan PHP tidak ditampilkan. Contoh kode berikut memberikan contoh konfigurasi log dalam file php.ini.
error_log => no value => no value log_errors => Off => Off log_errors_max_len => 1024 => 1024Jika Anda ingin menyertakan log kesalahan dalam log real-time, Anda harus mengonfigurasi file php.ini saat membuat atau menyebarkan aplikasi. Anda harus menentukan direktori berikut untuk menyimpan log kesalahan:
log_errors = on error_log = /proc/self/fd/2
Log NGINX: output standar
Log NGINX terkandung dalam log real-time. Contoh kode berikut memberikan contoh konfigurasi log dalam file ./nginx/default.conf:
#access_log /dev/stdout; error_log stderr;Anda dapat mengaktifkan
access_log. Secara default, log terkandung dalam log real-time.
Penyimpanan file: file statis, gambar, dan media
Anda dapat mengonfigurasi file php.ini untuk menentukan apakah akan mengaktifkan OPcache untuk PHP. SAE mengaktifkan OPcache secara default. Untuk informasi lebih lanjut tentang konfigurasi, lihat Konfigurasi runtime OPcache.
Aktifkan OPcache: Opsi ini cocok untuk situs web online untuk mempercepat eksekusi kode dan mengurangi input/output disk (I/O).
Nonaktifkan OPcache: Opsi ini cocok untuk skenario debugging. Modifikasi kode dapat langsung berlaku.
Contoh kode berikut memberikan contoh konfigurasi php.ini:
; Aktifkan OPcache
opcache.enable=1
; Nonaktifkan OPcache
;opcache.enable=0Penyimpanan file: kode PHP
Anda dapat mengaktifkan atau menonaktifkan caching di NGINX untuk banyak file statis, seperti gambar, video, Cascading Style Sheets (CSS), dan file JavaScript. Untuk informasi lebih lanjut tentang konfigurasi, lihat Modul ngx_http_headers_module.
Aktifkan caching sumber daya statis: Opsi ini cocok untuk layanan dan situs web online yang memuat banyak file media. Ini meningkatkan throughput lalu lintas dan mengurangi operasi pembacaan input/output per detik (IOPS).
Nonaktifkan caching sumber daya statis: Opsi ini cocok untuk debugging jarak jauh, unggah dan unduh, serta skenario penggunaan lainnya. Anda dapat mengakses file secara real-time.
Contoh kode berikut memberikan contoh konfigurasi ./nginx/default.conf:
# Caching sumber daya statis
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
# Nonaktifkan caching
#expires off;
# Aktifkan caching
expires 1s;
}Fitur yang ditingkatkan
Restart layanan panasRestart layanan panas
ConfigMap memungkinkan Anda memodifikasi konfigurasi tanpa mengganggu layanan.
Webshell memungkinkan Anda me-restart layanan tanpa mengganggu operasi.
Restart panas NGINX
# Uji validitas file konfigurasi nginx -t # Restart NGINX tanpa gangguan layanan nginx -s reloadRestart panas PHP-FPM (Ada kemungkinan terjadinya gangguan aliran. Anda perlu memeriksa konfigurasi php.ini.)
ps uax | grep 'php-fpm: master' | grep -v grep | awk '{print $2}' | xargs kill -USR2
Unggah dan unduh
SAE menyediakan beberapa metode untuk mengunggah dan mengunduh file. Anda dapat memilih salah satu metode berikut sesuai dengan kebutuhan bisnis Anda:
Gunakan konsol SAE: Anda dapat mengunggah dan mengunduh file untuk debugging. Ukuran file tidak boleh melebihi 10 MB. Untuk informasi lebih lanjut, lihat Gunakan fitur webshell untuk mengunggah dan mengunduh file.
Gunakan konsol SAE: Anda dapat melakukan debugging jarak jauh.
Gunakan penyimpanan persisten: Apsara File Storage NAS atau Object Storage Service (OSS).
Saat Anda menyebarkan aplikasi, Anda dapat memasang NAS atau OSS dan berbagi direktori file.
Unggah dan unduh NAS: Alat Serverless Devs.
Unggah dan unduh OSS: Konsol OSS.
Unggah dan unduh OSS: Alat ossutil.
Python
Lingkungan runtime | Waktu pembaruan | Versi sistem operasi | Deskripsi |
Python 3.9.15 | 2022-10-11 | Debian 11.0 |
.NET Core
Untuk mempermudah pengembangan dan penyebaran, gambar dasar SAE dibangun di atas gambar dasar .NET resmi dan telah dilengkapi dengan alat pemecahan masalah umum serta paket font yang telah dikonfigurasi sebelumnya.
Versi | Gambar dasar | Sistem operasi | Runtime |
3.1 | mcr.microsoft.com/dotnet/aspnet:3.1 | Debian GNU/Linux 10 (buster) |
|
5.0 | mcr.microsoft.com/dotnet/aspnet:5.0 | Debian GNU/Linux 10 (buster) |
|
6.0 | mcr.microsoft.com/dotnet/aspnet:6.0 | Debian GNU/Linux 11 (bullseye) |
|
7.0 | mcr.microsoft.com/dotnet/aspnet:7.0 | Debian GNU/Linux 11 (bullseye) |
|
8.0 | mcr.microsoft.com/dotnet/aspnet:8.0 | Debian GNU/Linux 12 (bookworm) |
|