全局自定义动作
目录结构
|-- global_custom_actions/
|-- global_custom_actions.yaml
|-- ...
YAML 文件中可以包含一个或多个全局自定义动作。
配置说明
参数名 | 数据类型 | 是否必选 | 描述 |
---|---|---|---|
name | string | 是 | 全局自定义动作的名称,也是该动作的唯一标识 |
conditions | array | 是 | 触发该动作的条件列表 |
actions | array | 是 | 当条件满足时要执行的动作列表 |
条件 (conditions) 配置
可参考 页面规则 - 条件
动作 (actions) 配置
可参考 页面规则 - 动作
配置示例
- name: global-action-1
conditions:
- var: uri
op: eq
val: /hello
actions:
- limit-req-rate:
rate_shape_unit: r/s
rate_reject: 20
rate_reject_unit: r/s
error_page_status_code: 429
reject_action: error_page
limit_key: uri
rate_shape: 10
- name: global-action-2
conditions:
- var: uri
op: eq
val: /bad/request
actions:
- exit:
code: 403
- name: global-action-3
conditions:
- var: uri
op: eq
val: /el
actions:
- user-code:
el: |-
{
true =>
set-upstream-name("hello $or_global_user_variable_uuid"),
done;
}
此配置定义了三个全局自定义动作,每个动作都有特定的条件和要执行的动作。
使用示例
更新配置到 OpenResty Edge 中:
edge-config https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -l global_custom_actions -i /root/oredge-configs
从 OpenResty Edge 中导出配置:
edge-config -u https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -E -l global_custom_actions
示例中均使用 -l global_custom_actions
来指定只导入/导出全局自定义动作相关的配置。
注意事项
全局自定义动作是一个全局配置,为了保持与多个本地配置的兼容性,在更新配置时不会执行删除操作。
每个全局自定义动作必须有一个唯一的名称。
动作配置必须是有效的动作类型和相应的配置参数。
在更新配置时,工具会比较新旧配置来确定是否需要更新。如果配置有变化,则会执行更新操作。
在导入配置时,工具会先检查配置的有效性,然后再执行添加或更新操作。
在导出配置时,工具会格式化 YAML 内容,特别是对于
user-code
动作中的el
字段。