全域性自定義動作

目錄結構

|-- global_custom_actions/
  |-- global_custom_actions.yaml
  |-- ...

YAML 檔案中可以包含一個或多個全域性自定義動作。

配置說明

引數名資料型別是否必選描述
namestring全域性自定義動作的名稱,也是該動作的唯一標識
conditionsarray觸發該動作的條件列表
actionsarray當條件滿足時要執行的動作列表

條件 (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 來指定只匯入/匯出全域性自定義動作相關的配置。

注意事項

  1. 全域性自定義動作是一個全域性配置,為了保持與多個本地配置的相容性,在更新配置時不會執行刪除操作。

  2. 每個全域性自定義動作必須有一個唯一的名稱。

  3. 動作配置必須是有效的動作型別和相應的配置引數。

  4. 在更新配置時,工具會比較新舊配置來確定是否需要更新。如果配置有變化,則會執行更新操作。

  5. 在匯入配置時,工具會先檢查配置的有效性,然後再執行新增或更新操作。

  6. 在匯出配置時,工具會格式化 YAML 內容,特別是對於 user-code 動作中的 el 欄位。

相關文件