
# 添加触发器
#### 触发器的定义与功能
容器镜像服务的**触发器**是一种自动化机制，用于在镜像仓库中发生特定事件（如镜像版本更新）时，自动执行预定义的HTTP POST请求。其核心功能包括：
1. **自动化部署**：当镜像版本更新时，触发器可自动触发CI/CD流程或更新使用该镜像的应用。
2. **流程集成**：支持快速接入现有研发流程及CI/CD平台，实现容器DevOps场景。
3. **跨服务联动**：可与云容器引擎CCE、云容器实例CCI等服务集成，实现镜像更新后自动更新应用。
 
#### 操作场景
容器镜像服务可搭配云容器引擎CCE、云容器实例CCI一起使用，实现镜像版本更新时自动更新使用该镜像的应用。您只需要为镜像添加一个触发器，通过触发器，可以在每次生成新的镜像版本时，自动执行更新动作，如：自动更新使用该镜像的应用。
![](https://support.huaweicloud.com/usermanual-swr/public_sys-resources/note_3.0-zh-cn.png)
目前仅"华北-北京四"区域同时支持添加CCE和CCI类型的触发器，其他区域仅支持添加CCE类型的触发器。
#### 前提条件
- 用户需具备CCE或CCI相关权限，详细操作请参见[CCE细粒度授权操作](https://support.huaweicloud.com/usermanual-swr/swr_01_0075.html#swr_01_0075__section1770422275513) [CCI细粒度授权操作](https://support.huaweicloud.com/usermanual-swr/swr_01_0075.html#swr_01_0075__section2981734165515)。
  ![](https://support.huaweicloud.com/usermanual-swr/public_sys-resources/note_3.0-zh-cn.png)
  SWR的触发器本身不收费，但是使用到的云容器引擎CCE或者云容器实例CCI作会根据各自的收费策略进行收费，CCE收费策略详见[CCE计费概述](https://support.huaweicloud.com/price-cce/cce_03_0001.html)，CCI收费策略详见[CCI计费概述](https://support.huaweicloud.com/price-cci2/cci_06_1001.html)。
  
- 更新应用镜像版本之前，请确保已创建容器应用，将镜像部署到云容器引擎CCE或云容器实例CCI。 如未创建，请登录云容器引擎工作负载页面进行创建，具体创建方法请参见[创建无状态负载（Deployment）](https://support.huaweicloud.com/usermanual-cce/cce_10_0047.html)或[创建有状态负载（StatefulSet）](https://support.huaweicloud.com/usermanual-cce/cce_10_0048.html)，或登录云容器实例无状态负载页面进行创建，具体创建方法请参见[创建无状态负载](https://support.huaweicloud.com/usermanual-cci/cci_01_0011.html#section0)。
  
 
#### 操作步骤
1. 登录[SWR控制台](https://console.huaweicloud.com/swr/#/swr/dashboard)。
2. 在左侧导航栏选择"我的镜像"，单击右侧镜像名称，进入镜像详情页。
3. 选择"触发器"页签，单击"添加触发器"，根据[表1]填写相关参数，然后单击"确定"。
   
   图1*添加触发器*   
   ![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000002630071716.png "点击放大")
   
    表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"的无状态负载，该负载提供对外访问。
![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000001197732971.png "点击放大")
1. 为Nginx镜像添加触发器。 触发器名称填写"All_tags"，触发条件选择"全部触发"，选择使用了Nginx镜像的无状态负载及容器。
   
2. Nginx镜像新增一个v2版本，该版本的欢迎页面为"Hello, SoftWare Repository for Container!"。
   图2镜像版本v2   
   ![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000002630083620.png "点击放大")
   
   
3. 确认是否触发成功。 在"触发器"页签，单击触发器对应的行的"触发历史"，查看触发结果为"成功"。
   图3触发结果   
   ![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000001879637838.png "点击放大")
   工作负载的访问页面已变更为"Hello, SoftWare Repository for Container!"。
   ![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000001197449731.png)
   
 
#### 示例2：触发条件为"正则触发"
假设有一个欢迎页面为"Hello, SWR!"的Nginx镜像（版本号为v0），使用该镜像创建了名称为"nginx"的无状态负载，该负载提供对外访问。
![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000001197337191.png "点击放大")
1. 为Nginx镜像添加触发器。 触发器名称填写"Tags_regular_expression"，触发条件选择"正则触发"，输入正则表达式：\^v2.\*（匹配以v2开头的版本号），选择使用了Nginx镜像的无状态负载及容器。
   ![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000002563779088.png "点击放大")
   
   
   
2. Nginx镜像新增一个v1版本，该版本的欢迎页面为"Hello, SWR! (v1)"。 
   ![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000002412326457.png "点击放大")
   
3. Nginx镜像新增一个v2版本，该版本的欢迎页面为"Hello, SWR! (v2)"。 ![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000002660359033.png "点击放大")
   
   
4. 确认是否触发成功。 在"触发器"页签，单击![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000001437904737.png)图标，查看触发结果。从[图4]中可以看出，只有v2版本被触发了，符合设置的正则表达式规则。
   图4触发结果示例   
   ![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000001901965606.png "点击放大")
   工作负载的访问页面已变更为"Hello, SWR! (v2)"。
   ![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000001939928397.png)
   
 
