繁体   English   中英

Azure API 缓存策略

[英]Azure API policy for cache

我需要将以下缓存响应添加到 apim 策略

HTTP 缓存标头:HTTP 规范中定义的缓存相关标头列表。

  1. 缓存控制(仅响应)

  2. 无缓存

  3. 无商店

  4. 过期

  5. If-Modified-Since

  6. Last-Modified(仅响应)

我无法理解如何在我尝试使用以下策略的策略中实现上述相同的策略,但无法了解如何添加无缓存。 不存储这些指令。

以及如何在响应中添加那些过期、修改。

     <cache-lookup vary-by-developer="false"
   vary-by-developer-groups="false" downstream-caching-type="public"
   must-revalidate="true" >
       <vary-by-header>Accept</vary-by-header>
       <vary-by-header>Accept-Charset</vary-by-header>
       <vary-by-header>Accept-Encoding</vary-by-header>
       <vary-by-header>Accept-Language</vary-by-header> </cache-lookup>
   
   <cache-store duration="@{
           var header = context.Response.Headers.GetValueOrDefault("Cache-Control","");
           var maxAge = Regex.Match(header, @"max-age=(?<maxAge>\d+)").Groups["maxAge"]?.Value;
           return (!string.IsNullOrEmpty(maxAge))?int.Parse(maxAge):300;
       }"  />

我可以看到您在 MS Q&A 论坛中就 Azure APIM 中的自定义缓存策略实施提出了这个问题。

感谢 MSFT 用户@MuthuKumaranMurugaachari 通过以下建议为用户指明了正确的方向。

我快速查看了附加的策略片段并想确认关于声明Make two identical API requests 如果要查看Cache-Control header,发起两次Http请求,可以使用send-request policy。 这是文档参考: 此处涵盖发送请求和示例场景。

这意味着您可以在 when 条件下插入send-request策略并根据您的需要进行验证。 但是,这会增加策略的复杂性,因为在出站部分会发出多个请求。

我找到了一个MS Doc ,其中提供了响应缓存的示例缓存控制策略。

如果有社区用户遇到类似问题,可以在本问答论坛# 1165407 跟进

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM