Todos os produtos
Search
Central de documentação

Serverless App Engine:Deploy an application using a code package

Última atualização: Sep 21, 2026

Ao implantar um aplicativo usando um pacote de código, o Serverless App Engine (SAE) oferece suporte às seguintes pilhas de tecnologia e ambientes de execução. Antes da implantação, você precisa {{XREF_0}}. Se a linguagem da sua pilha de tecnologia e o ambiente de execução não estiverem listados abaixo, você precisa {{XREF_1}}.

Java

Ambiente de execução

Data de atualização

Versão do JDK

Versão do sistema operacional

Código aberto

Mantido

Descrição

Dragonwell 21

2024-07-18

21.0.3.0.3+9

CentOS Linux release 7.9.2009

Sim

Sim

Dragonwell 21 de código aberto

Dragonwell 17

2022-07-11

17.0.3.0.3+7

CentOS Linux release 7.9.2009

Sim

Sim

Dragonwell 17 de código aberto

Dragonwell 11

2021-08-27

11.0.10.10-AJDK

CentOS Linux release 7.9.2009

Não

Sim

  • Dragonwell e OpenJDK atualizados.

  • Sistema operacional atualizado.

  • Suporte adicionado para fontes em chinês e inglês.

  • Velocidade de inicialização significativamente otimizada.

2020-09-27

Dragonwell 11 de código aberto

Dragonwell 8

2021-10-18

1.8.0_302

CentOS Linux release 7.9.2009

Sim

Sim

Problema ocasional de alto uso de CPU corrigido.

2021-08-27

  • Dragonwell e OpenJDK atualizados.

  • Sistema operacional atualizado.

  • Suporte adicionado para fontes em chinês e inglês.

  • Velocidade de inicialização significativamente otimizada.

2020-09-27

Recursos habilitados, como a corrotina Wisp e a verificação automática de compatibilidade com o cliente NIO Netty. Para obter mais informações, consulte Dragonwell 8 de código aberto.

OpenJDK 8

2019-06-19

1.8.0_191

CentOS Linux release 7.6.1810

Sim

Não

Nenhum

OpenJDK 7

2019-02-25

1.7.0_201

CentOS Linux release 7.6.1810

Sim

Não

Nenhum

openjdk-8u191-jdk-alpine3.9

2019-02-25

1.8.0_191

alpine 3.9.2

Sim

Não

Alguns comandos na imagem alpine diferem dos usados no CentOS. Por exemplo:

  • telnet: o comando telnet na imagem alpine não aceita o parâmetro -e.

  • curl

  • wget

openjdk-7u201-jdk-alpine3.9

2019-02-25

1.7.0_201

alpine 3.9.2

Sim

Não

Alguns comandos na imagem alpine diferem dos usados no CentOS. Por exemplo:

  • telnet: o comando telnet na imagem alpine não aceita o parâmetro -e.

  • curl

  • wget

PHP

Introdução ao ambiente de execução

Aplicativos online: NGINX com PHP-FPM

SAE fornece um ambiente de execução LNMP (Linux+NGINX+MySQL+PHP) para aplicativos web PHP, que inclui:

  • A imagem base padrão do PHP FastCGI Process Manager (FPM).

  • NGINX.

  • Extensões comuns do PHP.

Se o seu aplicativo exigir mais recursos, você pode utilizar os seguintes services da Alibaba Cloud:

Monitoramento de aplicativos: ARMS

Para aplicativos do SAE com versões do PHP de 5.4 a 7.3, ative o monitoramento de aplicativos para obter informações mais detalhadas, como o rastreamento da cadeia de chamadas do aplicativo e a latência de acesso a recursos para o ApsaraDB RDS MySQL e Tair (compatível com Redis OSS-compatible).Para obter mais informações, consulte {{XREF_4}}.

Descrição do ambiente de execução PHP

Versões de software

A tabela a seguir descreve os ambientes de execução PHP disponíveis. Se você precisar de uma versão superior do ambiente PHP, entre no grupo do DingTalk (Número do grupo: 32874633) para consultar os especialistas técnicos do product.

Ambiente de execução

Data de atualização

Versão do PHP

Versão do NGINX

Versão do sistema operacional

Descrição

PHP-FPM 7.3

2021-12-27

7.3.32

1.18.0

Debian 11.0

  • Oferece suporte a fontes predefinidas.

  • Oferece suporte a extensões padrão do PHP.

  • Oferece suporte ao repositório de extensões PHP PECL.

PHP-FPM 7.2

2021-09-17

7.2.34

1.18.0

Debian 10.7

Nenhum

