我有一个策略,需要为响应有效负载中包含的可变数量的链接生成散列。我可以创建一个javascript策略来生成这些散列,并将它们添加为流变量。但是,我不知道如何将这些变量存储到键值映射或缓存中,因为变量名称是动态的,而不是静态的。
例如..。
对于像这样的响应负载...
{ "link1":"http://link1","link2":"http://link2“}
我的javascript策略添加了下面的flow vars link.{linkhash1},link.{linkhash2}。
现在,我希望将它们存储在键值映射或缓存中。然而,这两种策略都需要一个固定的变量名称,但在这种情况下,变量名称是动态的,即只有在运行时才知道。理想情况下,我希望直接从javascript策略本身操作缓存/kv映射。
我该如何解决这个问题?
发布于 2015-09-03 20:18:26
虽然在代理流中的某个时刻不能从JS策略执行的JavaScript中访问KVM或缓存,但可以使用apigee-access节点模块从Node.js代码中访问并存储到Apigee Cache中。请参阅:http://community.apigee.com/questions/6467/edge-how-to-interact-with-key-value-map-from-javas.html
因此,您需要做的是将代理后端配置为Node.js应用程序,从该应用程序中,您可以处理请求并将其路由到目标后端,然后从目标响应有效负载中,您可以提取链接,对它们进行散列,并在缓存中设置变量。看一下:http://apigee.com/docs/api-services/content/using-apigee-access
https://stackoverflow.com/questions/29170468
复制相似问题