Freigeben über


Simulieren der Drosselung auf Microsoft 365-APIs

In der Regel ist das Testen der Drosselung schwierig, da sie selten auftritt, wenn Microsoft 365-Server stark belastet sind. Mithilfe des Dev-Proxys können Sie Drosselungsantworten simulieren und überprüfen, ob die Anwendung sie richtig behandelt.

Verwenden Sie zum Simulieren der Drosselung auf Microsoft 365-APIs den GraphRandomErrorPlugin und den RetryAfterPlugin. Die GraphRandomErrorPlugin Gibt Drosselungsantworten für Microsoft 365-APIs zurück. Die RetryAfterPlugin Überprüfung, ob Ihre App von der API unterstützt wird.

Aktivieren Sie zunächst die GraphRandomErrorPlugin Dev Proxy-Konfigurationsdatei und RetryAfterPlugin geben Sie sie an.

{
  "$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/*"
  ]
}

Achtung

Fügen Sie die vor der RetryAfterPlugin GraphRandomErrorPlugin Konfigurationsdatei hinzu. Wenn Sie sie nachher hinzufügen, schlägt die Anforderung fehl, bevor GraphRandomErrorPlugin die RetryAfterPlugin Möglichkeit besteht, sie zu behandeln.

Konfigurieren Sie als Nächstes die GraphRandomErrorPlugin Drosselungsfehler, um Drosselungsfehler zu simulieren.

{
  "$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 ]
  }
}

Starten Sie Dev Proxy mit Ihrer Konfigurationsdatei, und testen Sie Ihre App, um zu sehen, wie die Drosselung behandelt wird.

Wenn Die Anwendung beim Drosseln zurückgeschaltet wird, aber nicht auf die für die Anforderungen angegebene Zeit wartet, wird eine Meldung ähnlich angezeigt Calling https://graph.microsoft.com/v1.0/endpoint again before waiting for the Retry-After period. Request will be throttled.

Diese Meldung gibt an, dass Ihre Anwendung die Einschränkung nicht ordnungsgemäß verarbeitet und unnötig die Drosselung verlängert. Um die Behandlung der Drosselung durch Ihre App zu verbessern, aktualisieren Sie den Code so, dass er auf die im Header angegebene Retry-After Zeit wartet, bevor die Anforderung erneut ausgeführt wird.