如果需要针对POST body中包含的参数对传入的请求作出响应,你打算怎么做?其实在使用Akamai EdgeWorkers的情况下,只需要一些高级MD(MetaData)技巧,这一切实现起来可以变得非常简单。
Akamai EdgeWorkers是什么??Akamai EdgeWorkers是一个规模庞大的分布式无服务器网络,可以帮助客户在边缘处编写和部署自定义代码,而无需考虑基础架构或编程语言等繁琐事项。凭借Akamai平台的大容量、高可靠性和高安全性,客户可以在边缘处使用自定义代码实现动态流量路由、个性化响应等功能,并轻松扩展代码,借此打造更加个性化的数字体验。感兴趣的知友可点击 这里访问官网页面,进一步了解EdgeWorkers的功能和价值。
一些知友可能会好奇,检查POST body,这件事真有那么重要?为什么要检查?
很多情况下,检查POST body之后,即可根据需要执行各种后续操作。例如从传入的请求中提取GraphQL查询字符串并为其添加Header,随后只将自己真正需要看到的值组成的数组发送给源。借此即可在对GraphQL请求作出响应之前验证传入的请求。
本文将介绍如何通过EdgeWorker,使用PM(Property Manager)配置和一些高级MetaData来实现这个目标:根据传入的POST body对请求作出回应。
继续操作前需要注意:该方法不适合onClientRequest函数,因为这个函数会在提取POST body信息之前执行。
完整的操作方法如下。
在PM配置中,我们将使用一个变量和一些高级MetaData来提取POST body并将其放入Header中。之所以这么做,是因为EdgeWorkers目前还无法读取传入的POST body。
本例中,我们将该变量称之为BODYJSON。如果使用其他名称,请务必在下列高级MD代码片段中酌情替换对应的名称。
相关设置如下图所示:
至此我们已经配置好了PM配置并将POST body注入了Header,随后还需要设置EdgeWorker。
这里需要注意,我们只能通过Edge > origin,Origin > edge and edge > client event handlers访问该Header。
我们可以使用如下的范例代码对JSON对象进行迭代并通过Header返回特定的键值。
至此,只要上传并激活该EdgeWorker,即可根据POST body对传入的请求执行操作了。
注意:?大家可能会观察到,我们会从Header而非变量中拉取Body。这是因为上述MD代码片段的执行需要耗费大量资源,因此我们只会针对未在父节点上设置变量的客户端请求(子节点)来运行。
在当今数字世界中,人们对于快速可靠的在线服务期望颇高。边缘计算为寻求满足这种期望的企业提供了竞争价值,因为它解锁了安全、可扩展的功能,提供了新的收入来源,并且为客户提供了更丰富的数字化体验。
作为传统的边缘服务提供商,Akamai最大的优势在于构建了一个涵盖全球,横跨各大运营商的智能边缘平台。通过将一致的边缘计算能力叠加在这个全球规模的智能边缘平台上,可以进一步优化客户体验,更加贴近客户需求。
本文介绍的小技巧,算得上借助Akamai边缘计算平台提供个性化体验的一个例子。而通过善用相关技术,广开“脑洞”,往往可以迸发出更多创新的火花。期待大家都能玩转并全面驾驭边缘计算,为自己的用户营造与众不同的数字体验。