Todos los productos
Search
Centro de documentos

Serverless App Engine:Deploy an application using a code package

Última actualización: Sep 21, 2026

Al desplegar una aplicación mediante un paquete de código, Serverless App Engine (SAE) es compatible con las siguientes pilas tecnológicas y entornos de ejecución. Antes del despliegue, debe create a code package that meets SAE requirements. Si el lenguaje de su pila tecnológica y el entorno de ejecución no aparecen a continuación, necesita deploy an application using an image.

Java

Entorno de ejecución

Fecha de actualización

Versión de JDK

Versión del sistema operativo

Código abierto

Mantenimiento activo

Descripción

Dragonwell 21

2024-07-18

21.0.3.0.3+9

CentOS Linux release 7.9.2009

Sí

Sí

Dragonwell 21 de código abierto

Dragonwell 17

2022-07-11

17.0.3.0.3+7

CentOS Linux release 7.9.2009

Sí

Sí

Dragonwell 17 de código abierto

Dragonwell 11

2021-08-27

11.0.10.10-AJDK

CentOS Linux release 7.9.2009

No

Sí

  • Se actualizaron Dragonwell y OpenJDK.

  • Se actualizó el sistema operativo.

  • Se añadió compatibilidad con fuentes en chino e inglés.

  • Se optimizó significativamente la velocidad de inicio.

2020-09-27

Dragonwell 11 de código abierto

Dragonwell 8

2021-10-18

1.8.0_302

CentOS Linux release 7.9.2009

Sí

Sí

Se corrigió el problema ocasional de alto uso de CPU.

2021-08-27

  • Se actualizaron Dragonwell y OpenJDK.

  • Se actualizó el sistema operativo.

  • Se añadió compatibilidad con fuentes en chino e inglés.

  • Se optimizó significativamente la velocidad de inicio.

2020-09-27

Se habilitaron funciones como la corrutina Wisp y la autocomprobación de compatibilidad con el cliente NIO Netty. Para más información, consulte Dragonwell 8 de código abierto.

OpenJDK 8

2019-06-19

1.8.0_191

CentOS Linux release 7.6.1810

Sí

No

Ninguna

OpenJDK 7

2019-02-25

1.7.0_201

CentOS Linux release 7.6.1810

Sí

No

Ninguna

openjdk-8u191-jdk-alpine3.9

2019-02-25

1.8.0_191

alpine 3.9.2

Sí

No

Algunos comandos de la imagen alpine difieren de los de CentOS. Por ejemplo:

  • telnet: el comando telnet en la imagen alpine no admite el parámetro -e.

  • curl

  • wget

openjdk-7u201-jdk-alpine3.9

2019-02-25

1.7.0_201

alpine 3.9.2

Sí

No

Algunos comandos de la imagen alpine difieren de los de CentOS. Por ejemplo:

  • telnet: el comando telnet en la imagen alpine no admite el parámetro -e.

  • curl

  • wget

PHP

Introducción al entorno de ejecución

Aplicaciones en producción: NGINX con PHP-FPM

SAE proporciona un entorno de ejecución LNMP (Linux+NGINX+MySQL+PHP) para aplicaciones web en PHP que incluye lo siguiente:

  • La imagen base predeterminada de PHP FastCGI Process Manager (FPM).

  • NGINX.

  • Extensiones comunes de PHP.

Si su aplicación requiere más recursos, utilice los siguientes servicios de Alibaba Cloud:

Monitoreo de aplicaciones: ARMS

En las aplicaciones de SAE con versiones de PHP de la 5.4 a la 7.3, habilite el monitoreo de aplicaciones para obtener información más detallada. Esto incluye el rastreo de la cadena de llamadas de la aplicación y la latencia de acceso a recursos para ApsaraDB RDS MySQL y Tair (compatible con Redis OSS).Para más información, consulte ARMS application monitoring overview.

Descripción del entorno de ejecución de PHP

Versiones de software

A continuación se describen los entornos de ejecución de PHP disponibles. Si necesita una versión superior del entorno de PHP, únase al grupo de DingTalk (número de grupo: 32874633) para consultar con los expertos técnicos del producto.

Entorno de ejecución

Fecha de actualización

Versión de PHP

Versión de NGINX

Versión del sistema operativo

Descripción

PHP-FPM 7.3

2021-12-27

7.3.32

1.18.0

Debian 11.0

  • Admite fuentes preconfiguradas.

  • Admite las extensiones predeterminadas de PHP.

  • Es compatible con el repositorio de extensiones PECL de PHP.

PHP-FPM 7.2

2021-09-17

7.2.34

1.18.0

Debian 10.7

Ninguna

PHP-FPM 7.1

2021-09-17

7.1.33

1.18.0

Debian 10.2

Ninguna

PHP-FPM 7.0

2021-09-17

7.0.33

1.18.0

Debian 9.6

Ninguna

PHP-FPM 5.6

2021-09-17

5.6.40

1.18.0

Debian 9.6

Ninguna

PHP-FPM 5.5

2021-09-17

5.5.38

