您可以使用云效流水线Flow实现任务模板的持续集成和部署。本文介绍如何使用云效以ZIP包方式将PHP语言的任务模板部署至SAE

前提条件

背景信息

如果您首次使用云效,请先了解云效的部署流程以及SAE支持的部署方式。具体信息,请参见云效2020部署SAE应用与任务模板概览

步骤一:在SAE创建任务模板

如果您是第一次使用SAE托管任务,需要预先在SAE控制台创建相应的任务模板。SAE支持代码包部署和镜像部署。任务模板的部署方式必须与流水线的配置保持一致。

具体操作,请参见创建任务模板

步骤二:在云效创建企业

第一次使用云效Flow,您需要在云效上创建您的企业。如果已经创建企业,您可以跳过该步骤。

  1. 登录云效Flow
  2. 设置企业名称并选择使用规模,单击完成创建
    首次登录云效创建企业

步骤三:在云效创建流水线

  1. 登录云效Flow
  2. 流水线Flow页面右上角,单击新建流水线
  3. 选择流水线模板对话框,选择PHP > PHP · 测试、构建模板,然后单击创建
  4. 流程配置页签,在添加流水线源面板的左侧导航栏,选择代码源,配置代码源信息,单击添加
    配置代码源
    配置项说明
    选择代码源选择业务代码所在的代码源。
    说明 不同代码源需要配置的参数不同,请根据实际界面配置。
    代码仓库选择代码仓库地址。
    默认分支选择代码分支。

步骤四:在云效部署任务模板至SAE

  1. 流程配置页签的构建区域,单击PHP构建上传到仓库
  2. 在弹出的编辑面板,配置相关信息。sc_edit_PHP_job
    1. 任务步骤区域,单击构建物上传右侧的减号图标,然后单击确认
    2. 单击+添加步骤,从下拉列表中选择上传 > 构建物上传(EDAS/SAE使用)
    3. 展开PHP构建,在构建命令区域,输入所需参数。
      说明
      • 通过修改PACKAGE_NAME值,可以管理不同应用的软件包名避免冲突。
      • 打包格式仅支持ZIP格式。如果有更多目录需要打包,可修改zip -r命令添加目录或文件。
      # 安装打包软件
      apt-get update
      apt-get install zip -y
      
      # 定义软件包名称
      PACKAGE_NAME="hello-sae-php.zip"
      
      # 确保构建初始化为空
      rm -rf ${PACKAGE_NAME} || echo "Package not exists. Ignore to cleanup"
      
      # 添加./nginx/与./php到打包文件
      zip -r ${PACKAGE_NAME} ./nginx ./php
    4. 展开构建物上传(EDAS/SAE使用),在上传文件文本框中,输入上一步中PACKAGE_NAME打包的文件名称,例如hello-sae-php.zip
    5. 编辑面板右上角,单击关闭图标。
  3. 新阶段区域,单击新的任务,选择Serverless(SAE)任务模板更新sc_deploy_sae_job
  4. 编辑面板,配置任务信息,单击保存并运行
    配置项说明
    任务名称自定义的任务名称。不可超过20个字符。
    构建集群可以为任务选择不同的构建集群。
    下载流水线源开启下载流水线源后,配置流水线源的源文件将会被下载至对应的工作目录下。
    选择服务连接选择任务的服务授权,使云效能在SAE上部署任务模板。

    如果您从未连接过,请先单击添加服务连接,根据跳转完成阿里云RAM授权后再进行相应配置。

    地域选择步骤一:在SAE创建任务模板所创建的任务模板所在地域。
    命名空间选择步骤一:在SAE创建任务模板所创建的任务模板所在命名空间。
    SAE任务模板选择步骤一:在SAE创建任务模板所创建的任务模板。
    构建产物选择步骤2所创建的标签名称。
    使用阿里云镜像仓库企业版仅当使用镜像部署任务模板时,需要配置。
    任务插件您可以根据需要,配置任务插件来发送流水线通知。
  5. 运行配置对话框,确认配置信息,单击运行

结果验证

云效开始部署后,默认进入最近运行页签,可查看流水线运行结果。如果运行失败,可通过云效流水线中的日志进行排查,重新保存并执行流水线调试。

更多信息

SAE部署应用完成后,您可以对应用进行以下操作。
操作相关文档
更新、扩缩容、启停、删除应用等生命周期管理管理应用生命周期
自动弹性伸缩、SLB绑定和批量启停等提升应用性能
日志管理、监控管理、应用事件查看和变更记录查看等聚焦应用运行状态