00:03
大家好。欢迎来到由腾讯云开发的社区。和腾讯H团队功能打造的H一站式完成网站加速安全防护的边缘函章节。然后今天我们将通过如何通过边缘函数。环境变量实现简单发布的一个案例来向大家进一步展示边缘函数的能力。首先我们先简短来看一下这个案例和方案的一个介绍。概那个背景的话就是。呃,基于我们的一个,呃,外国业务的一个客户,然后他会遇到无效的诉求。做外部的业务当中,经常就是需要发布版本,发布版本的时候呢,他就希望能够降低发布的一个风险,比如说通过下一小部分的用户来发布一个新的版本,可以降低新版本可能引入的问题。对整个用户群的一个影响,第二个就是说他希望能够执行一个的测试。
01:03
比如说我可以发布两个不同的版本,新旧版本,然后再针对新的版本和旧的版本来收集用户的反馈,你确定哪个版本来这更优,这样的话,本质上用户实际上希望实现有一个灰度发布的能力。然后在我们的方案当中,将会有边缘函数,基于环境变量的回头发布,可以满足一个用户的诉求,我们可以看一下右边的这么一个架构。来自于用户的请求的情况下面。边缘函数。截获用户的请求之后,然后将会执行一个灰度发布,以及基于环境变量的灰度发布的一个逻辑。最终的话就是经过用户的一个自定义的逻辑策略,然后回到原来去获取到是你想要的是一个新服务的版本还是一个旧服务的版本,最后再想一个客户端。这样的话,可以实现一个简单的回度发布这个方案的,可以给客户带来的一个用户价值的话,一个就是说。
02:01
客户可以自行。逐步调整恢复发布的一个策略。第二个的话就是可以降低客户的一个投入成本。应用函数是一种的一个架构,用户的话是不需要投入这个。购买服务器和运维服务器。和网络等基础设施资源,也不需要投入人员的一个运维,因此可以有效降低用户的一个投入成本。第二个的话就是可以有效降低一个访问的时,因为边缘函数然是靠近用户的节点来进行就近的一个响应,因此可以有效低降低一个访问的时。好,接下来我将通过方案步骤的演示。边缘函数如何实现基于环境变量的灰度发布?首先我们整体来看一下,要实现这么一个案例,它需要哪些步骤?第一个的话,它需要先配置好一个域名,然后域名的话要配置好对应的你的原站的不同的新旧版本。
03:02
第2个的话,你需要创建一个函数,然后在基于函数的情况下面来去创建一个环节的变量。第3个当你把函数部署成功之后,你需要配置一个函数的触发规则。最后的话你就可以。体验这个效果了。首先您需要配置一个域名。你的域名的话,你的原价可以根据您自定义来进行调整,我这边的话是配置的是对象存储cos,然后cos的话我会存储。新版本和旧版本。的两个文件。第二步的话。那您配置好域名的情况下面,您可以在函数的管理,然后新建一个函数,这个函数的话将会执行基于环境变量的灰度发布的逻辑。然后您在新建函数的环节只需要填写函数的名称,这是一个必填项,描述是非必填的。
04:02
您可以将左边的代码copy,然后放到这个函数的代码部分。然后简单介绍一下这个函数大的语义。边缘函数可以截获客户端发起的HTTP的请求,然后根据您在边缘函数当中设置的一个灰度逻辑,将用户请求随机分配到新版本获得旧版本的一个服务当中。在本案例的代码当中,我们可以看到有一个scale,这个环境变量可以确定有多少百分比的用户将被路由到一个新版本。然后的话,您将你还需要在前置环节。设置的这个你的新的新版本的服务和旧版本的服务,然后在代码当中一起来进行环境变量来进行挂钩来进行设置。最后的话,我们可以通过随机生成的,每个客户都可以会生成一个随机数,通过随机数然后再和这个我们的great scale percent这个变量来进行比对,如果说这个随机数小于这一个。
05:08
我们将会。进入到。的是一个新版本,否则的话将会进入到是一个旧版本。然后右下角的话。您可以更进一步的可以根据这些链点击链接的内容,可以获取到更进一步关于环境变量的操作的一个介绍,以及在本案例当中所涉及到的run派API的调用。当您通过上述环节将函数部署成功之后,下一步。您将需要创建一个环境的变量,您可以通过在函数的详情点击快速添加,然后添加3个环境变量,这3个环境变量分别对应就是。Pass, 就是您的。旧版本服务所在的一个目录,还有一个是new version pass, 您的新版本所在服务的一个目录,以及您期望设置的灰度的一个比例,比如说我这里设置的是20。
06:20
好的,当您设置好环境变量之后,下一步你就可以设置一个函数的触发规则。函数触发规则,您将可以在函数的详情页点击触发规则,新建触发规则将会弹窗。您可以在触发条件里面选择。等于,比如说www.com,以及你希望配置的UR pass, 比如说等于test灰度test agree.维度。当您设置好触发规则之后,您将可以通过在浏览器或者客的方式来发起一个请求的验证。在浏览器您可以访问这一个你设置好的触发规则。
07:03
然后您将可以体验到。响应客户端的一个旧版本还是新版本?然后您可以逐步调整我们在前置环节所设置的grade scale环境变量的值,来最终实现所有的由用户由旧版本切换到新版本进来,可以实现整个业务的灰度发布。好的,接下来我们将进入到一个单模演示的一个环节。本DEMO是基于边缘函数实现灰度发布的一个能力。我们事先需要在配置好一个域名的情况下面,然后需要配置好您的原站,您的原站需要来配置新版本,新服务和旧服务的两个版本的内容。我此时的原价是使用的是对象存储cos。然后。
08:01
我们看一下cos的这个存储目录里面,我将会有两个目录,一个目录就是new version, 第二个目录就是version,我们点击进去看一下。这里面将会是有一个new index HTML的一个一个一个页面,我们也可以预览一下里面的内容。这个内容我要响应的就是说告诉你这是一个属于新版本。好的。然后为了方便演示,我这里就省去了如何创建。边缘函数的一个过程。当您在。放置好边缘函数成功之后。您可以在编辑代码环节。来修改您的代码,或者去调整您的代码。然后您可以通过在函数详情页环境变量位置,可以通过点击快速添加的方式来去添加环境变量,我这里为了方便演示,已经将前置创建好的。
09:10
创建好了这个环境的变量,在这里将会有3个环境变量,一个是old version, 所对应的就是我们的。对象存储桶,我的原站对应的这个目录。还有我的new。对应的就是。我的new的一个目录。这两。以及最后的一个字段,就是我的灰度的一个比例,比如说我期望有20%的用户能够进入到新版本当中。最后的话,您可以在这里来设置触发规则。可以点击host。运算符,然后可以具体点就要pass。然后来实现,来实现你想要配置的触发规则。
10:03
我这里为了方便演示,以及提前设置好了触发规则。当您都设置成功之后,您可以在。浏览器来进行一个验证。我们可以多次发起请求来验证我们的灰度的效果。比如说。我这是old water.因为我前面设置的灰度比例是。20%,因此我的大部分的请求都会录入到这个旧的版本,只有20%的请求才会录入新的版本,我们可以多次请求尝试看一下。效果。可以看到,一部分的请求落入到order,一部分的请求落入到了我们的new。然后我们可以通过这个。边缘函数基础环境变量来实现一个简单的灰度发布。当然这是一个简单的案例,你后续可以基于案例来进行调整,实现更复杂一点的灰度发布的案例。
11:10
好的。关于训练营。H one所有章节的介绍我们就到此就结束了。如果后续大家有任何关于HR的疑问,然后可以咨询我们的产品的团队。也欢迎大家来去体验。我们A指望的产品,感谢大家的聆听。谢谢大家。
我来说两句