[英]Azure API Management caching does not work with error "Request is not cacheable, policy was not applied."
我确定我遗漏了一些东西,但我找不到它是什么......我已经设置了一个 Azure API 管理(消费计划)API,它调用了一个远程 API 端点,我想启用缓存。 负载几乎从不改变,所以我确信缓存在这里是有意义的。
这是我的政策:
<policies>
<inbound>
<base />
<set-backend-service base-url="https://xxxapixxx.azurewebsites.net/api" />
<rewrite-uri template="segments" copy-unmatched-params="true" />
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="none">
<vary-by-header>Accept</vary-by-header>
<vary-by-header>Accept-Charset</vary-by-header>
</cache-lookup>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
<cache-store duration="7200" />
</outbound>
<on-error>
<base />
</on-error>
</policies>
当我在门户中测试调用时,我看到两条与缓存策略相关的 Trace 消息:
在入站跟踪中:
缓存查找(0.012 毫秒)“没有找到适合提供的策略配置的缓存。将跳过策略执行。”
在出站跟踪中:
缓存存储(0.026 毫秒)“请求不可缓存,未应用策略。”
我猜这与 gzip 压缩有关,但仍然看不到如何修复它。
任何猜测,想法?
根据Microsoft 文档,我假设您的定价层会导致此问题。
文件说:
所以我创建了两个 Apim 实例,一个是开发者,一个是消费。 他们都使用相同的策略,但有不同的反应。 开发人员可以使用缓存,但消费人员会返回与您相同的响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.