Todos os produtos
Search
Central de documentação

Serverless App Engine:Criação de pacotes de código compatíveis com os requisitos do SAE

Última atualização: Jun 28, 2026

O SAE exige que os pacotes de código sigam uma estrutura de diretórios específica antes da implantação. Este tópico explica como criar pacotes compatíveis para aplicações Java, PHP, Python e .NET Core.

Runtime

Formato do pacote

Requisito principal

Java

JAR ou WAR

Nenhuma estrutura especial necessária

PHP

ZIP

Os diretórios nginx/ e php/ devem estar na raiz do ZIP

Python

ZIP

Os arquivos devem estar na raiz do ZIP, sem diretório externo

.NET Core

ZIP

O arquivo start.sh e a saída da compilação devem estar na raiz do ZIP

Java

A criação de pacotes JAR ou WAR para o SAE segue o processo padrão de empacotamento Java, sem etapas especiais.

Para implantar, consulte Implantar aplicações Java usando pacotes WAR ou JAR.

PHP

Requisitos de empacotamento

O pacote ZIP deve atender aos seguintes requisitos:

  • Os diretórios nginx/ e php/ devem estar na raiz do arquivo ZIP, não aninhados em uma pasta pai. Se estiverem aninhados, o SAE não localizará os arquivos de configuração ou o ponto de entrada, e a implantação falhará.

  • Substitua os arquivos de código em php/ pelo código da sua aplicação.

  • Modifique os arquivos de configuração em nginx/ conforme necessário.

Etapa 1: Baixe e extraia o pacote de exemplo

Baixe hello-sae-php.zip e extraia o conteúdo. A estrutura de diretórios é:

.
├── nginx
│   ├── default.conf
│   ├── fastcgi_params
│   └── root.dir
└── php                  # Program directory
    ├── index.php        # Entry point
    └── phpinfo.php

Etapa 2: Substituir o código e atualize a configuração

Substitua os arquivos em php/ pelo código da sua aplicação.

Se a aplicação usar configurações não padrão, atualize a configuração do nginx:

Item de configuração

Valor padrão

Como modificar

Porta

80

Em default.conf, adicione listen <port>; (por exemplo, listen 8080;) como a primeira linha dentro de server{ }.

Nome do arquivo de ponto de entrada

index.php

Em default.conf, altere index index.php index.html index.htm; para index <your-entry-filename>; e atualize fastcgi_index index.php; para fastcgi_index <your-entry-filename>;.

Nome do diretório do programa

php

Em root.dir, altere root /home/admin/app/php; para root /home/admin/app/<your-directory-name>;.

Etapa 3: Empacotar em um arquivo ZIP

Empacote o conteúdo do diretório atual — não o diretório em si — em um arquivo ZIP:

zip -r my-php-app.zip nginx php
Importante

Não inclua uma pasta pai. Os diretórios nginx e php devem aparecer na raiz do arquivo ZIP.

Etapa 4: Implantar

Consulte Implantar aplicações PHP usando pacotes ZIP.

Python

Requisitos de empacotamento

O pacote ZIP deve atender aos seguintes requisitos:

  • Empacote os arquivos e pastas dentro da raiz do projeto, não o diretório raiz em si. Se você incluir o diretório externo, o SAE não encontrará os arquivos da aplicação e a implantação falhará.

  • Se a aplicação tiver um arquivo requirements.txt, coloque-o na raiz do arquivo ZIP. O SAE instala as dependências de software automaticamente durante a implantação.

Etapa 1: Baixe e extraia o pacote de exemplo

Baixe hello-sae-python.zip. O exemplo depende do Flask, Gunicorn e outros pacotes listados em requirements.txt. A estrutura de diretórios é:

.
├── app
│   └── hello.py
└── requirements.txt     (optional; must be in the root directory)

Etapa 2: Substituir o exemplo pela sua aplicação

Execute os comandos a seguir para substituir o código de exemplo pelo seu:

# Download and extract the sample
wget https://sae-demo-cn-shenzhen.oss-cn-shenzhen.aliyuncs.com/demo/1.0/hello-sae-python.zip
unzip hello-sae-python.zip -d hello-sae-python && rm -rf hello-sae-python.zip && cd hello-sae-python

# Replace the sample code with your Python project
# Replace /path/to/your-python-project/ with your actual project path
rm -rf app/* requirements.txt
cp -r /path/to/your-python-project/. app/
cp -r /path/to/your-python-project/requirements.txt ./

# Package into a ZIP file
zip -r my-python-app.zip app requirements.txt

Etapa 3: Implantar

Consulte Implantar aplicações Python usando pacotes ZIP.

.NET Core

Requisitos de empacotamento

O pacote ZIP deve atender aos seguintes requisitos:

  • Empacote os arquivos e pastas dentro do diretório de saída da compilação, não o diretório em si. Se você incluir o diretório externo, o SAE não localizará os arquivos da aplicação ou o script de inicialização, e a implantação falhará.

  • Se a aplicação tiver um script de inicialização (por exemplo, start.sh), coloque-o na raiz do arquivo ZIP. O SAE executa esse script automaticamente durante a implantação.

A estrutura do arquivo ZIP mapeia para a instância do SAE da seguinte forma:

Caminho no ZIP

Caminho na instância SAE

Descrição

./start.sh

/home/admin/start.sh

Script de inicialização da aplicação

./your-dotnet-project

/home/admin/app/nginx/*.conf

Arquivos da aplicação .NET

Etapa 1: Defina o SDK do .NET

Baixe e instale o SDK do .NET. Selecione uma versão do .NET Core suportada pelo SAE e verifique a instalação:

dotnet --version

Se o comando retornar um erro, instale os pacotes de dependência listados na saída do erro.

Etapa 2: Compilar o projeto

Execute os comandos a seguir no diretório do projeto para restaurar as dependências e compilar o código-fonte:

# Navigate to your project directory
# Replace /path/to/your-dotnet-project/ with your actual project path
cd /path/to/your-dotnet-project/

# Restore project dependencies
dotnet restore

# Compile the source code
# -c Release: optimizes for production — improves runtime performance and strips debugging information
# -o demo: outputs the build artifacts to the demo/ directory
dotnet build -c Release -o demo

Etapa 3: Crie um script de inicialização

Crie um arquivo start.sh no diretório de saída da compilação e torne-o executável:

chmod +x ./start.sh

Etapa 4: Revisar a estrutura de diretórios

Verifique se a saída da compilação está semelhante à estrutura a seguir antes de empacotar:

.
├── appsettings.Development.json
├── appsettings.json
├── appsettings.Production.json
├── your-dotnet-project
...
└── start.sh

Etapa 5: Empacotar em um arquivo ZIP

Empacote todos os arquivos do diretório atual:

# demo.zip: the name of the ZIP file to create
# *: packages all files and folders in the current directory
zip -r demo.zip *

Etapa 6: Implantar

Consulte Implantar aplicações .NET Core usando pacotes ZIP.