【发布时间】:2021-09-05 11:53:07
【问题描述】:
我正在使用 Azure API 管理中的 API,该 API 具有用于存储响应的外部 Azure Cache for Redis 实例。当缓存命中发生时,我想通过响应标头查看缓存响应的陈旧程度。尽管这似乎是缓存的基本功能,但我似乎找不到任何资源或文档来解释如何实现这一点。最终,我希望我的前端显示“您的数据已存在 16 分钟”的效果,让用户有机会同步最新数据(并在此过程中更新缓存)。
我尝试通过 APIM 策略查看可供我使用的属性,但那里似乎没有任何相关内容。在最坏的情况下,我可以在来自 APIM 端点的每个响应中包含一个 requestedAt 属性,这样当缓存命中发生时,我可以看到原始请求的发出时间,但是如果可能的话,我宁愿通过标头实现此功能。
编辑:下面 Vitaliy 的回答效果很好。对于那些好奇的人,这就是我的政策现在的样子
<outbound>
<base />
<set-header name="Cached-At" exists-action="override">
<value>@(System.DateTime.Now.ToString())</value>
</set-header>
<cache-store duration="360" />
</outbound>
【问题讨论】:
标签: azure caching redis azure-api-management