在 API 管理器上添加新的默认层

Adding a new default tier on API Manager

我正在使用 API 管理器 2.2.0

默认情况下,WSO2 API Manager 附带一些订阅限制策略,例如金牌、银牌和铜牌。我想添加一个新的,叫做 Diamond。

我在所有现有租户上使用管理网页(例如 https://localhost:9443/admin)添加了这个新层。

我现在要做的是在创建新租户时默认生成这个钻石层。

我编辑了文件 default-tiers.xml 添加了以下代码:

<wsp:Policy>
    <throttle:ID throttle:type="ROLE">Diamond</throttle:ID>
    <wsp:Policy>
        <throttle:Control>
            <wsp:Policy>
                <throttle:MaximumCount>2000</throttle:MaximumCount>
                <throttle:UnitTime>1000</throttle:UnitTime>
                <wsp:Policy>
                    <throttle:Attributes>
                        <throttle:x-wso2-BillingPlan>FREE</throttle:x-wso2-BillingPlan>
                        <throttle:x-wso2-StopOnQuotaReach>true</throttle:x-wso2-StopOnQuotaReach>
                    </throttle:Attributes>
                </wsp:Policy>
            </wsp:Policy>
        </throttle:Control>
    </wsp:Policy>
</wsp:Policy>

当我创建新租户并访问管理网页时,该层不存在。如果我浏览该租户的 Carbon 资源,我可以看到文件 tiers.xml 包含上述代码。

由于新闻租户在我使用此钻石等级订阅 API 时没有它,所以它总是 returns 403 给我。如果我使用其他的(例如 Gold),一切都会按预期工作。

如何将新等级添加到默认等级列表?

非常感谢任何帮助。

由于租户是孤立的实体,因此没有 OOTB 方式来实现这一点。但是,您可以使用 TenantMgtListener(实现 onTenantCreate)[1] 并调用 subscription add API[2].

[1] https://docs.wso2.com/display/Carbon4411/TenantMgtListener [2] https://docs.wso2.com/display/AM260/apidocs/admin/#!/operations#SubscriptionPolicyCollection#throttlingPoliciesSubscriptionPost

p.s。 default-tiers.xml 也没有 tiers.xml 用于新的节流实现。