我正在使用AWS API Gateway实施API。我正在使用本机API密钥和使用计划对客户端进行评分。但是,我想将数据使用信息添加到我的API响应中,例如X-RateLimit-Remaining
和X-RateLimit-Reset
标头。
我问过AWS支持人员是否没有任何本机实现,因为这(至少是IMO)是一个非常普遍的要求。那没有。
然后,我使用对AWS usage API的一些调用来实现这些标头(即使我真的不喜欢在每个请求中增加API调用开销)。但是我需要API密钥ID,而不是API密钥值(我的请求中只有一个)。根据此AWS thread,按API键值可能不会有任何查找方法。
在这一步,我只能想象两种解决方案:
您如何在API响应中共享数据使用情况?我想念什么吗?
答案 0 :(得分:0)
我认为您可以通过将CloudFront放在API网关的前面来实现。然后,您可以为要添加速率限制响应标头的API基本路径创建cache behavior。如果这将适用于所有路径,那么您需要修改默认行为。
您将需要使用Lambda@Edge来修改原始响应标头。您可以在Lambda @ Edge函数中调用AWS Usage API,然后使用CloudFront缓存行为中的Viewer Response操作附加响应标头。