通过事件总线实现镜像的持续部署

将镜像部署到SAE后,如果镜像升级版本,通常需要手动部署新版镜像。为提高运维效率,您可以通过事件总线实现镜像的持续部署。

方案概览

  1. 创建事件总线:当事件执行时,会将镜像部署到SAE。

  2. 创建触发器:在镜像仓库创建触发器,并绑定事件总线的事件源。当镜像被推送到镜像仓库时,会触发事件。

  3. 验证结果。

前提条件

已将镜像推送到镜像仓库并部署到SAE,本文中的镜像仓库以容器镜像服务ACR个人版为例。

1. 创建事件总线

  1. 进入事件总线控制台,在事件总线页面,切换到应用所在的地域,在自定义事件总线区域,单击快速创建

    image

  2. 总线中,填写自定义事件总线名称,其余参数保持默认。单击下一步

  3. 事件源中,根据如下说明配置参数,其余参数保持默认。单击下一步

    image

  4. 规则中,您可以自定义规则名称,其余参数保持默认。单击下一步

  5. 目标中,根据如下说明配置参数,其余参数保持默认。单击创建

    image

    image

    image

    image

    image

    配置项

    示例

    说明

    服务类型

    Serverless 应用引擎 (acs.openapi.sae)

    选择云产品接口触发中的Serverless 应用引擎

    接口参数 - AppID

    填写目标应用的应用ID

    如需查看应用ID,您可以在SAE控制台应用管理 > 微服务应用页面,单击应用名称,在基本信息页面的应用信息区域查看。

    接口参数 - PackageType

    Image

    表示应用部署类型为通过镜像部署。

    接口参数 - ImageUrl

    选择类型为模板

    变量中填写{"tag": "$.data.body.push_data.tag"}

    模板的填写格式为镜像仓库地址:${tag}

    如需查看镜像仓库地址,您可以在容器镜像服务ACR控制台镜像仓库页面,单击仓库名称,在基本信息页面的公网地址中查看。

    角色配置

    选择具有管理SAE权限的RAM角色。

    如果没有可选角色,请单击授权创建新角色,并在弹出的页面中,为角色授予AliyunSAEFullAccess权限。

2. 创建触发器

  1. 进入容器镜像服务控制台,在仓库管理>镜像仓库页面,单击镜像仓库。

    image

  2. 触发器页面,单击创建。根据如下说明配置参数。单击确定

    image

    配置项

    示例

    说明

    触发器URL

    填写事件总线中事件源的公网请求URL

    如需查看公网请求URL,您可以在事件总线控制台事件总线页面,找到已创建的事件总线,单击操作列的事件源。找到已创建的事件源,单击操作列的详情。在HTTP/HTTPS 触发 配置信息区域查看。

3. 验证结果

更新镜像并推送到镜像仓库,可以验证新版镜像已成功部署到SAE。您也可以验证如下信息:

  1. 进入容器镜像服务控制台,在仓库管理 > 镜像仓库页面,单击镜像仓库。在触发器页面,查看触发器的访问记录。验证推送镜像时,触发器已被触发。

  2. 进入事件总线控制台,在事件总线页面,找到已创建的事件总线,在操作列单击事件追踪。设置查询范围并单击查询。在查询结果中,查看事件轨迹,验证事件已成功执行。

  3. 进入Serverless应用引擎控制台,在应用管理 > 微服务应用页面,单击已部署的应用。在变更记录页面,验证新版镜像已部署成功。