更新时间:2024-06-18 GMT+08:00

添加触发器

操作场景

容器镜像服务可搭配云容器引擎CCE一起使用,实现镜像版本更新时自动更新使用该镜像的应用。您只需要为镜像添加一个触发器,通过触发器,可以在每次生成新的镜像版本时,自动执行更新动作,如:自动更新使用该镜像的应用。

前提条件

更新应用镜像版本之前,请确保已创建容器应用,将镜像部署到云容器引擎CCE。

如未创建,请登录云容器引擎工作负载页面进行创建,具体创建方法请参见创建无状态负载(Deployment)创建有状态负载(StatefulSet)

操作步骤

  1. 登录容器镜像服务控制台
  2. 在左侧导航栏选择“我的镜像”,单击右侧镜像名称,进入镜像详情页。
  3. 选择“触发器”页签,单击“添加触发器”,根据表1填写相关参数,然后单击“确定”

    图1 添加触发器
    表1 触发器

    参数

    说明

    触发器名称

    自定义触发器的名称。

    字母开头,由字母、数字、下划线_、中划线-组成,下划线、中划线不能连续且不能作为结尾,1-64个字符。

    触发条件

    支持如下三种触发条件,当镜像有新版本时,触发部署应用。

    • 全部触发:有新的镜像版本生成或镜像版本号不变,镜像内容发生变化重新推送时,触发部署。
    • 指定版本号触发:有指定镜像版本生成或更新时,触发部署。
    • 正则触发:有符合正则表达式的镜像版本生成或更新时,触发部署。正则表达式规则如下:
      • *:匹配不包含路径分隔符“/”的任何字段。
      • **:匹配包含路径分隔符“/”的任何字段。
      • ?:匹配任何单个非“/”的字符。
      • {选项1, 选项2, ...}:同时匹配多个选项。

    触发动作

    当前仅支持更新容器的镜像,需指定更新的应用,以及该应用下的容器。

    触发器状态

    选择“启用”

    触发器类型

    选择“云容器引擎CCE”。

    选择应用

    选择要更新镜像的容器。

示例1:触发条件为“全部触发”

假设有一个欢迎页面为“Hello, SWR!”的Nginx镜像(版本号为v1),使用该镜像创建了名称为“nginx”的无状态负载,该负载提供对外访问。

  1. 为Nginx镜像添加触发器。

    触发器名称填写“All_tags”,触发条件选择“全部触发”,选择使用了Nginx镜像的无状态负载及容器。

  2. Nginx镜像新增一个v2版本,该版本的欢迎页面为“Hello, SoftWare Repository for Container!”
    图2 镜像版本v2
  3. 确认是否触发成功。

    “触发器”页签,单击触发器对应的行的“触发历史”,查看触发结果为“成功”

    图3 触发结果

    工作负载的访问页面已变更为“Hello, SoftWare Repository for Container!”

示例2:触发条件为“正则触发”

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

  1. 为Nginx镜像添加触发器。

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

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

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

  4. 确认是否触发成功。

    “触发器”页签,单击图标,查看触发结果。从图4中可以看出,只有v2版本被触发了,符合设置的正则表达式规则。

    图4 触发结果示例

    工作负载的访问页面已变更为“Hello, SWR! (v2)”