ここに表示されているのは Apigee Edge のドキュメントです。
Go to the
Apigee X のドキュメントに移動します。 info
概要
MonetizationLimitsCheck ポリシーを使用すると、アプリ デベロッパーによる API 呼び出しに収益化の上限を適用できます。
このポリシーがトリガーされるのは、次のような場合です。
- 収益化された API にアクセスしているアプリ デベロッパーが、関連する API プロダクトのサブスクリプションを 購入していない場合
- デベロッパーのアカウントの残高が不足している場合。
- デベロッパーがトランザクション量の制限を超えている場合。
ポリシーを API プロキシに接続する方法については、 API プロキシに収益化制限を適用するをご覧ください。
<MonetizationLimitsCheck> 要素
MonetizationLimitsCheck ポリシーを指定します。
| デフォルト値 | なし |
| 必須かどうか | 必須 |
| 型 | 複合型 |
| 親要素 | なし |
| 子要素 |
<DisplayName><FaultResponse><IgnoreUnresolvedVariables><Variables> |
次の表に、<MonetizationLimitsCheck> の子要素の概要を示します。
| 子要素 | 必須かどうか | 説明 |
|---|---|---|
<DisplayName> |
省略可 | ポリシーのカスタム名。 |
<FaultResponse> |
省略可 | 障害が発生したときに 障害が発生したときにリクエスト元のクライアントに返されるレスポンス メッセージを指定します。 |
<IgnoreUnresolvedVariables> |
省略可 | 未解決の変数に突き当たった場合に、処理を停止するかどうかを決定します。 |
<Variables> |
省略可 | 収益化の上限を確認するフロー変数を指定します。 |
<MonetizationLimitsCheck> 要素の構文は次のとおりです。
構文
<?xml version="1.0" encoding="UTF-8"?> <MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="POLICY_NAME"> <DisplayName>DISPLAY_NAME</DisplayName> <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables> <Variables> <Product>VARIABLE_NAME</Product> </Variables> <FaultResponse> <Set> <Payload contentType="text/xml"> <error> <messages> <message>MESSAGE_TEXT</message> <message>MESSAGE_TEXT</message> </messages> </error> </Payload> <StatusCode>HTTP_STATUS</StatusCode> <ReasonPhrase>REASON_TEXT</ReasonPhrase> </Set> </FaultResponse> </MonetizationLimitsCheck>
例
次の例は、MonetizationLimitsCheck ポリシーの定義を示しています。
<?xml version="1.0" encoding="UTF-8"?> <MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="Monetization-Limits-Check"> <DisplayName>Monetization Limits Check</DisplayName> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <Variables> <Product>myproductvar.name</Product> </Variables> <FaultResponse> <Set> <Payload contentType="text/xml"> <error> <messages> <message>Developer has reached usage quota</message> <message>Is Developer Suspended - {monetizationLimits.isDeveloperSuspended} </message> </messages> </error> </Payload> <StatusCode>403</StatusCode> <ReasonPhrase>Forbidden</ReasonPhrase> </Set> </FaultResponse> </MonetizationLimitsCheck>
この要素には、すべてのポリシーに共通する次の属性があります。
| 属性 | デフォルト | 必須? | Description |
|---|---|---|---|
name |
なし | 必須 |
ポリシーの内部名。 必要に応じて |
continueOnError |
false | 省略可 | ポリシーが失敗したときにエラーを返すには、「false」に設定します。これはほとんどのポリシーで想定される挙動です。ポリシーが失敗した後でも、フローの実行を続行するには、「true」に設定します。 |
enabled |
true | 省略可 | ポリシーを適用するには、「true」に設定します。ポリシーを「無効」にするには、「false」に設定します。ポリシーがフローに接続されている場合でも適用されません。 |
async |
false | 非推奨 | この属性はサポートが終了しています。 |
子要素のリファレンス
このセクションでは、<MonetizationLimitsCheck> の子要素について説明します。
<DisplayName>
name 属性に加えて、管理 UI プロキシ エディタでポリシーを別の、より自然な響きの名前でラベル付けするために使います。
<DisplayName> 要素はすべてのポリシーに共通です。
| デフォルト値 | なし |
| 必須 | 省略可。<DisplayName> を省略した場合、ポリシーの name 属性の値が使用されます。 |
| 型 | 文字列 |
| 親要素 | <PolicyElement> |
| 子要素 | なし |
<DisplayName> 要素の構文は次のとおりです。
構文
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
例
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
<DisplayName> 要素に属性や子要素はありません。
<IgnoreUnresolvedVariables>
Apigee が未解決の変数を検出したときに、ポリシーの処理を停止するかどうかを決定します。
| デフォルト値 | True |
| 必須かどうか | 省略可 |
| 型 | ブール値 |
| 親要素 |
<MonetizationLimitsCheck> |
| 子要素 | なし |
未解決の変数を無視して処理を続行するには、値を true に設定します。
それ以外の場合は false に設定します。デフォルト値は true です。
<IgnoreUnresolvedVariables> を true に設定することは、<MonetizationLimitsCheck> 要素の
continueOnError を true に設定することとは異なります。continueOnError を true に設定すると、Apigee は変数エラーだけでなく、すべてのエラーを無視します。
<IgnoreUnresolvedVariables> 要素の構文は次のとおりです。
構文
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
例
次の例では、<IgnoreUnresolvedVariables> を false に設定します。
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
ポリシーの実行中にエンティティ名またはリソース名を取得するフロー変数を指定します。
<Variables> 要素内で指定できるのは <Product> 要素のみです。Apigee は、<Product> 要素で指定されたフロー変数から API プロダクト名を取得します。
<Variables> 要素を指定しない場合、Apigee はデフォルトで API プロダクト名を
apiproduct.name コンテキスト変数から取得します。API プロダクト名を使用して、Apigee はプロダクトに対応する料金プランを取得し、収益化の上限チェックを行います。
| デフォルト値 | なし |
| 必須かどうか | 省略可 |
| 型 | 複合型 |
| 親要素 |
<MonetizationLimitsCheck> |
| 子要素 |
<Product> |
<Variables> 要素の構文は次のとおりです。
構文
<Variables>
<Product>VARIABLE_NAME</Product>
</Variables>例
次の例では、API プロキシ フローに存在する myproductvar.name カスタム フロー変数
から API プロダクト名を取得します。
<Variables> <Product>myproductvar.name</Product> </Variables>
AssignMessage や JavaScript などのポリシーを使用して、カスタム フロー変数を設定できます。
<Product>
API プロダクト名を持つ変数を指定します。
| デフォルト値 | なし |
| 必須かどうか | 省略可 |
| 型 | 文字列 |
| 親要素 |
<Variables> |
| 子要素 | なし |
<Product> 要素の構文は次のとおりです。
構文
<Product>VARIABLE_NAME</Product>
例
次の例では、API プロキシ フローに存在する myproductvar.name カスタム フロー変数
から API プロダクト名を取得します。
<Product>myproductvar.name</Product>
AssignMessage や JavaScript などのポリシーを使用して、カスタム フロー変数を設定できます。
<FaultResponse>
障害が発生した場合にリクエスト元のクライアントに返されるレスポンス メッセージを定義します。 レスポンス メッセージは要件に基づいてカスタマイズできます。この要素とそのすべての子要素の詳細については、FaultResponse をご覧ください。
フロー変数
<MonetizationLimitsCheck> 要素の
ContinueOnError 属性を true に設定すると、障害は発生しません。この場合、フロー変数 mint.limitsViolated、mint.isDeveloperSuspended、mint.limitsPolicyError が自動的に設定されます。これらの変数を使用して、
必要に応じて例外処理を行うことができます。