PHP-FPM 7.1

2021-09-17

7.1.33

1.18.0

Debian 10.2

Nenhum

PHP-FPM 7.0

2021-09-17

7.0.33

1.18.0

Debian 9.6

Nenhum

PHP-FPM 5.6

2021-09-17

5.6.40

1.18.0

Debian 9.6

Nenhum

PHP-FPM 5.5

2021-09-17

5.5.38

1.18.0

Debian 8.5

Nenhum

PHP-FPM 5.4

2021-09-17

5.4.45

1.18.0

Debian 8.2

Nenhum

Diretórios do sistema

O ambiente PHP do SAE usa os seguintes diretórios por padrão para a implantação do pacote de aplicativos:

Tipo

Caminho

Descrição

Diretório

/home/admin/app/

Diretório padrão onde os pacotes de aplicativos são implantados.

Diretório

/home/admin/app/nginx/

  • Diretório padrão de sites do NGINX, que corresponde ao diretório ./nginx/ no pacote de demonstração.

  • Oferece suporte à configuração server {} do NGINX. Para obter mais informações, consulte ngx_http_core_module.

Diretório

/home/admin/app/php/

Diretório padrão de aplicativos PHP, que corresponde ao diretório ./php/ no pacote de demonstração.

Arquivo

/usr/local/etc/php.ini

Caminho de configuração php.ini recomendado para o SAE.

A tabela a seguir descreve as configurações padrão do PHP-FPM:

Tipo

Caminho

Descrição

Diretório

/usr/local/etc/php

PHP_INI_DIR.

Diretório

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

Diretório onde as extensões do PHP são armazenadas. Por padrão, as extensões são incluídas em arquivos .ini.

Arquivo

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

Arquivo de configuração padrão para o PHP-FPM. Para obter mais informações, consulte FastCGI Process Manager (FPM). Para saber como modificar a configuração, consulte {{XREF_7}}.

A tabela a seguir descreve as configurações padrão do NGINX:

Tipo

Caminho

Descrição

Arquivo

/usr/sbin/nginx

Diretório do NGINX.

Diretório

/etc/nginx/

Diretório das configurações padrão do NGINX.

Arquivo

/etc/nginx/nginx.conf

Arquivo de configuração padrão do NGINX nginx.conf, que inclui a configuração http {}. Por padrão, a configuração http {} referencia a configuração /home/admin/app/nginx/. Para saber como modificar a configuração, consulte {{XREF_8}}.

Extensões integradas

O ambiente PHP fornecido pelo SAE oferece suporte às seguintes extensões:

Permissões relacionadas

Por padrão, o PHP-FPM e o NGINX usam o usuário www-data para executar aplicativos. A tabela a seguir descreve as permissões.

Service

Permissão de usuário e grupo

Descrição

PHP-FPM

Processo

www-data www-data

Padrão do PHP, o caminho do arquivo de configuração é /usr/local/etc/php-fpm.conf.

NGINX

Processo

www-data www-data

Padrão do NGINX, o caminho do arquivo de configuração é /etc/nginx/nginx.conf.

Diretório de arquivos

Diretório

root root

Diretório onde os pacotes de código são implantados, o diretório de configuração é /home/admin/app/. Veja o seguinte exemplo:

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

Recomendamos que você mantenha o usuário para evitar falhas no aplicativo.

Suporte a extensões PHP

Extensões padrão e PECL

Ao implantar um aplicativo, configure o arquivo php.ini para especificar as extensões integradas, incluindo as extensões padrão do PHP e as extensões PECL.

Execute o seguinte comando no webshell para visualizar as extensões integradas. Para saber como abrir o webshell, consulte {{XREF_9}}.

php -m

Exemplos de extensões integradas com suporte em diferentes ambientes de execução:

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

Instalar extensões pelo console e API

Ative as extensões padrão do PHP ou instale versões específicas de extensões PECL pelo console do SAE ou pela API. Para obter mais informações, consulte {{XREF_10}}.

Instalar extensões de terceiros

