脚本
Egern 允许用户通过编写 JavaScript 脚本来灵活地控制网络请求/响应的处理以及定时任务。通过这些脚本,用户可以根据需要对网络请求和响应进行定制化处理,或者设置定时任务来执行某些操作。
配置说明
scriptings
类型的配置包含三种类型的脚本:HTTP 请求脚本(http_request
)、HTTP 响应脚本(http_response
)和定时任务脚本(schedule
)。每种类型的脚本都有一些共享的配置字段,也有一些特定的配置字段。
以下表格列出了所有的配置字段:
字段名 | 类型 | 是否必填 | 描述 | 适用的脚本类型 |
---|---|---|---|---|
name | string | 是 | 脚本的名称。 | 所有 |
match | string(正则表达式) | 否 | 需要应用此脚本的 URL 正则表达式。 | http_request , http_response |
script_url | string | 是 | 脚本的 URL,可以是本地路径或远程链接。 | 所有 |
update_interval | integer | 否 | 当脚本是远程链接时,此参数设定了更新脚本的间隔时间,单位为秒。默认值为 86400(一天)。 | 所有 |
timeout | integer | 否 | 脚本执行的超时时间,单位为秒。默认值为 30。 | 所有 |
max_size | integer | 否 | 设定消息体的最大尺寸,单位为字节。若消息体的尺寸超过此值,则不会调用脚本。 | http_request , http_response |
debug | boolean | 否 | 是否启用调试。如果启用,Egern 将打印更多的调试信息。 | 所有 |
body_required | boolean | 否 | 指定是否 需要消息体。若设为 true ,则只有当消息体存在时才会调用脚本。 | http_request , http_response |
cron | string | 否 | 设定定时任务的执行时间,需使用 Cron 表达式来设置。 | schedule |
配置示例
以下是一个 scriptings
类型的配置示例:
scriptings:
- http_request:
name: "Example Request Script"
match: "example\\.com"
script_url: "scripts/request.js"
update_interval: 86400
timeout: 30
max_size: 131072
debug: false
body_required: true
- http_response:
name: "Example Response Script"
match: "example\\.com"
script_url: "scripts/response.js"
update_interval: 86400
timeout: 30
max_size: 131072
debug: false
body_required: true
- schedule:
name: "Example Scheduled Task"
cron: "0 0 * * *"
script_url: "scripts/task.js"
update_interval: 86400
timeout: 30
debug: false
在此配置中,我们有三个脚本:一个用于处理所有匹配 example.com
的 HTTP 请求,一个用于处理所有匹配 example.com
的 HTTP 响应,以及一个每天凌晨执行的定时任务。每个脚本都有自己的 URL,Egern 将每天从这些 URL 更新脚本。