方案: 在Apigee Edge平台上,单个App与两个API产品相关联,其中两个产品都与相同的API代理相关联。这些API产品之间的差异在于产品配额值和范围。
在上面的场景中,请求带有指定范围。 Edge平台是否可以使用具有请求中指定范围的产品的配额值?
根据我的测试,从这两种产品中的任何一种产品中挑选配额值,因此无法强制执行配额值。
我的理解是两种API产品的API代理相同;在运行时确定的配额值可以是这两种产品中任何一种产品的配额值,这意味着配额值可能无法按要求强制执行。因此,在这种情况下,可能的解决方案是为两个产品分配相同的配额值。请确认。
由于两种API产品的范围不同,有没有办法根据范围识别API产品,然后获取相应的配额值?任何输入。
答案 0 :(得分:1)
我的理解是两种API产品的API代理相同;在运行时确定的配额值可以是这两种产品中任何一种产品的配额值,这意味着配额值可能无法按要求强制执行。因此,在这种情况下,可能的解决方案是为两个产品分配相同的配额值。请确认。
是的,您可以为两个产品分配相同的配额值。作为旁注,值得注意的是,配额计数器是按照每个API捆绑包的策略名称级别维护的。可以找到更多详细信息here。
由于两种API产品的范围不同,有没有办法根据范围识别API产品,然后获取相应的配额值?任何输入。
这不起作用。 UI中的范围字段允许您分配默认值并允许将哪些范围附加到OAuth代理中的标记。换句话说,范围由产品修改,而不是相反。
相反,我建议您完全避免使用产品进行配额参考。您可以使用Key/Value Map或对API代理中的引用变量中的配额值进行硬编码。前者允许灵活性而无需部署,而后者更快。两者都允许您设置配额值,但没有使用范围的不必要的管道。这不允许管理员通过UI更新配额值,但如果您必须使用与同一API代理关联的2个API产品,则这些是替代方案。
在上面的场景中,请求带有指定范围。 Edge平台是否可能使用具有请求中指定范围的产品的配额值?
这是不可能的,因为您试图使用范围作为输入来影响Apigee Edge对Product的决定,但Edge不会那样工作。 Apigee Edge决定产品,然后相应地调整范围。
答案 1 :(得分:0)
每个Product
都可以分配自己的配额。文件参考:http://apigee.com/docs/api/create-api-product
片段:
quota The number of request messages permitted by this API product.
quotaInterval The time interval over which the number of request messages is calculated.
quotaTimeUnit The time unit defined for the quotaInterval