添加触发器
触发器的定义与功能
容器镜像服务的触发器是一种自动化机制,用于在镜像仓库中发生特定事件(如镜像版本更新)时,自动执行预定义的HTTP POST请求。其核心功能包括:
- 自动化部署:当镜像版本更新时,触发器可自动触发CI/CD流程或更新使用该镜像的应用。
- 流程集成:支持快速接入现有研发流程及CI/CD平台,实现容器DevOps场景。
- 跨服务联动:可与云容器引擎CCE、云容器实例CCI等服务集成,实现镜像更新后自动更新应用。
操作场景
容器镜像服务可搭配云容器引擎CCE、云容器实例CCI一起使用,实现镜像版本更新时自动更新使用该镜像的应用。您只需要为镜像添加一个触发器,通过触发器,可以在每次生成新的镜像版本时,自动执行更新动作,如:自动更新使用该镜像的应用。
目前仅“华北-北京四”区域同时支持添加CCE和CCI类型的触发器,其他区域仅支持添加CCE类型的触发器。
前提条件
- 用户需具备CCE或CCI相关权限,详细操作请参见CCE细粒度授权操作 CCI细粒度授权操作。
- 更新应用镜像版本之前,请确保已创建容器应用,将镜像部署到云容器引擎CCE或云容器实例CCI。
如未创建,请登录云容器引擎工作负载页面进行创建,具体创建方法请参见创建无状态负载(Deployment)或创建有状态负载(StatefulSet),或登录云容器实例无状态负载页面进行创建,具体创建方法请参见创建无状态负载。
操作步骤
- 登录SWR控制台SWR控制台。
- 在左侧导航栏选择“我的镜像”,单击右侧镜像名称,进入镜像详情页。
- 选择“触发器”页签,单击“添加触发器”,根据表1填写相关参数,然后单击“确定”。 图1 添加触发器
表1 触发器 参数
示例
参数说明
触发器名称
trigger
自定义触发器的名称。
字母开头,由字母、数字、下划线_、中划线-组成,下划线、中划线不能连续且不能作为结尾,1-64个字符。
触发条件
全部触发
支持如下三种触发条件,当镜像有新版本时,触发部署应用。
- 全部触发:有新的镜像版本生成时,触发部署。
- 指定版本号触发:有指定镜像版本生成时,触发部署。
- 正则触发:有符合正则表达式的镜像版本生成时,触发部署。正则表达式规则如下:
- *:匹配不包含路径分隔符“/”的任何字段。
- **:匹配包含路径分隔符“/”的任何字段。
- ?:匹配任何单个非“/”的字符。
- {选项1, 选项2, ...}:同时匹配多个选项。
触发动作
更新容器镜像
当前仅支持更新容器的镜像,需指定更新的应用,以及该应用下的容器。
触发器状态
启用
选择“启用”。
触发器类型
云容器引擎CCE
选择“云容器引擎CCE”或“云容器实例CCI”。
说明:当前仅“华北-北京四”区域支持“云容器实例CCI”的触发器类型。
选择应用
test/default/test-deployment/全部容器
选择要更新镜像的容器。
- 集群名称:选择已部署应用的CCE集群名称(可显示集群原名)。
- 命名空间:选择应用所在的Kubernetes命名空间。
- 应用:选择需要更新镜像的工作负载(如Deployment或StatefulSet)。
- 容器:选择更新范围
- 全部容器:更新该应用下所有容器的镜像。
- 指定容器:如仅更新container-1容器。
示例1:触发条件为“全部触发”
假设有一个欢迎页面为“Hello, SWR!”的Nginx镜像(版本号为v1),使用该镜像创建了名称为“nginx”的无状态负载,该负载提供对外访问。

示例2:触发条件为“正则触发”
假设有一个欢迎页面为“Hello, SWR!”的Nginx镜像(版本号为v0),使用该镜像创建了名称为“nginx”的无状态负载,该负载提供对外访问。

- 为Nginx镜像添加触发器。
触发器名称填写“Tags_regular_expression”,触发条件选择“正则触发”,输入正则表达式:^v2.*(匹配以v2开头的版本号),选择使用了Nginx镜像的无状态负载及容器。

- Nginx镜像新增一个v1版本,该版本的欢迎页面为“Hello, SWR! (v1)”。

- Nginx镜像新增一个v2版本,该版本的欢迎页面为“Hello, SWR! (v2)”。

- 确认是否触发成功。
在“触发器”页签,单击
图标,查看触发结果。从图4中可以看出,只有v2版本被触发了,符合设置的正则表达式规则。工作负载的访问页面已变更为“Hello, SWR! (v2)”。




