Verstehen von Grenzwerten und Aufrufmustern

Gilt für: Entwickler

Verwenden Sie diesen Artikel, um SharePoint Embedded-Aufrufmuster zu planen, bevor Sie Container- und Inhaltsvorgänge mit hohem Volumen erstellen. SharePoint Embedded drückt den Durchsatz als Ressourceneinheiten pro Minute (ein normalisiertes Anforderungskostenmodell) und nicht als feste Anforderungsrate pro Sekunde aus. Im Abschnitt API-Ratenlimits wird erläutert, wie Ressourceneinheiten in eine erwartete Anforderungsrate übersetzt werden.

Die mit gekennzeichneten * Grenzwerte können auf Anfrage über den Microsoft-Support oder Ihren SharePoint Embedded-Onboardingkontakt erhöht werden. Planen Sie das Standardlimit ein, und fordern Sie eine Erhöhung an, bevor Sie es in der Produktion angehen.

Kategorien einschränken

SharePoint Embedded-Grenzwerte wirken sich auf Folgendes aus:

  • *Anzahl der Containertypen
  • *Containeranzahl
  • Speicher pro Containertyp und Container
  • Dateien und Ordner
  • Berechtigungen
  • Dateigröße
  • Versionsanzahl
  • *API-Ratenlimits
  • *Anforderungen pro App, Container und Benutzer

Hinweis

Diese Grenzwerte können sich ändern. Überprüfen Sie die aktuellen Grenzwerte, bevor Sie mit der Produktion starten.

Größengrenzwerte

SharePoint Embedded erzwingt die folgenden Größenbeschränkungen.

Ressource Grenze
Containertypen, die ein Partnermandant erstellen kann 25*
Containertypen, die eine App besitzen kann 1
Container eines Containertyps pro verbrauchender Mandant 100.000*
Speicher pro Containertyp und verbrauchender Mandant 100 TB*
Files und Ordner pro Container 30M
Speicher pro Container 25 TB
Files und Ordner mit zusätzlichen Berechtigungen pro Container 5k
Dateigröße 250 GB
Versionsanzahl pro Datei 500 (Standardeinstellung für automatische Versionsverlaufsbeschränkungen)
Anzahl freigegebener Benutzer pro Ordner oder Datei 5k

Ein Sternchen (*) gibt einen Grenzwert an, den Sie zur Erhöhung anfordern können.

Von den Containertypen, die ein Mandant erstellt, kann einer ein kostenloser Testcontainertyp für Entwicklung und Tests sein, und der Rest sind Standardcontainertypen (abgerechnet). Neue Mandanten beginnen mit einem niedrigeren Standardwert, der bei Anforderung ausgelöst werden kann. Ausführliche Informationen zu Test und Standard finden Sie unter Erstellen und Konfigurieren eines Containertyps.

Entwerfen von Containertypbeschränkungen

Eine App kann einen Containertyp besitzen.

Modellieren Sie nicht jeden Kunden, jedes Projekt, jeden Arbeitsbereich oder jeden Benutzer als separaten Containertyp.

Verwenden Sie Container für Anwendungsspeicherinstanzen innerhalb des Containertyps.

Wählen Sie einen Containertyp für Verhalten auf App-Ebene, Zugriffsbeziehung und Abrechnungs-Verantwortlichkeit aus.

Informationen zur Containertypplanung finden Sie unter Grundlegendes zu Containertypen und Containern.

Entwerfen von Containergrenzwerten

Container stellen die Speicher- und Sicherheitsgrenze bereit.

Planen Sie die Anzahl der Container, die jeder mandant nutzt, erstellt werden kann.

Konto für aktive Container und alle gelöschten Containerlebenszyklus, die sich auf Kontingente oder Speicher auswirken können.

Halten Sie die Containergrenzen an den Zugriffs-, Lebenszyklus- und Governanceanforderungen ausgerichtet.

Entwerfen für Berechtigungsbeschränkungen

SharePoint Embedded ermöglicht bis zu 5.000 Dateien und Ordner mit zusätzlichen Berechtigungen pro Container.

