Direkt zum Inhalt

Warum schlägt mein Amazon S3-Batch-Replikationsauftrag fehl?

Lesedauer: 6 Minute
0

Ich möchte herausfinden, warum mein Amazon Simple Storage Service (Amazon S3)-Batch-Replikationsauftrag fehlschlägt.

Kurzbeschreibung

Die Batch-Replikation kann aufgrund von Problemen mit Berechtigungen, Richtlinien oder einer Auftragskonfiguration fehlschlagen.

Um eine große Anzahl von erfolglosen Vorgängen zu verhindern, legt Amazon S3 für jeden Sammelauftrag einen Schwellenwert für Aufgabenfehler fest. Amazon S3 überwacht die Aufgaben-Fehlerrate, nachdem der Auftrag mindestens 1000 Aufgaben ausführt. Wenn ein Auftrag die Ausfallrate von 50 % überschreitet, schlägt der Auftrag fehl. Gehe wie folgt vor, um das Problem zu ermitteln und zu lösen. Reiche den Auftrag dann erneut ein.

Lösung

Batch-Rollenberechtigungen

Gewähre der Batch-Rolle die folgenden Berechtigungen:

  • Stelle PUT-Berechtigungen für das Manifest oder die Konfiguration bereit.
  • Stelle GET-Berechtigungen für das Manifest mit dem Bucket bereit, in dem das Manifest gespeichert ist.
  • Wenn du dein eigenes Manifest verwendest, gewähre der Batch-Rolle Berechtigungen für den Zugriff auf das Manifest.
  • Erteile die s3:CreateJob-Berechtigung, um den Batch-Auftrag zu erstellen.
  • Wenn du eine Tag-Option eines Auftrags anwendest, gewähre auch die s3:PutJobTagging-Berechtigung.

Hinweis: Um Batch-Vorgänge zu speichern, muss die Batch-Rolle über GET- und PUT-Berechtigungen für die Manifestdatei verfügen. Weitere Informationen findest du unter Konfigurieren einer AWS Identity and Access Management (IAM)-Rolle für die S3-Batch-Replikation.

Berechtigungen für Replikationsrollen

Wenn ein Batch-Auftrag die Ausfallrate von 50 % überschreitet, liegt möglicherweise ein Problem mit der Konfiguration der Replikationsrolle vor.

Verwende bei der Konfiguration der Replikationsrolle die folgenden Einstellungen:

Quell- und Ziel-Bucket-Richtlinie

Verwende die folgenden Bucket-Richtlinieneinstellungen:

  • Wenn sich der Ziel-Bucket in einem anderen AWS-Konto befindet, gewähre der Replikationsrolle in der Quell-Replikationsregel des Buckets die Erlaubnis, Objekte zu replizieren. Diese Berechtigungen gelten zusätzlich zur IAM-Rollenrichtlinie. Außerdem, konfiguriere den Ziel-Bucket nicht als „Zahlung durch den Anforderer“.
  • Standardmäßig ist der Besitzer des Quell-Buckets nicht berechtigt, auf die Objekte zuzugreifen, die andere Konten erstellen. Die Replikationskonfiguration repliziert nur die Objekte, auf die der Besitzer des Quell-Buckets zugreifen kann. Um dieses Problem zu beheben, deaktiviere entweder die Zugriffssteuerungslisten (ACLs) in den Objekteigentumskontrollen oder ändere den Besitz der Objekte auf das Quell-Konto.
  • Wenn du das Manifest des Batch-Auftrags in einem kontoübergreifenden Bucket speicherst, erlaube dem Bucket-Konto den Zugriff auf das Manifest. Füge der Bucket-Richtlinie die Berechtigung für die Batch-Rolle hinzu.

AWS-KMS-Berechtigungen für verschlüsselte Objekte

Verwende die folgenden AWS-KMS-Einstellungen für verschlüsselte Objekte:

Explizite Deny-Anweisungen

Wenn die Deny-Anweisung der Bucket-Richtlinie Aktionen einschränkt, die auf dem Netzwerk basieren, kann Amazon S3 die Replikation nicht durchführen. Die Amazon S3-Replikation verwendet nicht den Virtual Private Cloud (VPC)-Endpunkt oder Amazon S3-Zugriffspunkte, die du für den privaten Zugriff konfiguriert hast.

Gehe wie folgt vor, um Einschränkungen aufzuheben:

  • Konfiguriere die Bucket-Richtlinie des Manifests so, dass keine Aktionen verweigert werden, die die Batch-Rolle erfordert.
  • Wenn du beim Erstellen des S3-Batch-Auftrags privaten Zugriff verwendest, gewähre dem VPC-Endpunkt die Berechtigung, den Batch-Auftrag zu erstellen.
  • Stelle sicher, dass du die erforderlichen Replikationsberechtigungen in IAM, den Service-Kontrollrichtlinien (SCPs) von AWS Organizations, Bucket-Richtlinien oder AWS-KMS-Richtlinien nicht verweigert hast.

