Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Ein Amazon Textract Textract-Vorgang kann fehlschlagen, wenn Sie die maximale Anzahl von Transaktionen pro Sekunde (TPS) überschreiten, wodurch der Service Ihre Anwendung drosselt oder wenn Ihre Verbindung unterbrochen wird. Wenn Sie beispielsweise in kurzer Zeit zu viele Anrufe Amazon Textract Textract-Operationen tätigen, drosselt es Ihre Anrufe und sendet eineProvisionedThroughputExceededException
Fehler in der Betriebsantwort. Hinweise zu Amazon Textract TPS-Kontingenten finden Sie unterAmazon Textract Kontingenteaus.
Sie können Drosselung und abgebrochene Verbindungen verwalten, indem Sie den Vorgang automatisch wiederholen. Sie können die Anzahl der Wiederholungen angeben, indem Sie dieConfig
-Parameter, wenn Sie den Amazon Textract Textract-Client erstellen. Wir empfehlen eine Wiederholungsanzahl von 5. DieAWSDas SDK versucht eine Operation die angegebene Anzahl von Malen erneut, bevor es fehlschlägt und eine Ausnahme ausgelöst wird. Weitere Informationen finden Sie unter Wiederholversuche bei Fehlern und exponentielles Backoff in AWS.
Anmerkung
Automatische Wiederholungen funktionieren sowohl für synchrone als auch für asynchrone Operationen. Stellen Sie vor dem Angeben von automatischen Wiederholungen sicher, dass Sie über die neueste Version des AWS SDKs verfügen. Weitere Informationen finden Sie unter Schritt 2: Einrichten derAWS CLIundAWS-SDKs .
Das folgende Beispiel zeigt, wie Sie Amazon Textract Textract-Vorgänge automatisch erneut versuchen, wenn Sie mehrere Dokumente verarbeiten.
Voraussetzungen
Wenn Sie dies noch nicht getan haben:
Erstellen oder aktualisieren Sie einen IAM-Benutzer mit
AmazonTextractFullAccess
undAmazonS3ReadOnlyAccess
-Berechtigungen Weitere Informationen finden Sie unter Schritt 1: Einrichten eines AWS-Kontos und Erstellen eines IAM-Benutzers .Installieren und konfigurieren Sie die AWS CLI- und AWS-SDKs. Weitere Informationen finden Sie unter Schritt 2: Einrichten derAWS CLIundAWS-SDKs .
So wiederholen Sie Operationen automatisch
-
Laden Sie mehrere Dokumentbilder in Ihren S3-Bucket hoch, um das Synchrone Beispiel auszuführen. Laden Sie ein mehrseitiges Dokument in Ihren S3-Bucket hoch und führen Sie es
StartDocumentTextDetection
darauf, um das Asynchrone Beispiel auszuführen.Detaillierte Anweisungen finden Sie unterHochladen von Objekten in Amazon S3imAmazon Simple Storage Service Benutzerhandbuchaus.
-
Die folgenden Beispiele veranschaulichen, wie Sie die
Config
-Parameter, um eine Operation automatisch erneut zu versuchen. Das synchrone Beispiel ruft denDetectDocumentText
-Operation, während das Asynchrone Beispiel dieGetDocumentTextDetection
verwenden.Verwenden Sie die folgenden Beispiele, um die
DetectDocumentText
-Betrieb auf den Dokumenten in Ihrem Amazon S3 S3-Bucket. In :main
So ändern Sie den -Wertbucket
auf Ihrem S3-Bucket hoch (es sollte ein oder mehrere Objekte wie beispielsweise Bäume, Häuser, Boote, etc. enthalten). Ändern Sie den -Wertdocuments
auf die Namen der Dokumentbilder, die Sie in Schritt 2 hochgeladen haben.import boto3 from botocore.client import Config # Documents def process_multiple_documents(bucket, documents): config = Config(retries = dict(max_attempts = 5)) # Amazon Textract client textract = boto3.client('textract', config=config) for documentName in documents: print("\nProcessing: {}\n==========================================".format(documentName)) # Call Amazon Textract response = textract.detect_document_text( Document={ 'S3Object': { 'Bucket': bucket, 'Name': documentName } }) # Print detected text for item in response["Blocks"]: if item["BlockType"] == "LINE": print ('\033[94m' + item["Text"] + '\033[0m') def main(): bucket = "" documents = ["document-image-1.png", "document-image-2.png", "document-image-3.png", "document-image-4.png", "document-image-5.png" ] process_multiple_documents(bucket, documents) if __name__ == "__main__": main()