Vermeiden Sie es, alle Dateien oder Ordner so zu entwerfen, dass sie über eindeutige Berechtigungen verfügen, wenn ein Modell auf Container- oder Ordnerebene ausreicht.

Verwenden Sie nach Möglichkeit Containermitgliedschaft und -rollen.

Informationen zu Berechtigungskonzepten finden Sie unter Planen von Authentifizierung und Berechtigungen.

Drosselungsantworten

Wenn Anwendungen Dienstgrenzwerte erreichen, kann SharePoint Embedded Folgendes zurückgeben:

  • HTTP .429 Too Many Requests
  • HTTP .503 Server Too Busy

Beide Antworten enthalten einen Retry-After Header.

Der Header teilt der App mit, wie lange gewartet werden soll, bevor es erneut versucht oder eine neue Anforderung gestellt wird.

Wichtig

Gedrosselte Anforderungen werden auf Nutzungsgrenzwerte angerechnet. Wenn Sie ignorieren Retry-After, kann Ihre App zu einer weiteren Drosselung führen.

Wiederholungsanleitung

Implementieren Sie Wiederholungslogik, die:

  • Erkennt HTTP 429 und 503.
  • Liest die Retry-After Kopfzeile.
  • Wartet für die angegebene Dauer, bevor es erneut versucht wird.
  • Reduziert die Parallelität nach der Drosselung.
  • Vermeidet sofortige Wiederholungsschleifen.
  • Vermeidet Anforderungsspitzen nach einer Wartezeit.

Verwenden Sie begrenzungsgebundene Wiederholungen, und beheben Sie permanente Fehler in Betriebstelemetriedaten. Allgemeine Anleitungen zur Behandlung von Drosselungsantworten finden Sie unter Microsoft Graph-Drosselungsleitfaden.

Parallelitätsleitfaden

Reduzieren Sie die Anzahl gleichzeitiger Anforderungen, wenn eine Drosselung auftritt.

Vermeiden Sie Burstmuster, die viele Anforderungen gleichzeitig senden.

Verteilen Sie die Arbeit über die Zeit, wenn Sie große Gruppen von Containern oder Dateien verarbeiten.

Verwenden Sie Warteschlangen oder Hintergrund-Worker, um den Datenverkehr zu glätten.

Priorisieren Sie benutzerseitig sichtbare Vorgänge gegenüber der Hintergrundwartung, wenn die Grenzwerte nahe sind.

API-Ressourceneinheiten

Unterschiedliche APIs haben je nach Funktionalität und Komplexität unterschiedliche Kosten.

Die Kosten werden normalisiert und als Ressourceneinheiten ausgedrückt.

API-Ratenlimits werden auch mithilfe von Ressourceneinheiten definiert.

Jede Anforderung kostet Ressourceneinheiten basierend auf ihrer Komplexität:

Ressourceneinheiten pro Anforderung Aktivitäten
1 Einzelne Elementabfrage, z. B. "Element abrufen".
2 Abfrage mit mehreren Elementen, z. B. untergeordnete Elemente auflisten, erstellen, aktualisieren, löschen und hochladen.
5 Alle Berechtigungsressourcenvorgänge, einschließlich $expand=permissions.

Hinweis

Die Kosten für Ressourceneinheiten können sich ändern.

API-Ratenlimits

SharePoint Embedded erzwingt diese API-Ratenlimits.

Ressource Grenze
Anforderungen pro Container 3.000 Ressourceneinheiten pro Minute
Anforderungen pro App und Mandant 12.000 Ressourceneinheiten pro Minute*
Anforderungen pro Benutzer 600 Ressourceneinheiten pro Minute

Ein Sternchen (*) gibt einen Grenzwert an, den Sie zur Erhöhung anfordern können.

Anwendungsgrenzwerte werden in Ressourceneinheiten definiert.

Die tatsächlichen Anforderungen pro Minute hängen von den aufgerufenen APIs und deren Kosten für Ressourceneinheiten ab.

Um Ihre Anforderungsrate zu schätzen, durchschnittlich etwa zwei Ressourceneinheiten pro Anforderung, und dividieren Sie den Grenzwert für Anwendungsressourceneinheiten durch zwei.

