在 API 代理中强制执行获利限制

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

通过将政策附加到与获利 API 产品关联的 API 代理,强制执行获利限制,如以下部分所述。

添加身份验证政策

Apigee Monetization 使用 VerifyAPIKey 或 VerifyAccessToken 政策来确定传入请求是否可获利,方法是检查有效的已发布费率方案。

通过以下方式之一将 VerifyAPIKey 政策或 VerifyAccessToken 政策关联到 API 代理:

  • 使用“创建代理”向导创建 API 代理时,请在常用政策页面上的安全性授权部分中选择 API 密钥OAuth 2.0。例如:

    “创建代理向导”的“常用政策”页面,已选择“API 密钥”

  • 开发 API 代理时,请将 VerifyAPIKey 政策或 VerifyAccessToken 政策关联到 API 代理 PreFlow 中的第一个政策。例如:

    API 代理编辑器中的“开发者”标签页,其中显示附加到 PreFlow 的 VerifyAPIKey 政策

有关详情,请参阅:

强制执行 API 产品开发者订阅

将 MonetizationLimitsCheck 政策附加到 API 代理,以强制执行 API 产品开发者订阅。具体而言,如果访问 API 的应用开发者尚未购买关联 API 产品的订阅,则会触发此政策。在这种情况下,MonetizationLimitsCheck 政策会引发故障并阻止 API 调用。

如果在代理调用执行期间提取的 API 产品不存在获利费率方案,则该产品会被视为非获利产品,MonetizationLimitsCheck 政策不会提取任何其他数据,并且该政策不会产生任何影响。

将 MonetizationLimitsCheck 政策附加到 API 代理后,将填充 mint.limitscheck.*mint.subscription_* 流变量,如调试 MonetizationLimitsCheck 政策mint 流变量参考中所述。

通过以下任一方式将 MonetizationLimitsCheck 政策附加到 API 代理:

  • 使用“创建代理”向导创建 API 代理时,请在常用政策页面中选择强制执行获利限制,如下图所示。

    “创建代理向导”的“常用政策”页面(选中了“强制执行限制检查”)

  • 开发 API 代理时,将 MonetizationLimitsCheckPolicy 附加到 API 代理 PreFlow 中的请求流,位于 VerifyAPIKey 或 VerifyAccessToken 政策之后,如下图所示。

    API 代理编辑器中的“开发者”标签页,其中显示在 VerifyAPI 政策后附加到 PreFlow 的 MonetizationLimitsCheck 政策

有关详情,请参阅:

在 API 代理中强制执行获利配额

配额将定义指定时间段内某个 API 产品允许的请求数。如需强制执行获利配额,建议您在创建 API 产品时设置配额值。

为 API 产品定义配额值不会自动对可通过 API 产品进行的调用数量强制执行限制。您还必须向 API 产品引用的 API 代理添加配额政策,以确保强制执行在 API 产品级别定义的配额值。

通过以下任一方式将配额政策附加到 API 代理:

  • 使用“创建代理”向导创建 API 代理时,请在常用政策页面的配额部分中选择为每个应用强加配额,如下图所示。

    “创建代理”向导的“常用政策”页面,已选择“为每个应用强加配额”

  • 开发 API 代理时,将配额政策关联到 API 代理 PreFlow 中的请求流,位于 VerifyAPIKey 或 VerifyAccessToken 政策之后,如下图所示。

    API 代理编辑器中的“开发者”标签页,其中显示附加到 PreFlow 的配额政策

修改配额政策以允许 <UseQuotaConfigInAPIProduct> 元素使用在 API 产品级定义的配额配置。

例如:

<Quota continueOnError="false" enabled="true" name="impose-quota">
    <DisplayName>Impose Quota</DisplayName>
    <UseQuotaConfigInAPIProduct stepName="verify-api-key">
        <DefaultConfig>
            <Allow>10000</Allow>
            <Interval>1</Interval>
            <TimeUnit>week</TimeUnit>
        </DefaultConfig>
    </UseQuotaConfigInAPIProduct>
    <Distributed>true</Distributed>
    <Synchronous>true</Synchronous>
    <StartTime>2021-01-01 12:00:00</StartTime>
</Quota>

将配额政策附加到 API 代理时,将填充 ratelimit.* 流变量,如调试配额政策和配额政策流变量参考中所述。

有关详情,请参阅: