変更要約: PL-400 第4章を新規作成(ドメイン: プラットフォーム拡張の後半)。カスタムコネクタ(Open API 定義・認証 OAuth/API キー/Basic・ポリシーテンプレート・Azure Function・データ変換)、プラットフォーム API と Azure Functions(Dataverse Web API OData・Organization service .NET SDK・throttling/retry・OAuth・楽観的同時実行/ExecuteMultiple・Azure Functions long-running/トリガー/マネージド ID)、Power Automate クラウドフロー(Dataverse connector・式・Azure Key Vault・エラー処理 run after・trigger filter/retry・child flows・Entra ID サービスプリンシパル)。
4.2プラットフォーム API と Azure Functions
Dataverse Web API、Organization service、API 制限と retry、OAuth、並行性/トランザクション/一括、Azure Functions(long-running、トリガー、マネージド ID)を理解します。
Dataverse をプログラムから操作する手段は複数あります。どの APIを、どの制約の中で使うかを設計します。
4.2.1Web API と Organization service
Dataverse Web API は OData v4 ベースの REST API で、任意の言語/クライアントから HTTP で呼べます。Organization service は .NET SDK(IOrganizationService) でサーバーサイドやプラグインから使います。認証は OAuth 2.0(Microsoft Entra ID のアプリ登録) を用います。API には リクエスト制限(throttling) があり、429 応答には retry(指数バックオフ) で対応します。
4.2.2並行性・一括・Azure Functions
更新の衝突は 楽観的同時実行(ETag/RowVersion) で検出し、トランザクションで整合を保ちます。多数の操作は 一括(ExecuteMultipleRequest) でまとめて性能を上げます。プラグインのタイムアウトを超える long-running 処理 は Azure Functions に逃がし、スケジュール/イベント駆動のトリガー で起動します。Azure Functions から Power Platform へは マネージド ID で認証でき、シークレット管理を不要にします。
決め手:「OData v4 RESTを任意言語から」=Dataverse Web API。「.NET SDKでサーバー/プラグイン」=Organization service。「429にretry(指数バックオフ)」=スロットリング対策。「更新衝突検出」=楽観的同時実行(ETag)。「多数操作をまとめる」=ExecuteMultiple。「タイムアウト超の重い処理」=Azure Functions。「シークレット不要の認証」=マネージドID。
混同に注意:
①Web API(REST/任意言語)とOrganization service(.NET SDK/サーバー)を取り違えない。
②throttling(制限)とretry(対応)は別概念。
③ExecuteMultiple(一括)と単一要求の使い分け。
④重い処理を同期プラグインに置かずAzure Functionsへ。
⑤マネージドID(シークレット不要)とAPIキーを区別。
4.2.3この節のまとめ
- Web API=OData REST/任意言語・Organization service=.NET SDK/サーバー・OAuth認証
- throttlingにretry(指数バックオフ)・楽観的同時実行・ExecuteMultipleで一括
- long-running処理はAzure Functions・トリガー起動・マネージドID認証
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. 任意の言語のクライアントから HTTP で Dataverse のデータを操作する OData v4 ベースの API はどれですか?
Q2. API のリクエスト制限(throttling)で 429 応答が返るときの適切な対応はどれですか?
Q3. 多数の作成/更新操作を 1 回の要求にまとめて性能を上げたい。最適なのはどれですか?
Q4. プラグインのタイムアウトを超える長時間処理を Power Platform から実行したい。最適なのはどれですか?
Q5. Azure Functions から Power Platform へ、シークレットを管理せずに安全に認証したい。最適なのはどれですか?

