Fehlerbehebung bei der Amazon RDS-Daten-API - Amazon Aurora

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.

Fehlerbehebung bei der Amazon RDS-Daten-API

Verwenden Sie die folgenden Abschnitte mit den allgemeinen Fehlermeldungen, um Probleme zu beheben, die Sie mit der Amazon RDS-Daten-API (Daten-API) haben.

<transaction_ID>Die Transaktion wurde nicht gefunden

In diesem Fall wurde die in einem Data-API-Aufruf angegebene Transaktions-ID nicht gefunden. Die Ursache für dieses Problem wird an die Fehlermeldung angehängt und ist eine der folgenden:

  • Die Transaktion ist möglicherweise abgelaufen.

    Stellen Sie sicher, dass jeder Transaktionsaufruf innerhalb von drei Minuten nach dem letzten ausgeführt wird.

    Es ist auch möglich, dass die angegebene Transaktions-ID nicht durch einen BeginTransactionAnruf erstellt wurde. Stellen Sie sicher, dass Ihr Aufruf eine gültige Transaktions-ID hat.

  • Ein vorheriger Aufruf führte zu einer Beendigung Ihrer Transaktion.

    Die Transaktion wurde bereits von Ihrem CommitTransaction- oder RollbackTransaction-Aufruf beendet.

  • Die Transaktion wurde aufgrund eines Fehlers eines früheren Aufrufs abgebrochen.

    Prüfen Sie, ob Ihre vorherigen Aufrufe Ausnahmen ausgelöst haben.

Informationen zum Ausführen von Transaktionen finden Sie unter Aufrufen der Amazon RDS-Daten-API.

Packet for Query Is Too Large (Paket für Abfrage zu groß)

In diesem Fall war die zurückgegebene Ergebnismenge für eine Zeile zu groß. Die Größenbegrenzung der Data-API beträgt 64 KB pro Zeile in der von der Datenbank zurückgegebenen Ergebnismenge.

Um dieses Problem zu beheben, stellen Sie sicher, dass jede Zeile in einem Ergebnissatz höchstens 64 KB groß ist.

Database Response Exceeded Size Limit Datenbankantwort überschreitet Größenlimit)

In diesem Fall war die Größe der von der Datenbank zurückgegebenen Ergebnismenge zu groß. Das Data-API-Limit beträgt 1 MiB für die von der Datenbank zurückgegebene Ergebnismenge.

Um dieses Problem zu lösen, stellen Sie sicher, dass Aufrufe der Daten-API 1 MiB Daten oder weniger zurückgeben. Wenn Sie mehr als 1 MiB zurückgeben müssen, können Sie mit der LIMIT-Klausel in Ihrer Abfrage mehrere ExecuteStatement-Aufrufe verwenden.

Weitere Informationen über die LIMIT-Klausel finden Sie unter SELECT-Syntax in der MySQL-Dokumentation.

HttpEndpointist nicht für Cluster aktiviert <cluster_ID>

Überprüfen Sie die folgenden möglichen Ursachen für dieses Problem:

  • Der Aurora-DB-Cluster unterstützt keine Daten-API. Informationen zu den Typen von DB-Clustern, die die RDS Data API unterstützt, finden Sie unterRegion und Versionsverfügbarkeit für die Amazon RDS Data API.

  • Die Daten-API ist für den Aurora-DB-Cluster nicht aktiviert. Um die Daten-API mit einem Aurora-DB-Cluster zu verwenden, muss die Daten-API für den DB-Cluster aktiviert sein. Informationen zur Aktivierung der Daten-API finden Sie unterAktivierung der Amazon RDS-Daten-API.

  • Der DB-Cluster wurde umbenannt, nachdem die Daten-API für ihn aktiviert wurde. Schalten Sie in diesem Fall die Daten-API für diesen Cluster aus und aktivieren Sie ihn dann erneut.

  • Der von Ihnen angegebene ARN stimmt nicht genau mit dem ARN des Clusters überein. Stellen Sie sicher, dass der von einer anderen Quelle zurückgegebene oder durch Programmlogik erstellte ARN genau mit dem ARN des Clusters übereinstimmt. Stellen Sie beispielsweise sicher, dass der von Ihnen verwendete ARN die richtigen Groß-/Kleinschreibung für alle alphabetischen Zeichen aufweist.

DatabaseErrorException: Transaction führt immer noch eine Abfrage aus

Wenn Ihre Anwendung eine Anfrage mit einer Transaktions-ID sendet und diese Transaktion gerade eine weitere Anfrage verarbeitet, gibt die Daten-API diesen Fehler sofort an Ihre Anwendung zurück. Dieser Zustand kann auftreten, wenn Ihre Anwendung asynchrone Anfragen stellt und dabei einen Mechanismus wie „Promises“ in Javascript verwendet.

Um dieses Problem zu lösen, warten Sie, bis die vorherige Anfrage abgeschlossen ist, und versuchen Sie es dann erneut. Sie können es so lange wiederholen, bis der Fehler nicht mehr auftritt oder die Anwendung eine andere Art von Fehler erhält.

Dieser Zustand kann bei der Daten-API für Aurora Serverless v2 und bei bereitgestellten Instances auftreten. In der Daten-API für Aurora Serverless v1 warten nachfolgende Anfragen für dieselbe Transaktions-ID automatisch, bis die vorherige Anfrage abgeschlossen ist. Bei diesem älteren Verhalten kann es jedoch möglicherweise zu Timeouts kommen, da die vorherige Anfrage zu lange gedauert hat. Wenn Sie eine ältere Daten-API-Anwendung portieren, die gleichzeitige Anfragen stellt, ändern Sie Ihre Ausnahmebehandlungslogik, um diese neue Art von Fehler zu berücksichtigen.

Ergebnisausnahme wird nicht unterstützt

Die Daten-API unterstützt nicht alle Datentypen. Dieser Fehler tritt auf, wenn Sie eine Abfrage ausführen, die einen nicht unterstützten Datentyp zurückgibt.

Um dieses Problem zu umgehen, konvertieren Sie den nicht unterstützten Datentyp in. TEXT Zum Beispiel:

SELECT custom_type::TEXT FROM my_table; -- OR SELECT CAST(custom_type AS TEXT) FROM my_table;

Mehrere Anweisungen werden nicht unterstützt

Multi-Statements werden in der Daten-API für Aurora Serverless v2 und bereitgestellte Cluster nicht unterstützt. Der Versuch, mehrere Anweisungen in einem einzigen API-Aufruf auszuführen, führt zu diesem Fehler.

Um mehrere Anweisungen auszuführen, verwenden Sie separate ExecuteStatement API-Aufrufe oder verwenden Sie die BatchExecuteStatement API für die Stapelverarbeitung.

Der Schemaparameter wird nicht unterstützt

Aurora Serverless v1 ignoriert den Schemaparameter stillschweigend. Aurora Serverless v2 und bereitgestellte Cluster lehnen API-Aufrufe, die den Schemaparameter enthalten, jedoch explizit ab.

Um dieses Problem zu lösen, entfernen Sie den Schemaparameter aus allen Aufrufen der Daten-API, wenn Sie Aurora Serverless v2 oder bereitgestellte Cluster verwenden.