全域性自定義動作
目錄結構
|-- 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
欄位。