本文以Golang应用为例,指导您如何使用云效将应用以镜像的方式部署至SAE。

前提条件

部署流程

部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第1张
  1. 如果您的应用已经在部署在SAE上,则无需创建新的应用。如果第一次部署应用到SAE,则需要SAE控制台创建应用,以便云效将业务代码推送到该应用中。
  2. 在SAE创建应用完成后,需要在云效创建对应的应用,应用的部署方式(如JAR、WAR和镜像)两边需要一致。
  3. 在云效应用创建完成后,可以使用云效提供的流水线模板创建出应用集成发布的基础流水线。
  4. 基础流水线创建完成,需要更改流水线中的构建任务。例如:如果您在SAE控制台创建的应用采用的是镜像方式,那么在该环节您需要将构建任务中的构建步骤配置为Docker镜像构建上传。整个流水线运行后,本环节的构建产物将供部署环节发布使用。
  5. 构建任务配置完成后,需要指定上环节(即构建任务环节)构建产物和应用的部署目的地,即应用在SAE上的区域和应用名称。整个流水线运行成功后,应用成功部署到SAE上。

步骤一:在SAE上创建应用

如果您第一次使用SAE托管应用,需要预先在SAE上使用Demo应用创建相应的应用。

本文以镜像部署为例,具体操作请参见在SAE控制台使用镜像部署应用

注意 在SAE控制台创建应用时使用的部署方式(JAR、WAR和镜像),必须与在云效的流水线设置保持一致。简而言之,在SAE上使用镜像方式部署,在云效设置流水线时,构建环节必须是镜像相关配置。
部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第2张

步骤二:在云效配置应用基本信息

  1. 登录云效控制台应用列表页面
  2. 在菜单栏中选择项目 > 项目列表,并在项目列表页面单击右上角的新建项目,然后在弹出的页面中设置项目信息并单击确定
    项目信息有项目类型、项目名称、权限和项目背景等,请依据实际情况设置。部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第3张
  3. 在菜单栏中选择研发 > 应用,并在我的应用页面中,单击左上角的创建新应用,然后在创建新应用设置应用基本信息并单击创建
    部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第4张

步骤三:在云效使用模板构建基础流水线

  1. 在菜单栏中选择研发 > 流水线,在流水线页面单击右上角的新建流水线
  2. 新建流水线页面设置编程语言和流程模板,并单击下一步
    部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第5张
    • 编程语言:选择Go
    • 模板:选择Go 测试、构建、部署到主机
    说明 如果您的应用编程语言非Go,请根据实际情况选择。
  3. 在弹出的流水线配置页面中,进行代码库设置,并单击下一步
    部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第6张
    • 代码库类型:选择阿里云Code
    • 代码仓库:选择您的代码仓库地址。
    • 分支:选择代码分支。
    • 别名:代码的别名,后续用于执行组件代码克隆路径,使用数字、字母或下划线。
  4. 在弹出的流水线配置页面中,设置流水线的基本信息如流水线名称、管理员等,并单击创建
    部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第7张

步骤四:在云效中配置构建任务

  1. 配置构建任务的基本信息。
    1. 编辑流水线页面单击构建测试
    2. 在弹出的阶段:构建面板中设置阶段名称流转配置
      部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第8张
  2. 配置构建任务的执行步骤。
    1. 单击任务列表中具体任务,在任务:Go构建Docker页面删除构建上传模块,单击添加步骤
      说明 本文以镜像为例,原模板中构建配置不适合镜像方式,需要将其删除并改为镜像配置。

      删除原模板中构建物上传如下图所示。

      部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第9张
    2. 在弹出框中选择Docker镜像构建上传
      部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第10张
    3. Docker镜像构建上传步骤区域,设置镜像信息。
      部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第11张
      • 步骤名称:保持默认,也可以自定义。
      • 区域:Docker镜像文件所在的地域
      • 仓库:Docker镜像文件所在地址。
      • 标签:Docker镜像Tag,支持固定参数例如1.0,或者动态参数${DATETIME}。
      • Dockerfile路径:Dockerfile相对于代码库根目录所在路径,如META/config/Dockerfile或Dockerfile。该文件云效会自动为您创建,无需自建。
      • ContextPath:填写相对于代码根目录的路径,如target,如果不填则为Dockerfile文件所在目录。
      • 组件出参:为本构建环节产生的结果文件,供部署环节使用。

步骤五:在云效部署应用至SAE

步骤一所创建应用不包含您的任何业务代码,在本环节将应用代码推送至SAE上。即将SAE上的应用升级为含有您业务代码的应用。

  1. 编辑流水线页面的阶段区域中,删除原流水线的部署任务,然后单击添加部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第12张
    部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第13张
  2. 在弹出的阶段模板面中选择部署到SAE
    部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第14张
  3. 单击新增的流水线任务,并设置基本信息,设置完成后单击部署到SAE
    部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第15张
  4. 任务:部署到SAE面板中设置部署任务信息。
    部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第16张
    • 区域:选择步骤一中所创建的应用所在区域。
    • SAE应用:选择步骤一中所创建应用的应用名称。
    • 构出产物:为步骤四中组件出参产生的结果。
  5. 单击右上角的运行
    云效开始依据配的流水线,集成应用将应用部署至SAE。部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第17张

步骤六:结果验证

  • 方法一:

    云效显示部署成功后,在SAE控制台查看应用的变更记录,是否产生应用重新部署的变更记录。

    部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第18张
  • 方法二:

    云效显示部署成功后,在SAE控制台查看应用的基本信息,查看镜像地址是否与在云效中设置相同。

    部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第19张

常见问题

  • 其他编程语言怎么使用云效将应用部署到SAE?

    在流水线构建任务环节,您可以选在所需的编程语言模板。具体部署配置操作请参见云效快速入门

    部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第20张
  • 除Golang应用外其他编程语言的应用想要部署在SAE上,在SAE创建应用时使用那种部署方式(JAR、WAR和镜像)?

    使用镜像方式。使用云效部署时,切记您应用程序代码中须包含应用的Dockerfile文件。

更多信息

问题反馈

如果您在使用SAE过程中有任何疑问,欢迎您扫描下面的二维码加入钉钉群进行反馈。部署Golang应用至SAE_使用云效部署应用至SAE_最佳实践_Serverless 应用引擎 阿里云技术文档 第21张