Fehlerbehebung bei Problemen mit 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 Problemen mit der Amazon-RDS-Daten-API

Verwenden Sie die folgenden Abschnitte mit dem Titel „Allgemeine Fehlermeldungen“, um Probleme zu beheben, die Sie mit der Amazon-RDS-Daten-API (Daten-API) haben.

Transaktion <transaction_ID> 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 Daten-API von Amazon RDS.

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 beheben, stellen Sie sicher, dass Aufrufe der Daten-API höchstens 1 MiB Daten 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 die Daten-API nicht. Informationen zu den Typen von DB-Clustern, die die RDS-Daten-API unterstützt, finden Sie unter Verfügbarkeit von Regionen und Versionen für die Amazon-RDS-Daten-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 Data-API finden Sie unter Aktivieren der Amazon-RDS-Daten-API.

  • Der DB-Cluster wurde umbenannt, nachdem die Daten-API für ihn aktiviert wurde. Deaktivieren Sie in diesem Fall die Daten-API für diesen Cluster und aktivieren Sie sie 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 sofort diesen Fehler 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 den Schritt 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 für bereitgestellte 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, wenn die vorherige Anfrage zu lange gedauert. Wenn Sie eine ältere Daten-API-Anwendung portieren, die gleichzeitige Anfragen stellt, ändern Sie Ihre Logik für die Ausnahmeverarbeitung so, dass sie diese neue Art von Fehler berücksichtigt.

Ausnahme aufgrund eines nicht unterstützten Ergebnisses

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;

Keine Unterstützung für mehrere Anweisungen

Mehrere Anweisungen werden in der Daten-API für Aurora Serverless v2 und bereitgestellte Cluster nicht unterstützt. Wenn Sie versuchen, mehrere Anweisungen in einem einzigen API-Aufruf auszuführen, wird der Fehler zurückgegeben.

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

Keine Unterstützung für den Schemaparameter

Aurora Serverless v1 ignoriert den Schemaparameter stillschweigend. Aurora Serverless v2 und bereitgestellte Cluster hingegen lehnen API-Aufrufe, die den Schemaparameter enthalten, 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.

IPv6 Probleme mit der Konnektivität

Wenn beim Herstellen einer Verbindung zur Daten-API über IPv6 Endpunkte Probleme auftreten, überprüfen Sie die folgenden möglichen Ursachen:

  • Netzwerk unterstützt nicht IPv6: Stellen Sie sicher, dass Ihre Netzwerkinfrastruktur dies unterstützt IPv6 und ob das IPv6 Routing korrekt konfiguriert ist.

  • Probleme mit der DNS-Auflösung: Stellen Sie sicher, dass Ihr DNS-Resolver AAAA-Datensätze für die Dual-Stack-Endpunkte auflösen kann (z. B. rds-data.us-east-1.api.aws).

  • Sicherheitsgruppenkonfiguration: Aktualisieren Sie die Sicherheitsgruppenregeln, um IPv6 Datenverkehr auf Port 443 (HTTPS) zuzulassen. Fügen Sie Regeln für IPv6 CIDR-Blöcke hinzu (z. B. ::/0 für alle IPv6 Adressen).

  • Netzwerk-ACL-Konfiguration: Stellen Sie sicher, dass das Netzwerk den IPv6 Datenverkehr an den erforderlichen Ports ACLs zulässt.

  • Kompatibilität mit der Clientbibliothek: Stellen Sie sicher, dass Ihre HTTP-Clientbibliotheken IPv6 und Dual-Stack-Konnektivität AWS SDKs unterstützen.

  • VPC-Endpunktkonfiguration: Stellen Sie bei Verwendung sicher PrivateLink, dass Ihr VPC-Endpunkt für die Unterstützung konfiguriert ist IPv6 und dass den zugehörigen Subnetzen IPv6 CIDR-Blöcke zugewiesen sind.

So beheben Sie Verbindungsprobleme: IPv6

  1. Testen Sie die Konnektivität mit den Endpunkten „ IPv4-only“ (.amazonaws.com), um sicherzustellen, dass das Problem spezifisch für ist. IPv6

  2. Verwenden Sie Netzwerkdiagnosetools, um die IPv6 Konnektivität zu den Dual-Stack-Endpunkten zu überprüfen.

  3. Überprüfen Sie die CloudTrail Protokolle auf Authentifizierungs- oder Autorisierungsfehler bei der Verwendung von IPv6 Endpunkten.

  4. Stellen Sie sicher, dass Ihre Anwendung korrekt für die Verwendung des neuen Dual-Stack-Endpunkts konfiguriert ist. URLs