Ratenbegrenzung für die Containererstellung

Pro verbrauchender Mandant und während der Spitzenzeiten des Mandanten ist die Containererstellung auf 5 neue Container pro Sekunde beschränkt. Anforderungen, die über diesen Grenzwert hinausgehen, sind ratenlimitiert. Außerhalb der Spitzenzeiten können Container schneller erstellt werden.

Kosten für Berechtigungsvorgänge

Berechtigungsressourcenvorgänge haben höhere Kosten für Ressourceneinheiten.

Vorgänge, die einschließen $expand=permissions , werden in fünf Ressourceneinheiten aufgeführt.

Reduzieren Sie unnötige Berechtigungserweiterungen.

Von Berechtigungen abgeleitete Entscheidungen nur zwischenspeichern, wenn sie für Ihr Sicherheitsmodell sicher sind.

Aktualisieren Sie Berechtigungsdaten, wenn Mitgliedschafts- oder Rollenänderungen auftreten.

Überlegungen zur Batchverarbeitung

Die Batchverarbeitung kann den Clientmehraufwand reduzieren, aber es werden keine Dienstgrenzwerte oder Auswirkungen auf die Abrechnung entfernt.

Zählen Sie jeden zugrunde liegenden Vorgang, wenn Sie den Ressourceneinheitenverbrauch und die Transaktionskosten schätzen.

Vermeiden Sie das Erstellen von Batches, die in einem kurzen Intervall zu viel Arbeit auf einen Container, eine App, einen Mandanten oder einen Benutzer konzentrieren.

Berücksichtigen Sie Drosselungsantworten für Batchvorgänge entsprechend den von der Plattform zurückgegebenen Antwortdetails.

Überlegungen zur Leistung

Entwurf für:

  • Weniger aufrufe mit berechtigungenintensiven Berechtigungen.
  • Vorhersehbare Parallelität.
  • Inkrementelle Synchronisierung.
  • Backoff nach der Drosselung.
  • Trennung von Vordergrund- und Hintergrundarbeit.
  • Fairness auf Mandantenebene für mehrinstanzenfähige Apps.
  • Überwachung der Anforderungsrate, der Antwortcodes und der Latenz.

Informationen zu den Auswirkungen auf die Abrechnung von API-Transaktionen finden Sie unter Auswählen eines Abrechnungsmodells.

Betriebsüberwachung

Track:

  • HTTP- 429 und 503 Antwortraten.
  • Wiederholungsanzahl und Wartedauer.
  • Ressourcenintensive Vorgänge.
  • Anforderungen nach App, Mandant, Benutzer und Container.
  • Warteschlangenlänge des Hintergrundauftrags.
  • Speicherwachstum pro Container und Mandant.
  • Häufigkeit des Berechtigungsvorgangs.

Verwenden Sie diese Signale, um die Parallelität zu optimieren und Mandanten oder Workflows zu identifizieren, die Entwurfsänderungen erfordern.

Planungscheckliste

  • Überprüfen Sie die aktuellen Größenbeschränkungen vor dem Start der Produktion.
  • Modellieren Sie Container, anstatt viele Containertypen zu erstellen.
  • Schätzen sie den Speicher pro Container und pro verbrauchender Mandant.
  • Schätzen sie die Anzahl von Dateien und Ordnern.
  • Vermeiden Sie unnötige zusätzliche Berechtigungen.
  • Implementieren Sie Retry-After die Behandlung für 429 und 503.
  • Begrenzen Sie die Parallelität, und vermeiden Sie Spitzen.
  • Schätzen Sie die Nutzung von Ressourceneinheiten nach Vorgangstyp.
  • Reduzieren Sie vorgänge mit hoher Berechtigungsbelastung.
  • Überwachen sie Drosselung und Latenz.
  • Beziehen Sie die Auswirkungen auf die Abrechnung in den API-Entwurf ein.

Nächste Schritte

Beginnen Sie mit dem Erstellen mit Schnellstart: Erstellen Ihrer ersten App mit VS Code.