帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. Serverless应用引擎(新版)
  4. 操作指南
  5. 应用托管
  6. CICD
  7. 通过事件总线触发SAE的自动CD

通过事件总线触发SAE的自动CD

  • CICD
  • 发布于 2025-04-17
  • 0 次阅读
文档编辑
文档编辑

Serverless 应用引擎支持通过事件总线(EventBridge)触发SAE自动持续部署(CD)。本文介绍如何通过EventBridge配置监听特定事件并联动ACR,在检测到新的镜像版本构建完成后,实现从镜像更新到应用自动部署的无缝衔接,以确保系统的实时性和高效性。

前提条件

  • 容器镜像服务 ACR(Container Registry)

    • 已创建企业版实例。具体操作,请参见创建企业版实例。

    • 已准备构建镜像的Dockerfile文件,(本文已放置在项目根目录)。具体操作,请参见使用企业版实例构建镜像。

    • 绑定源代码托管平台。本文以在Gitee代码平台更新并推送代码为例,具体操作,请参见绑定企业版实例与Gitee代码平台。

    • 已创建命名空间。具体操作,请参见创建命名空间。

  • Serverless 应用引擎 SAE(Serverless App Engine)

    已开通Serverless 应用引擎 SAE(Serverless App Engine)。具体操作,请参见开通Serverless 应用引擎 SAE(Serverless App Engine)。

  • 事件总线(EventBridge)

    已开通事件总线(EventBridge)。具体操作,请参见开通事件总线EventBridge并授权。

使用限制

仅适用于微服务应用。

背景信息

通过事件总线(EventBridge)触发的方式,监听ACR容器镜像服务构建镜像完成后,然后由事件总线触发SAE的自动CD,并运行版本镜像应用,实现高效的应用测试,并完成项目开发工作。

image

步骤一:使用ACR企业版实例构建镜像

  1. 登录容器镜像服务控制台。

  2. 在左侧导航栏,单击实例列表。在顶部菜单栏,选择目标地域。

  3. 在实例列表页面,单击目标企业版实例。

  4. 在企业版实例管理页面选择仓库管理 > 镜像仓库,单击创建镜像仓库。

  5. 在仓库信息配置向导中设置命名空间、仓库名称、仓库类型、镜像版本、摘要、描述信息,然后单击下一步。

    image

  6. 在代码源配置向导中,代码源选择Gitee,在下拉列表中选择目标仓库和仓库名称,构建设置选中代码变更时自动构建镜像,然后单击创建镜像仓库。

    image

  7. 在镜像仓库页面单击目标仓库右侧的操作列中的管理。

  8. 单击左侧导航栏中的构建,在构建规则设置区域单击添加规则,在构建信息配置向导中设置参数,然后单击下一步。

    参数

    说明

    类型

    设置源代码仓库的类型,可以是Branch或Tag。

    Branch/Tag

    选择或填写Branch/Tag,支持正则规则。当正则规则为release-(?<imageTag>\w*)时,将识别release-v1源代码变更并自动构建版本为v1的镜像(不支持立即构建),更多信息,请参见正则表达式命名捕获组。

    说明

    设置正则规则后仅支持系统自动构建,不支持手动立即构建。

    构建上下文目录

    设置Dockerfile文件所在的目录。指的是相对目录,以Branch/Tag的根目录为父目录,例如您的Branch为master,您的Dockerfile文件放在master下,则您的Dockerfile目录为/。

    Dockerfile文件名

    设置Dockerfile文件名,默认为Dockerfile。

    image

  9. 在镜像版本配置向导中设置参数,单击保存,然后单击下一步。

    说明

    单击新增配置,可以增加镜像版本,最多可以设置3个镜像版本。

    参数

    说明

    镜像版本

    设置镜像Tag,例如latest。支持命名捕获,例如使用Branch/Tag中捕获的内容。

    时间

    推送源代码的东八区(UTC+8)时间,有两种格式可供选择,例如20201015和202010151613。

    说明

    该参数为可选项,当选中该参数后系统仅支持自动构建,不支持手动立即构建。

    Commit ID

    最近一次推送代码的Commit ID,默认取前6位,可以滑动下方的滑块设置位数。

    说明

    该参数为可选项,当选中该参数后系统仅支持自动构建,不支持手动立即构建。

    image

  10. 在构建配置配置向导中设置构建参数,然后单击确定。

    参数

    说明

    构建架构

    选择构建架构,支持并行构建,最终形成一个镜像版本对应多个架构镜像。

    构建参数

    镜像构建运行时参数,构建参数由区分大小写的键值对组成,您最多可以设置20个构建参数。您可以设置构建参数,该构建参数会修改Dockerfile文件中的环境变量,使同一个Dockerfile文件呈现多种状态。

    image

  11. 触发构建规则。

    您可以通过以下两种方式触发构建规则:

    • 在构建页面的构建规则设置区域,单击目标构建规则操作列下的立即构建,触发构建规则。

      image

    • 向代码仓库的master分支提交代码,触发构建规则。

    说明
    • 在构建页面构建日志区域单击目标构建任务操作列的取消,可以取消构建任务。

    • 在构建页面构建日志区域单击目标构建任务操作列的日志,可以查看构建过程日志。

    在左侧导航栏单击镜像版本,您可以看到构建的镜像,表示构建镜像成功。