Fehler bei der Konfiguration von Batch-Replikationsaufträgen

Konfigurationsprobleme können zu den folgenden Fehlerreaktionen führen.

Bei der Manifestgenerierung wurden keine Schlüssel gefunden, die den Filterkriterien entsprechen

Nimm keine Objekte in das Manifest auf, die sich in Amazon S3 Glacier oder Amazon S3 Glacier Deep Archive befinden, da sie bei einem Replikationsvorgang nicht gefunden werden.

Wenn der Präfixfilter oder die Filterkriterien der Replikationsregel im Batch-Replikationsauftrag nicht mit einem Präfix im Bucket übereinstimmen, stelle die Objekte wieder her. Nachdem du die Objekte wiederhergestellt hast, führe die Replikation erneut durch.

SrcGetObjectNotPermitted oder SrcHeadObjectNotPermitted

Du erhältst den Fehler SrcGetObjectNotPermitted oder SrcHeadObjectNotPermitted, wenn die IAM-Rolle, die du in der Replikationsregel konfiguriert hast, nicht berechtigt ist, auf Objekte zuzugreifen. Du kannst auch einen der Fehler erhalten, wenn die IAM-Rolle keine Objektmetadaten aus dem Quell-Bucket abrufen kann. Um diese Probleme zu beheben, füge der IAM-Rollenrichtlinie die Berechtigung s3:GetObjectVersionForReplication hinzu.

Weitere Informationen findest du unter Berechtigungen zum Erstellen von Replikationsregeln einrichten.

DstPutObjectNotPermitted

Wenn du den Fehler DstObjectNotPermitted erhalten, kann Amazon S3 keine Objekte in den Ziel-Bucket replizieren. Um dieses Problem zu beheben, gewähre die Berechtigung s3:ReplicateObject oder s3:ObjectOwnerOverrideToBucketOwner sowohl in der IAM-Rollenrichtlinie als auch in der Ziel-S3-Bucket-Richtlinie.

Der Batch-Auftrag wurde erfolgreich ausgeführt, aber die Anzahl der im Ziel-Bucket erwarteten Objekte ist nicht dieselbe

Dieser Fehler tritt auf, wenn Objekte, die im Manifest aufgeführt sind und dem Filter nicht übereinstimmen. Um dieses Problem zu beheben, korrigiere die Tippfehler in dem Filter, den du beim Erstellen des Auftrag ausgewählt hast oder in der Konfiguration der Replikationsregeln.

400 InvalidRequest: Task failed due to missing VersionId

Dieser Fehler tritt auf, wenn der Auftrag im Manifest auf ein Objekt mit einem leeren Versions-ID-Feld stößt. Um dieses Problem zu beheben, wandle die leeren Versions-IDs in Null-Zeichenfolgen um

Reasons for failure. The job report could not be written to your report bucket. Please check your permissions.

Amazon S3 unterstützt keine Objektsperren für den Bucket, den du zum Speichern des Batch-Abschlussberichts festgelegt hast. Speichere den Bericht stattdessen in einem S3-Bucket ohne Objektsperre.

Objekte wurden ohne Fehlermeldung übersprungen

Amazon S3 repliziert kein Objekt in einem Quell-Bucket, das eine Replik aus einer anderen Replikationskonfiguration ist.

Außerdem repliziert Amazon S3 keine Objekte in denselben Ziel-Bucket, in dem eine Replikation erfolgreich abgeschlossen wurde. Stattdessen überspringt Amazon S3 das Objekt ohne eine Fehlermeldung.

Überwachen

Nach Abschluss eines Batch-Replikationsauftrags generiert Amazon S3 einen Batch-Abschlussbericht in dem von dir angegebenen Ziel-Bucket oder Präfix. Dieser Bericht enthält detaillierte Informationen, einschließlich Ausfällen und zugehörigen Fehlermeldungen. Überprüfe den Batch-Abschlussbericht, um Objekte oder Vorgänge zu identifizieren, die während des Replikationsvorgangs fehlgeschlagen sind, und die damit verbundenen Fehler- oder Ausfallgründe.

Verwende Amazon S3-Ereignisbenachrichtigungen, um benachrichtigt zu werden, wenn Objekte nicht in die AWS-Zielregion repliziert werden.

Hinweis: Die Vorbereitung eines Manifests für Amazon S3 nimmt Zeit in Anspruch. Wenn sich der Batch-Auftrag jedoch in der Phase Vorbereiten befindet oder mehrere Stunden lang dieselbe Fertigstellungsrate erreicht hat, wende dich an den AWS Support.

Ähnliche Informationen

Wie behebe ich Probleme mit Amazon S3 Batch Operations?

AWS OFFICIALAktualisiert vor 9 Monaten