
# 使用SWR触发器自动更新工作负载版本
#### 操作场景
容器镜像服务可搭配云容器引擎CCE一起使用，实现镜像版本更新时自动更新使用该镜像的应用。您只需要为镜像添加一个触发器，通过触发器，可以在每次生成新的镜像版本时，自动执行更新动作，如：自动更新使用该镜像的应用。
#### 前提条件
更新应用镜像版本之前，请确保已创建容器应用，将镜像部署到云容器引擎CCE。
如未创建，请登录云容器引擎工作负载页面进行创建，具体创建方法请参见[创建无状态负载（Deployment）](https://support.huaweicloud.com/usermanual-cce/cce_10_0047.html)或[创建有状态负载（StatefulSet）](https://support.huaweicloud.com/usermanual-cce/cce_10_0048.html)。
#### 操作步骤
1. 登录[SWR控制台](https://console.huaweicloud.com/swr/#/swr/dashboard)。
2. 在左侧导航栏选择"我的镜像"，单击右侧镜像名称，进入镜像详情页。
3. 选择"触发器"页签，单击"添加触发器"，根据[表1]填写相关参数，然后单击"确定"。
   
   图1*添加触发器*   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001881506968.png "点击放大")
    表1触发器 
   | 参数    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   |:---|:---|
   | 触发器名称 | 自定义触发器的名称。 字母开头，由字母、数字、下划线_、中划线-组成，下划线、中划线不能连续且不能作为结尾，1-64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 触发条件  | 支持如下三种触发条件，当镜像有新版本时，触发部署应用。 - 全部触发：有新的镜像版本生成或镜像内容发生更新时，触发部署。  - 指定版本号触发：有指定镜像版本生成或更新时，触发部署。  - 正则触发：有符合正则表达式的镜像版本生成或更新时，触发部署。正则表达式规则如下： - **\***：匹配不包含路径分隔符"/"的任何字段。  - **\*\***：匹配包含路径分隔符"/"的任何字段。  - **?**：匹配任何单个非"/"的字符。  - **{选项1, 选项2, ...}**：同时匹配多个选项。     |
   | 触发动作  | 当前仅支持更新容器的镜像，需指定更新的应用，以及该应用下的容器。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 触发器状态 | 选择"启用"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 触发器类型 | 选择"云容器引擎CCE"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 选择应用  | 选择要更新镜像的应用及其容器。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
      
   
   
 
#### 示例1：触发条件为"全部触发"
假设有一个欢迎页面为"Hello, SWR!"的Nginx镜像（版本号为v1），使用该镜像创建了名称为"nginx"的无状态负载，该负载提供对外访问。
![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001881347064.png "点击放大")
1. 为Nginx镜像添加触发器。 触发器名称填写"All_tags"，触发条件选择"全部触发"，选择使用了Nginx镜像的无状态负载及容器。
   
   
2. Nginx镜像新增一个v2版本，该版本的欢迎页面为"Hello, SoftWare Repository for Container!"。
   图2镜像版本v2   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001927426317.png "点击放大") 
3. 确认是否触发成功。 在"触发器"页签，单击触发器对应的行的"触发历史"，查看触发结果为"成功"。
   图3触发结果   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001927505909.png "点击放大")
   工作负载的访问页面已变更为"Hello, SoftWare Repository for Container!"。
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001881507012.png)
   
 
#### 示例2：触发条件为"正则触发"
假设有一个欢迎页面为"Hello, SWR!"的Nginx镜像（版本号为v0），使用该镜像创建了名称为"nginx"的无状态负载，该负载提供对外访问。
![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001927426321.png "点击放大")
1. 为Nginx镜像添加触发器。 触发器名称填写"Tags_regular_expression"，触发条件选择"正则触发"，输入正则表达式：\^v2.\*（匹配以v2开头的版本号），选择使用了Nginx镜像的无状态负载及容器。
   图4添加触发器-正则触发   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001960253180.png "点击放大") 
2. Nginx镜像新增一个v1版本，该版本的欢迎页面为"Hello, SWR! (v1)"。
   图5镜像版本v1   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001997014197.png "点击放大")
   在"触发器"页签，单击![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001927509529.png)图标，查看触发结果，v1版本未触发工作负载重新部署。
   工作负载的访问页面仍是"Hello, SWR! "。
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001881350720.png "点击放大")
   
3. Nginx镜像新增一个v2版本，该版本的欢迎页面为"Hello, SWR! (v2)"。
   图6镜像版本v2   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001960413586.png "点击放大") 
4. 确认是否触发成功。 在"触发器"页签，单击![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001927426325.png)图标，查看触发结果。从[图7]中可以看出，只有v2版本被触发了，符合设置的正则表达式规则。
   图7触发结果示例   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001997014441.png "点击放大")
   工作负载的访问页面已变更为"Hello, SWR! (v2)"。
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001961041820.png)
   
 
