阿里云为您提供边缘脚本CLI工具,可以将您本地编写的边缘脚本规则发布到模拟环境进行测试,并发布到生产环境,也可以对模拟环境和生产环境的边缘脚本规则进行查询、修改和删除。本文介绍边缘脚本CLI工具的使用方法。

使用CLI工具

  1. 下载CLI工具
  2. 配置AccessKey ID和AccessKey Secret。
    命令:
    python ./es.py config --id=AK_ID --secret=AK_SECRET
    cat aliyun.ini
    返回结果:
    [Credentials]
    access_key_id = '您的AccessKey ID'
    access_key_secret = '您的AccessKey Secret'
  3. 发布边缘脚本规则到模拟环境或生产环境。
    ./es.py action=push_test_env domain=<domain> rule='{"pos":"<head|foot>","pri":"0-999","rule_path":"<the es code path>","enable":"<on|off>"}'
    ./es.py action=push_product_env domain=<domain> rule='{"pos":"<head|foot>","pri":"0-999","rule_path":"<the es code path>","enable":"<on|off>","configid":"<configid>"}'                    

    规则字段说明,请参见下表。

    字段名称 是否必选 说明
    rule 规则内容,支持指定多条rule。
    pos 规则执行位置。详细信息,请参见执行位置与优先级。取值:
    • head:请求处理的开始位置。
    • foot:请求处理的结尾位置。
    pri 规则的执行优先级。取值范围0~999,不同执行位置的优先级各自独立。
    • 0:表示优先级最高。
    • 999:表示优先级最低。
    rule_path 指存放ES代码的本地文件路径。使用CLI工具时,需要用本地文件的方式上传ES代码。
    enable 规则是否生效。取值:
    • on:是
    • off:否
    configid 配置ID,可以通过DescribeDcdnDomainConfigs接口查询配置ID。
    说明 修改规则需要指定configid,新增规则不需要指定configid。
    brk 指命中本规则情况下,是否终止本阶段剩余规则的执行。取值:
    • on:是
    • off:否
    testip 测试客户IP,默认为空。如果配置了该参数,则只有客户端IP地址可触发本条规则并执行。
    option 扩展项。仅支持_es_dbg=signature字段,表示开启调试模式,用于增加调试响应头。
  4. 可选:您可以根据需求执行以下操作。
    操作 命令
    查询模拟环境或生产环境下的边缘脚本规则
    ./es.py action=query_test_env domain=<domain>
    ./es.py action=query_product_env domain=<domain>
    删除模拟环境或生产环境下的边缘脚本规则
    ./es.py action=del_test_env domain=<domain> configid=<configid>
    ./es.py action=del_product_env domain=<domain> configid=<configid>                  
    模拟环境的边缘脚本规则执行正式发布或回滚
    ./es.py action=publish_test_env domain=<domain>
    ./es.py action=rollback_test_env domain=<domain>

以通过m3u8.es规则拦截所有.m3u8请求为例,为您详细介绍边缘规则的编写、保存、测试和发布的操作方法。具体操作,请参见边缘脚本操作示例

实时调试

  1. 开启实时调试功能。
    • 通过控制台开启:在控制台配置_es_dbg,请参见EdgeScript快速入门
    • 通过CLI工具开启:
       ./es.py action=push_test_env domain=<domain> rule='{"pos":"<head|foot>","pri":"0-999","rule_path":"<the es code path>","enable":"<on|off>","configid":"<configid>", "option":"_es_dbg=123"}'
  2. 测试用户请求。
    1. 发起用户请求。
      用户请求中携带_es_dbg参数,参数值为步骤1中配置的option值。
    2. 查看DCDN节点的响应信息。
      需要关注的是Trace信息:X-DEBUG-ES-TRACE-RULE-{规则ID}
    3. 查看Trace信息中对应规则的执行流,格式为_行号_函数名(入参):返回值{_执行耗时}