全部产品
Search
文档中心

Serverless App Engine:Menyebarkan aplikasi menggunakan paket kode

更新时间:Jul 06, 2025

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

Open source Dragonwell 21

Dragonwell 17

2022-07-11

17.0.3.0.3+7

CentOS Linux release 7.9.2009

Ya

Ya

Open source Dragonwell 17

Dragonwell 11

2021-08-27

11.0.10.10-AJDK

CentOS Linux release 7.9.2009

Tidak

Ya

  • Memperbarui Dragonwell dan OpenJDK.

  • Memperbarui sistem operasi.

  • Menambahkan dukungan untuk font Cina dan Inggris.

  • Mengoptimalkan kecepatan startup secara signifikan.

2020-09-27

Open source Dragonwell 11

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

  • Memperbarui Dragonwell dan OpenJDK.

  • Memperbarui sistem operasi.

  • Menambahkan dukungan untuk font Cina dan Inggris.

  • Mengoptimalkan kecepatan startup secara signifikan.

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:

  • telnet: Perintah telnet dalam gambar alpine tidak mendukung parameter -e.

  • curl

  • wget

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:

  • telnet: Perintah telnet dalam gambar alpine tidak mendukung parameter -e.

  • curl

  • wget

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

  • Mendukung font preset.

  • Mendukung ekstensi PHP default.

  • Mendukung repositori ekstensi PHP PECL.

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 situs NGINX default, yang sesuai dengan direktori ./nginx/ dalam paket demo.

  • Mendukung konfigurasi server {} NGINX. Untuk informasi lebih lanjut, lihat ngx_http_core_module.

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

PHP_INI_DIR.

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 http {}. Secara default, konfigurasi http {} merujuk pada konfigurasi /home/admin/app/nginx/. Untuk informasi tentang cara memodifikasi konfigurasi, lihat Kelola dan gunakan item konfigurasi (K8s ConfigMap).

Ekstensi bawaan

Lingkungan PHP yang disediakan oleh SAE mendukung ekstensi berikut:

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

www-data www-data

Default PHP, path file konfigurasi adalah /usr/local/etc/php-fpm.conf.

NGINX

Proses

www-data www-data

Default NGINX, path file konfigurasi adalah /etc/nginx/nginx.conf.

Direktori file

Direktori

root root

Direktori tempat paket kode diterapkan, direktori konfigurasinya adalah /home/admin/app/. Lihat contoh berikut:

drwxrwxrwx 2 root root 4096 May 13  2021 nginx
drwxrwxrwx 1 root root 4096 Apr  8 11:45 php
Penting

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 -m

Contoh 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 OPcache

PECL 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 OPcache

PECL 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 OPcache

PECL 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 OPcache

PECL 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 OPcache

PECL 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 OPcache

PECL 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]
Xdebug

Instal 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.

  1. Buat aplikasi SAE dengan PHP 7.3 sebagai lingkungan runtime.

  2. Aktifkan akses Internet.

  3. 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 install
  4. Unduh 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.so
  5. Sertakan ekstensi dalam paket ZIP aplikasi. Struktur paket ZIP:

    .
    ├── nginx
    │ ├── default.conf
    │ ├── fastcgi_params
    │ ├── global
    │ └── root.dir
    ├── php
    │ ├── index.php
    └── extensions
     └── yaml.so
  6. Sebarkan aplikasi, unggah paket ZIP yang berisi ekstensi, lalu tambahkan konfigurasi ekstensi ke file php.ini untuk mengaktifkan ekstensi.

    extension=/home/admin/app/extensions/yaml.so
  7. Masuk 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

80

PHP-FPM

127.0.0.1:9000

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/2
  • Log 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 => 1024
  • Jika 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=0

Penyimpanan 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 panas

Restart 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 reload
    • Restart 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).

Python

Lingkungan runtime

Waktu pembaruan

Versi sistem operasi

Deskripsi

Python 3.9.15

2022-10-11

Debian 11.0

Python 3.9.15

.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)

  • Microsoft.AspNetCore.App 3.1.32

  • Microsoft.NETCore.App 3.1.32

5.0

mcr.microsoft.com/dotnet/aspnet:5.0

Debian GNU/Linux 10 (buster)

  • Microsoft.AspNetCore.App 5.0.17

  • Microsoft.NETCore.App 5.0.17

6.0

mcr.microsoft.com/dotnet/aspnet:6.0

Debian GNU/Linux 11 (bullseye)

  • Microsoft.AspNetCore.App 6.0.33

  • Microsoft.NETCore.App 6.0.33

7.0

mcr.microsoft.com/dotnet/aspnet:7.0

Debian GNU/Linux 11 (bullseye)

  • Microsoft.AspNetCore.App 7.0.20

  • Microsoft.NETCore.App 7.0.20

8.0

mcr.microsoft.com/dotnet/aspnet:8.0

Debian GNU/Linux 12 (bookworm)

  • Microsoft.AspNetCore.App 8.0.8

  • Microsoft.NETCore.App 8.0.8