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,并运行版本镜像应用,实现高效的应用测试,并完成项目开发工作。
步骤一:使用ACR企业版实例构建镜像
登录容器镜像服务控制台。
在左侧导航栏,单击实例列表。在顶部菜单栏,选择目标地域。
在实例列表页面,单击目标企业版实例。
在企业版实例管理页面选择
,单击创建镜像仓库。在仓库信息配置向导中设置命名空间、仓库名称、仓库类型、镜像版本、摘要、描述信息,然后单击下一步。
在代码源配置向导中,代码源选择Gitee,在下拉列表中选择目标仓库和仓库名称,构建设置选中代码变更时自动构建镜像,然后单击创建镜像仓库。
在镜像仓库页面单击目标仓库右侧的操作列中的管理。
单击左侧导航栏中的构建,在构建规则设置区域单击添加规则,在构建信息配置向导中设置参数,然后单击下一步。
参数
说明
类型
设置源代码仓库的类型,可以是Branch或Tag。
Branch/Tag
选择或填写Branch/Tag,支持正则规则。当正则规则为release-(?<imageTag>\w*)时,将识别release-v1源代码变更并自动构建版本为v1的镜像(不支持立即构建),更多信息,请参见正则表达式命名捕获组。
说明设置正则规则后仅支持系统自动构建,不支持手动立即构建。
构建上下文目录
设置Dockerfile文件所在的目录。指的是相对目录,以Branch/Tag的根目录为父目录,例如您的Branch为master,您的Dockerfile文件放在master下,则您的Dockerfile目录为/。
Dockerfile文件名
设置Dockerfile文件名,默认为Dockerfile。
在镜像版本配置向导中设置参数,单击保存,然后单击下一步。
说明单击新增配置,可以增加镜像版本,最多可以设置3个镜像版本。
参数
说明
镜像版本
设置镜像Tag,例如latest。支持命名捕获,例如使用Branch/Tag中捕获的内容。
时间
推送源代码的东八区(UTC+8)时间,有两种格式可供选择,例如20201015和202010151613。
说明该参数为可选项,当选中该参数后系统仅支持自动构建,不支持手动立即构建。
Commit ID
最近一次推送代码的Commit ID,默认取前6位,可以滑动下方的滑块设置位数。
说明该参数为可选项,当选中该参数后系统仅支持自动构建,不支持手动立即构建。
在构建配置配置向导中设置构建参数,然后单击确定。
参数
说明
构建架构
选择构建架构,支持并行构建,最终形成一个镜像版本对应多个架构镜像。
构建参数
镜像构建运行时参数,构建参数由区分大小写的键值对组成,您最多可以设置20个构建参数。您可以设置构建参数,该构建参数会修改Dockerfile文件中的环境变量,使同一个Dockerfile文件呈现多种状态。
触发构建规则。
您可以通过以下两种方式触发构建规则:
在构建页面的构建规则设置区域,单击目标构建规则操作列下的立即构建,触发构建规则。
向代码仓库的master分支提交代码,触发构建规则。
说明在构建页面构建日志区域单击目标构建任务操作列的取消,可以取消构建任务。
在构建页面构建日志区域单击目标构建任务操作列的日志,可以查看构建过程日志。
在左侧导航栏单击镜像版本,您可以看到构建的镜像,表示构建镜像成功。
步骤二:使用镜像部署SAE应用
登录SAE控制台。
在左侧导航栏,选择 ,在顶部菜单栏选择地域,然后单击创建应用。
在应用基本信息配置向导中,配置相关信息,然后单击下一步:应用部署配置。
配置项
说明
应用名称
输入自定义的应用名称。
专有网络配置
选择自定义配置的专有网络的配置方式。选中后,为创建的应用选择所需的命名空间、VPC、vSwitch及安全组。
说明VPC与ACR企业版实例保持一致。
命名空间
从下拉列表中选择已创建的命名空间。命名空间和VPC是一一映射关系。关于修改VPC的更多信息,请参见创建和管理专有网络。
vSwitch
单击请选择vSwitch,在选择vSwitch对话框配置。
vSwitch数量至少需要配置1个,建议不超过3个,且每个vSwitch至少匹配1个应用实例。
安全组
从下拉列表选择安全组。如果您的VPC内没有创建安全组,请单击创建安全组,根据提示创建安全组。更多信息,请参见创建安全组。
应用实例数
选择需要创建的实例个数。
vCPU
选择需要创建的实例vCPU规格。
内存
选择需要创建的实例内存规格。
应用描述
填写应用的基本情况。
在应用部署配置向导中,配置应用部署信息,然后单击下一步:确认规格。更多信息,请参见在SAE控制台使用镜像部署多语言应用。
配置项
说明
技术栈语言
选择其它语言,包括C++、Go、.NET、Node.js等语言。
应用部署方式
仅支持镜像。
配置镜像
指定部署应用的镜像文件。单击我的阿里云镜像页签,单击镜像服务企业版,在下拉列表中选择目标企业版实例。
说明选择容器镜像服务企业版部署应用,您需要为目标企业实例配置专有网络的访问控制。
在确认规格配置向导,查看您所创建应用的详细信息以及费用配置情况,然后单击确认创建。
页面会跳转至创建完成配置向导,您可以单击应用详情页进入基本信息页面。
步骤三:创建EventBridge自定义事件总线
在左侧导航栏,单击事件总线,在顶部菜单栏,选择地域。
在事件总线页面的自定义事件总线区域,单击快速创建。
在创建自定义事件总线面板,配置相关信息。
在总线配置向导中,输入自定义事件总线名称和描述,然后单击下一步。
在事件源配置向导中,输入事件源名称和描述,事件提供方选择HTTP/HTTPS 触发,配置以下参数,然后单击确认。
参数名称
参数说明
请求类型
选择HTTP&HTTPS。
请求方法
请求方法选择GET、POST。
安全配置
安全配置的类型选择无需配置。
在规则配置向导中,输入规则名称和描述,在模式内容代码框输入事件模式,然后单击下一步。
在目标配置向导中,服务类型选择云产品接口触发Serverless 应用引擎,接口版本选择2019-05-06,选择接口类型,填写接口参数和角色配置信息,然后单击创建。
步骤四:创建ACR事件规则
登录容器镜像服务控制台。
在左侧导航栏,单击实例列表。在顶部菜单栏,选择地域。
在实例列表页面单击目标企业版实例。
在实例详情页面左侧导航栏选择
。在事件规则页签下单击创建规则。
在事件范围配置向导中设置参数,然后单击下一步。
参数
说明
规则名称
设置事件规则名称。
事件类型
设置事件通知触发的事件类型,在下拉列表中选择镜像构建完成。
勾选镜像构建成功时,触发事件通知。
生效范围
设置事件生效的范围,选择仓库,选择命名空间和镜像仓库,设置镜像版本过滤的正则规则,在该镜像仓库下符合正则规则的镜像版本将触发事件通知。
在事件通知配置向导中,通知方式选择HTTPS,输入已创建的事件总线事件源的地址(公网请求URL),然后单击保存。
步骤五:更新源码,结果验证
当Gitee上的代码被修改后,ACR会自动构建镜像,并通过事件总线(EventBridge)触发SAE应用自动部署的无缝衔接。
您可以在事件总线控制台查看事件轨迹,查看事件在事件总线EventBridge中的处理轨迹。在事件总线(EventBridge)控制台发布事件后,如果事件目标未接收到事件或接收到的事件与实际场景不符,您可以使用事件追踪功能,帮助您定位事件收发过程中出现问题的环节和原因。
您可以在SAE控制台查看应用的变更记录,查看是否产生应用重新部署的变更记录。