Esta seção descreve como instalar uma extensão de terceiros compilando o código-fonte da extensão YAML no PHP-FPM 7.3.

  1. Crie um aplicativo do SAE com o PHP 7.3 como ambiente de execução.

  2. Ative o acesso à Internet.

  3. Acesse a instância usando o webshell e execute os seguintes comandos para compilar e instalar a extensão:

    # 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. Baixe a extensão para a sua máquina local. Para obter mais informações, consulte {{XREF_12}}.

    Diretório da extensão:

    /home/admin/yaml-2.2.2/modules/yaml.so
  5. Inclua a extensão no pacote ZIP do aplicativo. Estrutura do pacote ZIP:

    .
    ├── nginx
    │ ├── default.conf
    │ ├── fastcgi_params
    │ ├── global
    │ └── root.dir
    ├── php
    │ ├── index.php
    └── extensions
     └── yaml.so
  6. Implante o aplicativo, faça o upload do pacote ZIP que contém a extensão e adicione a configuração da extensão ao arquivo php.ini para ativá-la.

    extension=/home/admin/app/extensions/yaml.so
  7. Acesse a instância usando o webshell e verifique se a extensão foi carregada.

    # php -m | grep yaml
    yaml

Configurações comuns

Portas de service padrão

A tabela a seguir descreve as portas de service padrão do NGINX e do PHP-FPM configuradas pelo SAE:

Programa

Porta

NGINX

80

PHP-FPM

127.0.0.1:9000

Logs do PHP-FPM: saída padrão

  • Os logs do PHP-FPM estão contidos nos logs em tempo real. O código de exemplo a seguir mostra a configuração de log no arquivo /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
  • Os logs de erro do PHP que não são exibidos. O código de exemplo a seguir mostra a configuração de log no arquivo php.ini.

    error_log => no value => no value
    log_errors => Off => Off
    log_errors_max_len => 1024 => 1024
  • Para incluir os logs de erro nos logs em tempo real, configure o arquivo php.ini ao criar ou implantar um aplicativo. Especifique o seguinte diretório para armazenar os logs de erro:

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

Logs do NGINX: saída padrão

  • Os logs do NGINX estão contidos nos logs em tempo real. O código de exemplo a seguir mostra a configuração de log no arquivo ./nginx/default.conf:

    #access_log /dev/stdout;
    error_log stderr;
  • Ative o access_log. Por padrão, os logs estão contidos nos logs em tempo real.

Cache de arquivos: arquivos estáticos, imagens e mídias

Configure o arquivo php.ini para definir se o OPcache será ativado para o PHP. SAE ativa o OPcache por padrão. Para obter mais informações sobre a configuração, consulte Configuração de tempo de execução do OPcache.

  • Ativar o OPcache: adequado para sites online, pois acelera a execução do código e reduz a entrada/saída (I/O) do disco.

  • Desativar o OPcache: adequado para cenários de depuração. As modificações no código entram em vigor imediatamente.

O código de exemplo a seguir mostra a configuração do php.ini:

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

Cache de arquivos: código PHP

Ative ou desative o cache no NGINX para vários arquivos estáticos, como imagens, vídeos, arquivos CSS (Cascading Style Sheets) e arquivos JavaScript. Para obter mais informações sobre a configuração, consulte Módulo ngx_http_headers_module.

  • Ativar o cache de recursos estáticos: adequado para services e sites online que carregam muitos arquivos de mídia. Melhora o throughput de tráfego e reduz as operações de leitura de entrada/saída por segundo (IOPS).

  • Desativar o cache de recursos estáticos: adequado para depuração remota, upload e download, e outros cenários de uso. Permite o acesso aos arquivos em tempo real.

O código de exemplo a seguir mostra a configuração do ./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;
    }

Recursos avançados

Reinicialização a quente de services

  • O ConfigMap permite modificar as configurações sem interromper os services.

  • O Webshell permite reiniciar os services sem interrupções.

    • Reinicialização a quente do NGINX

      # Test the validity of the configuration file
      nginx -t
      # Restart NGINX without service interruptions
      nginx -s reload
    • Reinicialização a quente do PHP-FPM (Há uma certa probabilidade de interrupção do fluxo. Verifique a configuração do php.ini.)

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

Upload e download

O SAE oferece vários métodos para upload e download de arquivos. Selecione um dos seguintes métodos de acordo com os requisitos do seu negócio:

  • Console do SAE: faça o upload e o download de arquivos para depuração. O tamanho do arquivo não pode exceder 10 MB. Para obter mais informações, consulte {{XREF_13}}.

  • Console do SAE: realize a depuração remota.

  • Armazenamento persistente: Apsara File Storage NAS ou Object Storage Service (OSS).

Python

Ambiente de execução

Data de atualização

Versão do sistema operacional

Descrição

Python 3.9.15

2022-10-11

Debian 11.0

Python 3.9.15

.NET Core

Para facilitar o desenvolvimento e a implantação, as imagens base do SAE são construídas com base nas imagens base oficiais do .NET e vêm pré-configuradas com ferramentas comuns de solução de problemas e pacotes de fontes.

Versão

Imagem base

Sistema operacional

Ambiente de execução

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