Platform の制限

完了

プラットフォームでは、リソースを無限に利用できるわけではなく、実行できる API 呼び出しの数には制限があります。

ソリューション アーキテクトは、適切な設計を行い、制限に違反した場合にカスタム コードで処理できるようにすることで、プラットフォームによって課せられた制限をソリューションが超えないようにする必要があります。

API 要求

Microsoft Power Platform における要求は、ユーザーが各種製品で行うさまざまなアクションで構成されています。 API 要求を構成する項目の概要を次の一覧に示します。

  • Power Apps - コネクタおよび Microsoft Dataverse に対するすべての API 要求。
  • Power Automate - コネクタ、HTTP アクション、組み込みアクション (変数の初期化や単純な作成アクションなど) に対するすべての API 要求。 成功したアクションと失敗したアクションのどちらも、それらの制限に対してカウントされます。 さらに、再試行やページネーションによる他の要求も、アクションの実装としてカウントされます。 基本的なルールとして、Power Automate クラウド フローの各ステップは API 要求です。
  • Dataverse - 作成、読み取り、更新、削除 (CRUD)、割り当て、共有の操作すべて。CRUD トランザクションの実行に必要なユーザー主導型の要求や内部システム要求に加えて、共有や割り当てなどの特殊な操作が含まれます。 あらゆるクライアントやアプリケーションがこれらの要求を行う可能性があり、あらゆるエンドポイントが使用される可能性があります。 プラグイン、従来型のワークフロー、および前述の操作を行うカスタム コントロールが含まれますが、これらに限定されません。

権利制限

権利制限は、ユーザーが 1 日あたりに実行できる API 要求の数を表します。 割り当てられる制限は、各ユーザーに割り当てられるライセンスの種類によって決まります。 次の表に示すように、API 権利制限は 24 時間単位で決められています。

製品 24 時間ごとの有料ライセンスの要求
Power Platform (アプリごとの Power Apps、フローごとの Power Automate、および Power Virtual Agents を除く) および Dynamics 365 (Dynamics 365 Team Member を除く) の有料ライセンス ユーザー 40,000
Power Apps 従量課金制プラン、およびアプリごとの Power Apps、Power Platform アクセスを含む Microsoft 365 アプリ、Dynamics 365 Team Member の有料ライセンスユーザー 6,000
Power Automate のフローごとのプラン、Power Virtual Agents 基準プラン、および Power Virtual Agents アドオン パック 250,000
有料の Power Apps ポータル サインイン 200

Dataverse では、サービスを操作するのにユーザー ライセンスを必要としない ID を設定できます。 ユーザーの種類は、次の 4 つです。

  • アプリケーション ユーザー
  • 非インタラクティブ ユーザー
  • 管理ユーザー
  • システム ユーザー

各テナントには、標準ライセンスを持つユーザーではなくこれらのユーザーだけが使用できる基本要求キャパシティが割り当てられています。 この基本要求キャパシティは、次のようにサブスクリプションの種類に基づいて決まります。

  • テナントに Dynamics 365 エンタープライズ サブスクリプションが 1 つ以上ある場合、24 時間ごとに 100,000 件の要求を実行できます。
  • テナントに Dynamics 365 プロフェッショナル サブスクリプションが 1 つ以上ある場合、24 時間ごとに 50,000 件の要求を実行できます。
  • テナントに Microsoft Power Apps または Power Automate サブスクリプションが 1 つ以上ある場合、24 時間ごとに 25,000 件の要求を実行できます。

Power Apps および Power Automate キャパシティ アドオンを使用すると、特定のユーザーの制限を引き上げることができます。 キャパシティ アドオン 1 つあたり、24 時間ごとに実行できる要求が 10,000 件増加します。

メモ

詳細については、API 要求の制限を参照してください。

サービス制限

1 日あたりの API 要求制限とは別に、各サービスに固有のサービス保護制限が決められています。 1 日あたりの制限と同様、サービス制限は、すべてのお客様にとってサービスの低下につながるような悪意のある行動や迷惑な行動からサービスを保護することで、サービスの品質を維持するのに役立ちます。

サービス保護 API 制限により、アプリケーションを実行しているユーザーがリソースの制約のために互いに干渉し合うのを防ぐことができます。 この制限は、プラットフォームの通常のユーザーには影響を与えません。 影響を受ける可能性があるのは、多数の API 要求を実行するアプリケーションのみです。 この制限により、Dataverse プラットフォームの可用性とパフォーマンス特性に悪影響を与える、要求量のランダムな急増や予期しない急増からの一定の保護が実現します。

Microsoft では、各ユーザー アカウントの同時接続数、接続ごとの API 要求の数、接続ごとに使用できる実行時間の長さを制限しています。 これらの制限は、5 分のスライディング ウィンドウ内で評価されます。 いずれかの制限を超えると、プラットフォームにより例外がスローされます。

重要

サービス保護制限を引き上げることはできません。

メモ

詳細については、API の制限を参照してください。

再試行のポリシーとパターン

API を使用するカスタム ロジックは、再試行を処理します。 サービス保護 API 制限エラーが発生すると、ユーザーからの新しい要求を処理できるようになるまでの時間を示す値が生成されます。

制限に到達すると、Web API は 429 エラーを返します。 応答には、Retry-After と秒数が含められます。 組織サービスでは、キー Retry-After と共に OrganizationServiceFault.ErrorDetails コレクションで TimeSpan 値が返されます。

メモ

過剰な再試行により問題を悪化させないように注意してください。

詳細については、サービス保護制限 を参照してください。

API 呼び出しを最小限に抑える

キャパシティが無限であることを前提としたソリューション設計にしないでください。 対話型アプリの通常のユーザーに対しては、ユーザーが影響を受けないような高い制限が設定されてきました。

Dataverse へのデータの読み込みや一括更新の実行を目的として設計されたアプリケーションは、サービス保護 API 制限エラーにも対処できる必要があります。 そのようなアプリケーションでは、最小限の時間で処理を完了できるようにスループットが優先されます。 そのようなアプリケーションには、操作の再試行に関する戦略が必要です。

通常、ポータル アプリケーションは、サービス プリンシパル アカウントを通じて匿名ユーザーからの要求を送信します。 サービス保護 API 制限はユーザー単位で判断されるため、ポータル アプリケーションはそのポータルで生じたトラフィック量に基づいてサービス保護 API 制限に到達する可能性があります。

統合は、API 呼び出しの数が最小限に抑えられるように最適化してください。

ソリューション アーキテクトは、ソリューションの設計時に可用性も考慮に入れる必要があります。