添加触发器
操作场景
容器镜像服务可搭配云容器引擎CCE、云容器实例CCI一起使用,实现镜像版本更新时自动更新使用该镜像的应用。您只需要为镜像添加一个触发器,通过触发器,可以在每次生成新的镜像版本时,自动执行更新动作,如:自动更新使用该镜像的应用。
目前仅“华北-北京四”区域同时支持添加CCE和CCI类型的触发器,其他区域仅支持添加CCE类型的触发器。
前提条件
更新应用镜像版本之前,请确保已创建容器应用,将镜像部署到云容器引擎CCE或云容器实例CCI。
如未创建,请登录云容器引擎工作负载页面进行创建,具体创建方法请参见创建无状态负载(Deployment)或创建有状态负载(StatefulSet),或登录云容器实例无状态负载页面进行创建,具体创建方法请参见创建无状态负载。
操作步骤
- 登录容器镜像服务控制台。
- 在左侧导航栏选择“我的镜像”,单击右侧镜像名称,进入镜像详情页。
- 选择“触发器”页签,单击“添加触发器”,根据表1填写相关参数,然后单击“确定”。
图1 添加触发器
表1 触发器 参数
说明
触发器名称
自定义触发器的名称。
字母开头,由字母、数字、下划线_、中划线-组成,下划线、中划线不能连续且不能作为结尾,1-64个字符。
触发条件
支持如下三种触发条件,当镜像有新版本时,触发部署应用。
- 全部触发:有新的镜像版本生成或镜像版本号不变,镜像内容发生变化重新推送时,触发部署。
- 指定版本号触发:有指定镜像版本生成或更新时,触发部署。
- 正则触发:有符合正则表达式的镜像版本生成或更新时,触发部署。正则表达式规则如下:
- *:匹配不包含路径分隔符“/”的任何字段。
- **:匹配包含路径分隔符“/”的任何字段。
- ?:匹配任何单个非“/”的字符。
- {选项1, 选项2, ...}:同时匹配多个选项。
触发动作
当前仅支持更新容器的镜像,需指定更新的应用,以及该应用下的容器。
触发器状态
选择“启用”。
触发器类型
选择“云容器引擎CCE”或“云容器实例CCI”。
说明:当前仅“华北-北京四”区域支持“云容器实例CCI”的触发器类型。
选择应用
选择要更新镜像的容器。
示例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)”。