1.18.0

Debian 8.5

Ninguna

PHP-FPM 5.4

2021-09-17

5.4.45

1.18.0

Debian 8.2

Ninguna

Directorios del sistema

El entorno PHP de SAE utiliza de forma predeterminada los siguientes directorios para el despliegue del paquete de la aplicación:

Tipo

Ruta

Descripción

Directorio

/home/admin/app/

Directorio predeterminado donde se despliegan los paquetes de la aplicación.

Directorio

/home/admin/app/nginx/

  • Directorio predeterminado del sitio de NGINX. Corresponde al directorio ./nginx/ del paquete de demostración.

  • Admite la configuración server {} de NGINX. Para más información, consulte ngx_http_core_module.

Directorio

/home/admin/app/php/

Directorio predeterminado de la aplicación PHP. Corresponde al directorio ./php/ del paquete de demostración.

Archivo

/usr/local/etc/php.ini

Ruta de configuración recomendada de php.ini para SAE.

A continuación se describen las configuraciones predeterminadas de PHP-FPM:

Tipo

Ruta

Descripción

Directorio

/usr/local/etc/php

PHP_INI_DIR.

Directorio

/usr/local/etc/php/conf.d/

Directorio donde se almacenan las extensiones de PHP. De forma predeterminada, las extensiones se incluyen en archivos .ini.

Archivo

/usr/local/etc/php-fpm.conf

Archivo de configuración predeterminado de PHP-FPM. Para más información, consulte FastCGI Process Manager (FPM). Para saber cómo modificar la configuración, consulte Manage and use configuration items (K8s ConfigMap).

A continuación se describen las configuraciones predeterminadas de NGINX:

Tipo

Ruta

Descripción

Archivo

/usr/sbin/nginx

Directorio de NGINX.

Directorio

/etc/nginx/

Directorio de las configuraciones predeterminadas de NGINX.

Archivo

/etc/nginx/nginx.conf

Archivo de configuración predeterminado nginx.conf de NGINX, que incluye la configuración http {}. De forma predeterminada, la configuración http {} hace referencia a la configuración /home/admin/app/nginx/. Para saber cómo modificar la configuración, consulte Manage and use configuration items (K8s ConfigMap).

Extensiones integradas

El entorno PHP proporcionado por SAE es compatible con las siguientes extensiones:

Permisos relacionados

De forma predeterminada, PHP-FPM y NGINX utilizan el usuario www-data para ejecutar las aplicaciones. En la siguiente tabla se describen los permisos.

Servicio

Permiso USUARIO GRUPO

Descripción

PHP-FPM

Proceso

www-data www-data

Valor predeterminado de PHP; la ruta del archivo de configuración es /usr/local/etc/php-fpm.conf.

NGINX

Proceso

www-data www-data

Valor predeterminado de NGINX; la ruta del archivo de configuración es /etc/nginx/nginx.conf.

Directorio de archivos

Directorio

root root

Directorio donde se despliegan los paquetes de código. El directorio de configuración es /home/admin/app/. Consulte el siguiente ejemplo:

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

Se recomienda conservar este usuario para evitar fallos en la aplicación.

Compatibilidad con extensiones de PHP

Extensiones predeterminadas y de PECL

Configure el archivo php.ini para especificar las extensiones integradas cuando despliegue una aplicación. Esto incluye las extensiones predeterminadas de PHP y las de PECL.

Ejecute el siguiente comando en webshell para consultar las extensiones integradas. Para saber cómo abrir webshell, consulte View the webshell.

php -m

A continuación se muestran ejemplos de las extensiones integradas compatibles con distintos entornos de ejecución:

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

Instalación de extensiones mediante la consola y la API

Habilite las extensiones predeterminadas de PHP o instale versiones específicas de extensiones de PECL desde la consola de SAE o mediante la API. Para más información, consulte Deploy a PHP application.

Instalación de extensiones de terceros

En esta sección se explica cómo instalar una extensión de terceros mediante la compilación del archivo YAML que contiene el código fuente en PHP-FPM 7.3.

  1. Cree una aplicación de SAE con PHP 7.3 como entorno de ejecución.

  2. Habilite el acceso a Internet.

  3. Inicie sesión en la instancia mediante webshell y ejecute los siguientes comandos para compilar e instalar la extensión:

    # Get the source code
    wget https://pecl.php.net/get/yaml-2.2.2.tgz
    tar -zxvf yaml-2.2.2.tgz
    # Compile and install the extension
    cd yaml-2.2.2 && \
    phpize && \
    ./configure && \
    make && make install
  4. Descargue la extensión a su máquina local. Para más información, consulte Upload and download files to diagnose applications through logs.

    Directorio de la extensión:

    /home/admin/yaml-2.2.2/modules/yaml.so
  5. Incluya la extensión en el paquete ZIP de la aplicación. Estructura del paquete ZIP:

    .
    ├── nginx
    │ ├── default.conf
    │ ├── fastcgi_params
    │ ├── global
    │ └── root.dir
    ├── php
    │ ├── index.php
    └── extensions
     └── yaml.so
  6. Despliegue la aplicación, cargue el paquete ZIP que contiene la extensión y agregue la configuración de la extensión al archivo php.ini para habilitarla.

    extension=/home/admin/app/extensions/yaml.so
  7. Inicie sesión en la instancia mediante webshell y compruebe si la extensión se cargó correctamente.

    # php -m | grep yaml
    yaml

