SAE impose une structure de répertoire spécifique pour les packages de code avant le déploiement. Cette rubrique explique comment créer des packages conformes pour les applications Java, PHP, Python et .NET Core.
| Environnement d'exécution | Format du package | Exigence principale |
|---|---|---|
| Java | JAR ou WAR | Aucune structure particulière requise |
| PHP | ZIP | Les répertoires nginx/ et php/ doivent se trouver à la racine du fichier ZIP |
| Python | ZIP | Les fichiers doivent être situés à la racine du ZIP ; aucun répertoire externe ne doit les englober |
| .NET Core | ZIP | Le script start.sh et les artefacts de compilation doivent se trouver à la racine du ZIP |
Java
La création de packages JAR ou WAR pour SAE suit les mêmes procédures que l'empaquetage Java standard ; aucune étape supplémentaire n'est nécessaire.
Pour le déploiement, consultez la rubrique Déploiement d'applications Java à l'aide de packages WAR ou JAR.
PHP
Exigences d'empaquetage
Votre package ZIP doit respecter les conditions suivantes :
Les répertoires
nginx/etphp/doivent impérativement se situer à la racine du fichier ZIP, sans être imbriqués dans un dossier parent. Si ces répertoires sont encapsulés, SAE ne parvient pas à localiser les fichiers de configuration ni le point d'entrée, ce qui entraîne l'échec du déploiement.Remplacez les fichiers de code présents dans le répertoire
php/par votre propre code applicatif.Adaptez les fichiers de configuration situés dans le répertoire
nginx/selon vos besoins.
Étape 1 : Téléchargement et extraction de l'exemple de package
Téléchargez le fichier hello-sae-php.zip et extrayez son contenu. L'arborescence obtenue est la suivante :
.
├── nginx
│ ├── default.conf
│ ├── fastcgi_params
│ └── root.dir
└── php # Program directory
├── index.php # Entry point
└── phpinfo.php
Étape 2 : Remplacement du code et mise à jour de la configuration
Substituez les fichiers contenus dans le répertoire php/ par votre propre code applicatif.
Si votre application utilise des paramètres non standards, mettez à jour la configuration nginx comme indiqué ci-dessous :
| Élément de configuration | Valeur par défaut | Procédure de modification |
|---|---|---|
| Port | 80 | Dans le fichier default.conf, ajoutez la directive listen <port>; (par exemple listen 8080;) en première ligne à l'intérieur du bloc server{ }. |
| Nom du fichier de point d'entrée | index.php |
Dans le fichier default.conf, remplacez index index.php index.html index.htm; par index <votre-fichier-point-entree>; et modifiez fastcgi_index index.php; en fastcgi_index <votre-fichier-point-entree>;. |
| Nom du répertoire du programme | php |
Dans le fichier root.dir, changez root /home/admin/app/php; pour root /home/admin/app/<nom-de-votre-repertoire>;. |
Étape 3 : Empaquetage au format ZIP
Compressez le contenu du répertoire courant dans un fichier ZIP, sans inclure le répertoire lui-même :
zip -r my-php-app.zip nginx php
N'incluez pas de dossier parent. Les répertoires nginx et php doivent apparaître directement à la racine du fichier ZIP.
Étape 4 : Déploiement
Reportez-vous à la procédure décrite dans Déploiement d'applications PHP à l'aide de packages ZIP.
Python
Exigences d'empaquetage
Votre package ZIP doit satisfaire aux critères suivants :
Empaquetez uniquement les fichiers et dossiers contenus dans la racine de votre projet, sans inclure le répertoire racine lui-même. L'ajout d'un niveau de dossier externe empêche SAE de localiser les fichiers de l'application, provoquant ainsi l'échec du déploiement.
Si votre application possède un fichier
requirements.txt, placez-le à la racine du fichier ZIP. SAE installera automatiquement les dépendances logicielles lors du déploiement.
Étape 1 : Téléchargement et extraction de l'exemple de package
Téléchargez le fichier hello-sae-python.zip. Cet exemple s'appuie sur Flask, Gunicorn et d'autres bibliothèques listées dans le fichier requirements.txt. L'arborescence se présente comme suit :
.
├── app
│ └── hello.py
└── requirements.txt (optional; must be in the root directory)
Étape 2 : Substitution de l'exemple par votre application
Exécutez les commandes suivantes pour remplacer le code d'exemple par votre propre projet :
# 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
Étape 3 : Déploiement
Suivez les instructions de la rubrique Déploiement d'applications Python à l'aide de packages ZIP.
.NET Core
Exigences d'empaquetage
Votre package ZIP doit répondre aux exigences suivantes :
Empaquetez les fichiers et dossiers situés à l'intérieur du répertoire de sortie de compilation, sans inclure ce répertoire lui-même. L'ajout d'un dossier externe empêche SAE de localiser les fichiers de l'application ou le script de démarrage, entraînant l'échec du déploiement.
Si l'application dispose d'un script de démarrage (par exemple
start.sh), placez-le à la racine du fichier ZIP. SAE exécutera automatiquement ce script lors du déploiement.
La structure du fichier ZIP correspond aux chemins suivants sur l'instance SAE :
| Chemin dans le ZIP | Chemin sur l'instance SAE | Description |
|---|---|---|
./start.sh |
/home/admin/start.sh |
Script de démarrage de l'application |
./votre-projet-dotnet |
/home/admin/app/nginx/*.conf |
Fichiers de l'application .NET |
Étape 1 : Configuration du SDK .NET
Téléchargez et installez le SDK .NET. Choisissez une version de .NET Core prise en charge par SAE, puis vérifiez l'installation :
dotnet --version
Si la commande renvoie une erreur, installez les packages de dépendances indiqués dans le message d'erreur.
Étape 2 : Compilation du projet
Depuis le répertoire de votre projet, exécutez les commandes suivantes pour restaurer les dépendances et compiler le code source :
# 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
Étape 3 : Création du script de démarrage
Créez un fichier nommé start.sh dans le répertoire de sortie de compilation, puis rendez-le exécutable :
chmod +x ./start.sh
Étape 4 : Vérification de la structure des répertoires
Avant l'empaquetage, assurez-vous que la sortie de compilation ressemble à l'arborescence suivante :
.
├── appsettings.Development.json
├── appsettings.json
├── appsettings.Production.json
├── your-dotnet-project
...
└── start.sh
Étape 5 : Empaquetage au format ZIP
Compressez tous les fichiers du répertoire courant :
# demo.zip: the name of the ZIP file to create
# *: packages all files and folders in the current directory
zip -r demo.zip *
Étape 6 : Déploiement
Consultez la procédure détaillée dans Déploiement d'applications .NET Core à l'aide de packages ZIP.