步骤二:使用镜像部署SAE应用

  1. 登录SAE控制台。

  2. 在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,然后单击创建应用。

  3. 在应用基本信息配置向导中,配置相关信息,然后单击下一步:应用部署配置。

    配置项

    说明

    应用名称

    输入自定义的应用名称。

    专有网络配置

    选择自定义配置的专有网络的配置方式。选中后,为创建的应用选择所需的命名空间、VPC、vSwitch及安全组。

    说明

    VPC与ACR企业版实例保持一致。

    命名空间

    从下拉列表中选择已创建的命名空间。命名空间和VPC是一一映射关系。关于修改VPC的更多信息,请参见创建和管理专有网络。

    vSwitch

    单击请选择vSwitch,在选择vSwitch对话框配置。

    vSwitch数量至少需要配置1个,建议不超过3个,且每个vSwitch至少匹配1个应用实例。

    安全组

    从下拉列表选择安全组。如果您的VPC内没有创建安全组,请单击创建安全组,根据提示创建安全组。更多信息,请参见创建安全组。

    应用实例数

    选择需要创建的实例个数。

    vCPU

    选择需要创建的实例vCPU规格。

    内存

    选择需要创建的实例内存规格。

    应用描述

    填写应用的基本情况。

    image

  4. 在应用部署配置向导中,配置应用部署信息,然后单击下一步:确认规格。更多信息,请参见在SAE控制台使用镜像部署多语言应用。

    配置项

    说明

    技术栈语言

    选择其它语言,包括C++、Go、.NET、Node.js等语言。

    应用部署方式

    仅支持镜像。

    配置镜像

    指定部署应用的镜像文件。单击我的阿里云镜像页签,单击镜像服务企业版,在下拉列表中选择目标企业版实例。

    说明

    选择容器镜像服务企业版部署应用,您需要为目标企业实例配置专有网络的访问控制。

  5. 在确认规格配置向导,查看您所创建应用的详细信息以及费用配置情况,然后单击确认创建。

    页面会跳转至创建完成配置向导,您可以单击应用详情页进入基本信息页面。

