API プロキシでの収益化の上限の適用

このページは ApigeeApigee ハイブリッドに適用されます。

Apigee Edge ドキュメントを表示する

以下のセクションで説明するように、収益化された API プロダクトに関連付けられている API プロキシにポリシーを接続して、収益化の上限を適用します。

認証ポリシーの追加

Apigee 収益化では、VerifyAPIKey または VerifyAccessToken ポリシーを使用してアクティブな公開料金プランを確認し、受信リクエストが収益化可能かどうかを確認します。

次のいずれかの方法で、VerifyAPIKey ポリシーまたは VerifyAccessToken ポリシーを API プロキシに接続します。

  • [Create Proxy] ウィザードを使用して API プロキシを作成する場合は、[Common policies] ページの [Security: Authorization] セクションで [API Key] または [OAuth 2.0] を選択します。次に例を示します。

    [API Key] が選択された [Create proxy] ウィザードの [Common policies] ページ

  • API プロキシを開発する際に、VerifyAPIKey ポリシーまたは VerifyAccessToken ポリシーを API プロキシ PreFlow 内の最初のポリシーとしてリクエスト フローに接続します。次に例を示します。

    PreFlow に接続された VerifyAPIKey ポリシーを示す API プロキシ エディタの [Developer] タブ

詳しくは以下をご覧ください。

API プロダクトに対するデベロッパー サブスクリプションの適用

API プロダクトにデベロッパー サブスクリプションを適用するには、API プロキシに MonetizationLimitsCheck ポリシーを接続します。このポリシーは、API にアクセスしているアプリ デベロッパーが関連の API プロダクトのサブスクリプションを購入していない場合にトリガーされます。この場合、MonetizationLimitsCheck ポリシーによって障害が発生し、API 呼び出しがブロックされます。

プロキシ呼び出しの実行時に取得された API プロダクトに収益化料金プランが存在しない場合は、そのプロダクトは収益化されていないとみなされ、MonetizationLimitsCheck ポリシーはそれ以上のデータを取得しないため、このポリシーによる影響はありません。

MonetizationLimitsCheck ポリシーを API プロキシに接続すると、MonetizationLimitsCheck ポリシーのデバッグmint フロー変数のリファレンスで説明されているように、mint.limitscheck.*mint.subscription_* のフロー変数に値が代入されます。

次のいずれかの方法で MonetizationLimitsCheck ポリシーを API プロキシに接続します。

  • [Create Proxy] ウィザードを使用して API プロキシを作成する場合は、次の図に示すように、[Common policies] ページで [Enforce monetization limits] を選択します。

    [Create Limits Check] が選択されている [Create Proxy] ウィザードの [Common policies] ページ

  • API プロキシを開発する際は、次の図に示すように、VerifyAPIKey または VerifyAccessToken ポリシーの後に API プロキシ PreFlow のリクエスト フローに MonetizationLimitsCheckPolicy を接続します。

    VerifyAPI ポリシーの後に PreFlow に接続された MonetizationLimitsCheck ポリシーが表示されている API プロキシ エディタの [Developer] タブ

詳しくは以下をご覧ください。

API プロキシでの収益化割り当ての適用

割り当ては、特定の期間に API プロダクトで許可されるリクエストの数を定義します。収益化に割り当てを適用するには、API プロダクトを作成するときに割り当て値を設定することをおすすめします。

API プロダクトに割り当て値を定義しても、API プロダクトで実行できる呼び出し回数の制限は自動的には適用されません。また、API プロダクトで参照される API プロキシに Quota ポリシーを追加して、API プロダクト レベルで定義された割り当て値が適用されるようにする必要があります。

次のいずれかの方法で Quota ポリシーを API プロキシに接続します。

  • [Create proxy] ウィザードを使用して API プロキシを作成する場合は、[Common policies] の [Quotas] セクションで [Impose quotas per app] を選択します。

    [Impose quotas per app] が選択された [Create proxy] ウィザードの [Common policies] ページ

  • API プロキシを開発する際に、下の図のように、VerifyAPIKey ポリシーまたは VerifyAccessToken ポリシーの後で Quota ポリシーを API プロキシ PreFlow のリクエスト フローに接続します。

    PreFlow に接続されている Quota ポリシーを示す API プロキシ エディタの [Developer] タブ

Quota ポリシーを編集して <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>

Quota ポリシーを API プロキシに接続すると、ratelimit.* フロー変数に値が入力されます。詳細については、Quota ポリシーのデバッグと Quota ポリシーのフロー変数リファレンスをご覧ください。

詳しくは以下をご覧ください。