Configuraciones comunes

Puertos de servicio predeterminados

A continuación se describen los puertos de servicio predeterminados de NGINX y PHP-FPM que configura SAE:

Programa

Puerto

NGINX

80

PHP-FPM

127.0.0.1:9000

Registros de PHP-FPM: salida estándar

  • Los registros de PHP-FPM se incluyen en los registros en tiempo real. El siguiente fragmento de código muestra un ejemplo de la configuración de registros en el archivo /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
  • Los registros de errores de PHP no se muestran. El siguiente fragmento de código muestra un ejemplo de la configuración de registros en el archivo php.ini.

    error_log => no value => no value
    log_errors => Off => Off
    log_errors_max_len => 1024 => 1024
  • Si desea incluir los registros de errores en los registros en tiempo real, configure el archivo php.ini al crear o desplegar una aplicación. Especifique el siguiente directorio para almacenar los registros de errores:

    log_errors = on
    error_log = /proc/self/fd/2

Registros de NGINX: salida estándar

  • Los registros de NGINX se incluyen en los registros en tiempo real. El siguiente fragmento de código muestra un ejemplo de la configuración de registros en el archivo ./nginx/default.conf:

    #access_log /dev/stdout;
    error_log stderr;
  • Habilite access_log. De forma predeterminada, los registros se incluyen en los registros en tiempo real.

Caché de archivos: archivos estáticos, imágenes y contenido multimedia

Configure el archivo php.ini para determinar si habilita OPcache para PHP. SAE habilita OPcache de forma predeterminada. Para más información sobre la configuración, consulte Configuración de ejecución de OPcache.

  • Habilitar OPcache: esta opción es adecuada para sitios web en producción, ya que acelera la ejecución del código y reduce las operaciones de entrada/salida (E/S) de disco.

  • Deshabilitar OPcache: esta opción es adecuada para escenarios de depuración. Las modificaciones en el código surten efecto de inmediato.

El siguiente fragmento de código muestra un ejemplo de la configuración de php.ini:

; Enable OPcache
opcache.enable=1
; Disable OPcache
;opcache.enable=0

Caché de archivos: código PHP

Habilite o deshabilite la caché en NGINX para diversos archivos estáticos, como imágenes, videos, archivos CSS (Cascading Style Sheets) y archivos JavaScript. Para más información sobre la configuración, consulte Módulo ngx_http_headers_module.

  • Habilitar la caché de recursos estáticos: esta opción es adecuada para servicios y sitios web en producción que cargan muchos archivos multimedia. Mejora el rendimiento del tráfico y reduce las operaciones de lectura de entrada/salida por segundo (IOPS).

  • Deshabilitar la caché de recursos estáticos: esta opción es adecuada para depuración remota, carga y descarga de archivos, y otros escenarios de uso. Permite acceder a los archivos en tiempo real.

El siguiente fragmento de código muestra un ejemplo de la configuración de ./nginx/default.conf:

    # Static resource caching
    location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
        # Disable caching
        #expires off;
        # Enable caching
        expires 1s;
    }

Funciones avanzadas

Reinicio en caliente de servicios

  • ConfigMap le permite modificar las configuraciones sin interrumpir los servicios.

  • Webshell le permite reiniciar los servicios sin interrumpirlos.

    • Reinicio en caliente de NGINX

      # Test the validity of the configuration file
      nginx -t
      # Restart NGINX without service interruptions
      nginx -s reload
    • Reinicio en caliente de PHP-FPM (existe cierta probabilidad de interrupción del flujo; debe comprobar la configuración de php.ini).

      ps uax | grep 'php-fpm: master' | grep -v grep | awk '{print $2}' | xargs kill -USR2

Carga y descarga

SAE ofrece varios métodos para cargar y descargar archivos. Seleccione uno de los siguientes métodos según sus necesidades de negocio:

  • Mediante la consola de SAE: cargue y descargue archivos para depuración. El tamaño del archivo no puede superar los 10 MB. Para obtener más información, consulte Upload and download files via webshell.

  • Mediante la consola de SAE: ejecute la depuración remota.

  • Mediante el almacenamiento persistente: Apsara File Storage NAS u Object Storage Service (OSS).

Python

Entorno de ejecución

Fecha de actualización

Versión del sistema operativo

Descripción

Python 3.9.15

2022-10-11

Debian 11.0

Python 3.9.15

.NET Core

Para facilitar el desarrollo y el despliegue, las imágenes base de SAE se construyen a partir de las imágenes base oficiales de .NET. Además, incluyen herramientas comunes de solución de problemas y paquetes de fuentes preconfigurados.

Versión

Imagen base

Sistema operativo

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