次の方法で共有


Microsoft 365 API で調整をシミュレートする

通常、Microsoft 365 サーバーの負荷が高い場合、テスト テストは困難です はほとんど発生しません。 開発プロキシを使用すると、調整応答をシミュレートし、アプリケーションが正しく処理するかどうかを確認できます。

Microsoft 365 API の調整をシミュレートするには、 GraphRandomErrorPluginRetryAfterPlugin を使用します。 GraphRandomErrorPluginは、Microsoft 365 API の調整応答を返します。 RetryAfterPluginは、API の指示に従ってアプリがバックオフすることを確認します。

開始するには、開発プロキシ構成ファイルで GraphRandomErrorPluginRetryAfterPlugin を有効にします。

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/rc.schema.json",
  "plugins": [
    {
      "name": "RetryAfterPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    },
    {
      "name": "GraphRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "graphRandomErrorPlugin"
    }
  ],
  "urlsToWatch": [
    "https://graph.microsoft.com/v1.0/*",
    "https://graph.microsoft.com/beta/*",
    "https://graph.microsoft.us/v1.0/*",
    "https://graph.microsoft.us/beta/*",
    "https://dod-graph.microsoft.us/v1.0/*",
    "https://dod-graph.microsoft.us/beta/*",
    "https://microsoftgraph.chinacloudapi.cn/v1.0/*",
    "https://microsoftgraph.chinacloudapi.cn/beta/*",
    "!https://*.sharepoint.*/*_api/web/GetClientSideComponents",
    "https://*.sharepoint.*/*_api/*",
    "https://*.sharepoint.*/*_vti_bin/*",
    "https://*.sharepoint-df.*/*_api/*",
    "https://*.sharepoint-df.*/*_vti_bin/*"
  ]
}

注意事項

構成ファイルのGraphRandomErrorPluginの前にRetryAfterPluginを追加します。 後で追加した場合、RetryAfterPluginが処理する前にGraphRandomErrorPluginによって要求が失敗します。

次に、調整エラーをシミュレートするように GraphRandomErrorPlugin を構成します。

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/rc.schema.json",
  "plugins": [
    {
      "name": "RetryAfterPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    },
    {
      "name": "GraphRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "graphRandomErrorPlugin"
    }
  ],
  "urlsToWatch": [
    "https://graph.microsoft.com/v1.0/*",
    "https://graph.microsoft.com/beta/*",
    "https://graph.microsoft.us/v1.0/*",
    "https://graph.microsoft.us/beta/*",
    "https://dod-graph.microsoft.us/v1.0/*",
    "https://dod-graph.microsoft.us/beta/*",
    "https://microsoftgraph.chinacloudapi.cn/v1.0/*",
    "https://microsoftgraph.chinacloudapi.cn/beta/*",
    "!https://*.sharepoint.*/*_api/web/GetClientSideComponents",
    "https://*.sharepoint.*/*_api/*",
    "https://*.sharepoint.*/*_vti_bin/*",
    "https://*.sharepoint-df.*/*_api/*",
    "https://*.sharepoint-df.*/*_vti_bin/*"
  ],
  "graphRandomErrorPlugin": {
    "allowedErrors": [ 429 ]
  }
}

構成ファイルで開発プロキシを起動し、アプリをテストして、調整がどのように処理されるかを確認します。

調整されたときにアプリケーションがバックオフしたが、要求で指定された時間待機しない場合は、 Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttledのようなメッセージが表示されます。

このメッセージは、アプリケーションが調整を正しく処理せず、不必要に調整を長引かせることを示します。 アプリで調整を処理する方法を改善するには、要求を再試行する前に、 Retry-After ヘッダーで指定された時間待機するようにコードを更新します。