
# 配置API的流量镜像
API网关提供了镜像客户端请求的能力，将发送到源后端的流量复制一份到镜像服务中，在不影响业务后端的情况下，便于对请求内容进行具体的分析和统计。
![](https://support.huaweicloud.com/usermanual-apig/public_sys-resources/note_3.0-zh-cn.png)
如果此策略在当前实例中不支持，可[提交工单](https://support.huaweicloud.com/usermanual-ticket/zh-cn_topic_0127038618.html)升级实例到最新版本。
#### 约束与限制
- 同一个环境中，一个API只能被一个流量镜像策略绑定，但一个流量镜像策略可以绑定多个API。
- 镜像请求返回的响应会被忽略。
- 镜像请求的请求体大小受[实例参数"request_body_size"](https://support.huaweicloud.com/usermanual-apig/apig_03_0039.html)控制，默认请求体大小为12MB，可通过"request_body_size"参数调整请求体大小，**请求体大小调整越大性能损耗越大**，请谨慎操作。
- API的后端服务类型为Mock时，不支持绑定流量镜像策略。
- 策略和API本身相互独立，只有为API绑定策略后，策略才对API生效。为API绑定策略时需指定发布环境，策略只对指定环境上的API生效。
- API的下线操作不影响策略的绑定关系，再次发布后仍然会带有下线前绑定的策略。
- 如果策略与API有绑定关系，则策略无法执行删除操作。
 
#### 创建流量镜像策略
1. 进入[API网关控制台](https://console.huaweicloud.com/apig2/#/overview)页面。
2. 根据实际业务在左侧导航栏上方选择实例。

3. 在左侧导航栏选择"API管理 \> API策略"。
4. 在"策略管理"页面，单击"创建策略"。
5. 在"选择策略类型"弹窗中，选择"插件策略 \> 流量镜像"。
6. 在"创建策略"弹窗中，根据下表参数说明，配置策略信息。 
   表1流量镜像参数说明 
   | 参数       | 说明                                                                                                                                                                                                                                                                                                              |
   |:---|:---|
   | 策略名称     | 填写策略的名称，根据业务规划自定义。建议您按照一定的命名规则填写策略名称，方便您快速识别和查找。 支持中文、英文、数字、下划线，且只能以英文或中文开头，长度为3\~255个字符。                                                                                                                                                           |
   | 策略类型     | 固定为"流量镜像"。                                                                                                                                                                                                                                                                                                      |
   | 描述       | 填写策略的描述信息。长度为1\~255个字符。                                                                                                                                                                                                                                                                                         |
   | 策略内容     | 策略的配置内容，支持表单配置和脚本配置两种方式。                                                                                                                                                                                                                                                                                        |
   | 镜像协议     | 镜像请求协议。指定的镜像服务协议须与用户的镜像业务协议保持一致。                                                                                                                                                                                                                                                                                |
   | 镜像地址     | 镜像服务的地址。由IP/域名和端口号组成，总长度不超过255。格式为主机:端口（如：xxx.xxx.xxx:7443）。如果不写端口号，那么HTTPS默认端口号为443，HTTP默认端口号为80。                                                                                                                                                                                                              |
   | 镜像请求路径   | 当"镜像协议"为HTTP/HTTPS时设置。 镜像请求的路径，只能以/开头，支持\*%-_.等特殊字符，总长度不超过512，且满足URI规范。如果不指定镜像请求路径，那么默认使用绑定的API的请求路径。                                                                                                                                                                            |
   | 拼接模式     | 当指定镜像请求的路径后，可以设置请求路径的拼接模式。 - replace模式：表示使用指定的"镜像请求路径"作为镜像请求的路径。  - prefix模式：表示使用指定的"镜像请求路径"+API的请求路径作为镜像请求的路径。   |
   | 采样率      | 镜像请求的采样率，取值范围：0.00001\~1。当设置为1时为全采样，默认为1。 例如，API请求流量为1000，采样率为0.1，那么采样的线上请求流量为100。                                                                                                                                                                                                 |
   | 超时时间(ms) | 镜像请求的超时时间，单位ms。默认超时时间为5000ms。                                                                                                                                                                                                                                                                                   |
   | 客户端请求体   | 镜像客户端的请求体，默认开启镜像客户端请求体。                                                                                                                                                                                                                                                                                         |
      
   
   
7. 单击"确定"。 
   - 在策略列表中显示已创建的策略，表示策略创建成功。
   
   - 如果您需要复制已创建的策略，请在已创建策略的"操作"列中单击"克隆"配置参数即可。**克隆策略的名称不能与已创建的策略名称重复。**
   
   
   
   
8. 策略创建后，您还需要[为策略绑定API]，才能使策略对API生效。
   
   **策略的绑定、解绑、更新会实时生效，不需要重新发布API。**
   
   
 
#### 脚本配置示例
```
{
  "protocol": "HTTPS",
  "host": "X.X.X.X",
  "sample_ratio": 1,
  "timeout": 5000,
  "mirror_request_body_enabled": true,
  "path": "/ab",
  "path_concat_mode": "replace"
}
```
 #### 为策略绑定API
1. 单击策略名称，进入策略详情。
2. 在API列表区域选择环境后，单击"绑定API"。
3. 筛选API分组以及发布环境，勾选所需的API。 
   支持通过API名称或标签筛选API，标签为创建API时定义的标签。
   
   
4. 单击"确定"，绑定完成。 
   - 如果单个API不需要绑定此策略，单击API所在行的"解绑"。
   
   - 如果批量API不需要绑定此策略，则勾选待解绑的API，单击列表上方"解绑"。最多同时解绑1000个API。
   
   
   
   
 
#### 相关文档
如果您希望通过API创建流量镜像策略，请参考[创建插件](https://support.huaweicloud.com/api-apig/CreatePlugin.html)。
