阿里云CDN:EdgeScript简介

EdgeScript

最近在研究如何对线上的代码进行A/B测试(灰度测试),由于使用了阿里云的CDN,刚好看到了有相关的解决方案,这里稍微记录一下,方便以后学习

一、使用场景

请求处理结束:常用应用场景为缓存设置、回源鉴权、A/B Testing等
请求处理开始:常用应用场景为一次鉴权、拦截、限速等。
在这里插入图片描述

二、CLI使用

作用

发布、查询、删除、修改、回滚

配置

# 安装Python,执行es脚本
python ./es.py config --id=AK_ID --secret=AK_SECRET

发布

# 发布到测试环境
./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>"}'

pos:position

pro:priority

rule_path:ES脚本的位置

enable:当前规则是否生效

configid:修改的时候才需要,需要提前使用查询接口进行获取

查询

#查询测试(生产)环境的规则配置
./es.py action=<query_test_env|query_product_env> domain=<domain>

删除

#删除测试(生产)环境的规则配置
./es.py action=<del_test_env|del_product_env> domain=<domain> configid=<configid>

回滚

./es.py action=rollback_test_env domain=<domain>

三、使用

  • ES中有内置变量$cookie_{name},对应于nginx中的$cookie_变量

  • add_req_header可以用来添加回源请求头

  • rewrite改写或重定向

    接受三个参数url, flag, code

    参数含义
    url目标URL
    flag取值为break表示仅修改URI,不修改参数
    code响应码

四、脚本

# 获取cookie
grey = $cookie_GREY
grey_flag = 'grey'
if eq(grey, grey_flag){
    # 添加请求头
	add_req_header(grey, grey_flag)
    # 灰度代码放在grey目录下
	grey_uri = concat('/grey', $uri)
	rewrite(grey_uri, 'break')
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值