步骤三:创建EventBridge自定义事件总线

  1. 登录事件总线EventBridge控制台。

  2. 在左侧导航栏,单击事件总线,在顶部菜单栏,选择地域。

  3. 在事件总线页面的自定义事件总线区域,单击快速创建。

  4. 在创建自定义事件总线面板,配置相关信息。

    1. 在总线配置向导中,输入自定义事件总线名称和描述,然后单击下一步。

    2. 在事件源配置向导中,输入事件源名称和描述,事件提供方选择HTTP/HTTPS 触发,配置以下参数,然后单击确认。

      参数名称

      参数说明

      请求类型

      选择HTTP&HTTPS。

      请求方法

      请求方法选择GET、POST。

      安全配置

      安全配置的类型选择无需配置。

      image

    3. 在规则配置向导中,输入规则名称和描述,在模式内容代码框输入事件模式,然后单击下一步。

    4. 在目标配置向导中,服务类型选择云产品接口触发Serverless 应用引擎,接口版本选择2019-05-06,选择接口类型,填写接口参数和角色配置信息,然后单击创建。

      使用EventBridge触发SAE App

      接口类型选择DeployApplication,填写以下接口参数信息。更多接口参数信息,请参见DeployApplication。

      名称

      类型

      位置

      是否必选

      示例值

      描述

      AppId

      String

      Query

      是

      7171a6ca-d1cd-4928-8642-7d5cfe69****

      需要部署的应用ID。

      ImageUrl

      String

      Query

      否

      registry.cn-hangzhou.aliyuncs.com/sae_test/ali_sae_test:0.0.1

      镜像地址。当Package Type为Image时必填。

      AcrInstanceId

      String

      FormData

      否

      cri-xxxxxx

      ACR企业版实例ID。当ImageUrl为容

      器镜像服务企业版时必填。

      image

      image

      image

      image

步骤四:创建ACR事件规则

  1. 登录容器镜像服务控制台。

  2. 在左侧导航栏,单击实例列表。在顶部菜单栏,选择地域。

  3. 在实例列表页面单击目标企业版实例。

  4. 在实例详情页面左侧导航栏选择实例管理 > 事件通知。

  5. 在事件规则页签下单击创建规则。

  6. 在事件范围配置向导中设置参数,然后单击下一步。

    参数

    说明

    规则名称

    设置事件规则名称。

    事件类型

    设置事件通知触发的事件类型,在下拉列表中选择镜像构建完成。

    勾选镜像构建成功时,触发事件通知。

    生效范围

    设置事件生效的范围,选择仓库,选择命名空间和镜像仓库,设置镜像版本过滤的正则规则,在该镜像仓库下符合正则规则的镜像版本将触发事件通知。

    image

  7. 在事件通知配置向导中,通知方式选择HTTPS,输入已创建的事件总线事件源的地址(公网请求URL),然后单击保存。

    image

步骤五:更新源码,结果验证

当Gitee上的代码被修改后,ACR会自动构建镜像,并通过事件总线(EventBridge)触发SAE应用自动部署的无缝衔接。

您可以在事件总线控制台查看事件轨迹,查看事件在事件总线EventBridge中的处理轨迹。在事件总线(EventBridge)控制台发布事件后,如果事件目标未接收到事件或接收到的事件与实际场景不符,您可以使用事件追踪功能,帮助您定位事件收发过程中出现问题的环节和原因。

image

您可以在SAE控制台查看应用的变更记录,查看是否产生应用重新部署的变更记录。

image

相关文章

云效2020部署SAE应用与任务模板概览 2025-04-17 11:00

应用在不断迭代过程中,需要持续集成与部署,通过自动构建集成、测试和循环部署,高效顺畅地交付产品。云效2020支持不同语言的应用和任务模板的持续集成和部署。本文介绍云效2020部署应用和任务模板至Serverless 应用引擎 SAE(Serverless App Engine)的部署流程,以及不同语

部署Java应用至SAE 2025-04-17 11:00

本文介绍如何使用云效以JAR包或者WAR包的方式将Java语言的应用部署至Serverless 应用引擎 SAE(Serverless App Engine)。 前提条件

部署PHP应用至SAE 2025-04-17 11:00

本文介绍如何使用云效以镜像方式将PHP语言的应用部署至Serverless 应用引擎 SAE(Serverless App Engine)。 前提条件

部署PHP ZIP应用至SAE 2025-04-17 11:00

本文介绍如何使用云效以ZIP包方式将PHP语言的应用部署至Serverless 应用引擎 SAE(Serverless App Engine)。 前提条件

部署Golang应用至SAE 2025-04-17 11:00

本文介绍如何使用云效以镜像方式将Golang语言的应用部署至Serverless 应用引擎 SAE(Serverless App Engine)。 前提条件

部署Node.js应用至SAE 2025-04-17 11:00

本文介绍如何使用云效以镜像方式将Node.js语言的应用部署至SAE。 前提条件

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1