制作符合SAE要求的代码包

通过代码包部署应用前,您需要先按照SAE的要求制作代码包。

Java

  1. 制作SAE应用的JAR包或WAR包的方式与您日常打包代码的方式没有任何差异。

  2. 通过WAR包或JAR包部署Java应用

PHP

  1. 下载示例代码包hello-sae-php.zip并解压,目录结构如下:

    .
    ├── nginx
    │   ├── default.conf
    │   ├── fastcgi_params
    │   └── root.dir
    ├── php # 程序所在目录
    │   ├── index.php # 程序入口文件
    │   └── phpinfo.php
  2. php/中的代码替换为您的业务代码。

  3. 按需修改nginx/中的配置文件。

    配置项

    默认值

    如何修改

    服务端口

    80

    修改default.conf文件,在server{ }中的首行添加listen <port>;(例如listen 8080;)。

    程序入口文件名称

    index.php(如示例代码所示)

    如果您修改了程序入口文件名称,请同步执行以下操作:

    修改default.conf文件,将index index.php index.html index.htm;改为index <程序入口文件名称>;,将fastcgi_index index.php;改为fastcgi_index <程序入口文件名称>;

    程序所在目录名称

    php(如示例代码所示)

    如果您修改了程序所在目录名称,请同步执行以下操作:

    修改root.dir文件,将root /home/admin/app/php;改为root /home/admin/app/<程序所在目录名称>;

  4. 将当前目录中的内容打包为ZIP包,注意nginxphp需位于ZIP包的根路径。

  5. 通过ZIP包部署PHP应用

Python

  1. 了解ZIP打包规范。

    • 打包代码根目录文件或者文件夹,切勿打包外层目录。

    • 如果应用存在requirements.txt,需要将其置于根目录下一同打包,便于部署时SAE自动安装软件依赖。

  2. 基于示例hello-sae-python.zip,将您的Python应用打包为ZIP包。示例的目录结构如下(示例代码依赖Flask、Gunicorn等,详见requirements.txt):

    .
    ├── app
    │   └── hello.py
    └── requirements.txt (需在根目录,可选)

    执行如下命令:

    # 获取示例
    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
    # 将示例代码替换为您的Python程序(将/path/to/your-python-project/替换为您的项目路径)
    rm -rf app/* requirements.txt
    cp -r /path/to/your-python-project/. app/
    cp -r /path/to/your-python-project/requirements.txt ./
    # 打包成ZIP包
    zip -r my-python-app.zip app requirements.txt
  3. 通过ZIP包部署Python应用

.NET Core

  1. 了解ZIP打包规范。

    ZIP目录

    对应SAE实例运行时目录

    描述

    ./start.sh

    /home/admin/start.sh

    存放应用启动脚本。

    ./your-dotnet-project

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

    存放.NET程序。

    • 打包代码根目录文件或者文件夹,切勿打包外层目录。

    • 如果应用存在启动脚本,如start.sh文件等,需要将其置于根目录下一同打包,便于部署时SAE自动执行启动脚本。

  2. 下载安装.NET SDK,确保选择SAE支持的.NET Core版本。可以通过执行dotnet --version验证是否安装成功。如果报错,请按照报错信息安装对应的依赖包。

  3. 编译和构建项目,执行如下命令:

    # 进入项目路径(将/path/to/your-dotnet-project/替换为您的项目路径)
    cd /path/to/your-dotnet-project/
    # 还原项目依赖
    dotnet restore
    # 编译源码
    dotnet build -c Release -o demo
    # -c Release:表示优化代码以提高运行时性能,并去除调试信息,适宜于生产环境部署。
    # -o demo:表示构建输出的目录为demo。
  4. 编写项目的启动脚本(如:start.sh)并为其添加可执行权限chmod +x ./start.sh

  5. 通过tree命令查看当前目录结构。

    .
    ├── appsettings.Development.json
    ├── appsettings.json
    ├── appsettings.Production.json
    ├── your-dotnet-project
    ...
    └── start.sh
  6. 打包为ZIP包。

    zip -r demo.zip *
    # demo.zip:表示需要打包成的zip文件。
    # *:表示打包当前目录中的所有文件及文件夹。
  7. 通过ZIP包部署.NET Core应用