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.
GraphQL APIs mit RDS Introspektion erstellen
AWS AppSync Das Introspection-Hilfsprogramm kann Modelle aus Datenbanktabellen erkennen und GraphQL-Typen vorschlagen. Der Create API Wizard der AWS AppSync Konsole kann sofort eine API aus einer Aurora My SQL - oder SQL Postgre-Datenbank generieren. Er erstellt automatisch Typen und JavaScript Resolver zum Lesen und Schreiben von Daten.
AWS AppSync bietet direkte Integration mit Amazon Aurora Aurora-Datenbanken über Amazon RDS DataAPI. Anstatt eine persistente Datenbankverbindung zu benötigen, API bietet Amazon RDS Data einen sicheren HTTP Endpunkt, mit dem eine AWS AppSync Verbindung hergestellt wird, um ausgeführt zu werden SQL Aussagen. Sie können dies verwenden, um eine relationale Datenbank API für Ihre My SQL - und SQL Postgre-Workloads auf Aurora zu erstellen.
Das Erstellen einer API für Ihre relationale Datenbank mit AWS AppSync hat mehrere Vorteile:
-
Ihre Datenbank ist nicht direkt für Clients zugänglich, wodurch der Access Point von der Datenbank selbst entkoppelt wird.
-
Sie können speziell APIs auf die Bedürfnisse verschiedener Anwendungen zugeschnittene Lösungen erstellen, sodass keine benutzerdefinierte Geschäftslogik in den Frontends erforderlich ist. Dies entspricht dem () -Muster. Backend-For-Frontend BFF
-
Autorisierung und Zugriffskontrolle können auf der AWS AppSync Ebene implementiert werden, wobei verschiedene Autorisierungsmodi zur Zugriffskontrolle verwendet werden. Für die Verbindung mit der Datenbank sind keine zusätzlichen Rechenressourcen erforderlich, z. B. das Hosten eines Webservers oder Proxyverbindungen.
-
Echtzeitfunktionen können über Abonnements hinzugefügt werden, wobei Datenmutationen AppSync automatisch an die verbundenen Clients übertragen werden.
-
Clients können API über gemeinsame Ports wie 443 eine Verbindung zum Over HTTPS herstellen.
AWS AppSync macht das Erstellen auf APIs der Grundlage vorhandener relationaler Datenbanken einfach. Das Introspektionsprogramm kann Modelle aus Datenbanktabellen erkennen und GraphQL-Typen vorschlagen. Der Create API Wizard der AWS AppSync Konsole kann sofort eine API aus einer Aurora My SQL - oder SQL Postgre-Datenbank generieren. Er erstellt automatisch Typen und JavaScript Resolver zum Lesen und Schreiben von Daten.
AWS AppSync bietet integrierte JavaScript Hilfsprogramme, um das Schreiben von SQL Anweisungen in Resolvern zu vereinfachen. Sie können die AWS AppSyncsql
Tag-Vorlagen für statische Anweisungen mit dynamischen Werten oder die rds
Modul-Utilities verwenden, um Anweisungen programmgesteuert zu erstellen. Weitere Informationen finden Sie in der Referenz zu den Resolver-Funktionen für RDS Datenquellen und integrierte Module.
Verwenden der Introspektionsfunktion (Konsole)
Ein ausführliches Tutorial und eine Anleitung für die ersten Schritte finden Sie unter Tutorial: Aurora Postgre SQL Serverless with Data. API
Mit der AWS AppSync Konsole können Sie in nur wenigen Minuten ein AWS AppSync GraphQL API aus Ihrer vorhandenen Aurora-Datenbank erstellen, die mit API den Daten konfiguriert ist. Dadurch wird schnell ein Betriebsschema generiert, das auf Ihrer Datenbankkonfiguration basiert. Sie können das so verwenden, API wie es ist, oder darauf aufbauen, um Funktionen hinzuzufügen.
-
Melden Sie sich bei der an AWS Management Console und öffnen Sie die AppSyncKonsole
. -
Wählen Sie im Dashboard die Option Erstellen ausAPI.
-
-
Wählen Sie unter APIOptionen GraphQL APIs, Mit einem Amazon Aurora Aurora-Cluster beginnen und dann Weiter aus.
-
Geben Sie einen APINamen ein. Dieser wird als Kennung für den API in der Konsole verwendet.
-
Für Kontaktinformationen können Sie eine Kontaktstelle angeben, um einen Manager für die zu identifizierenAPI. Dies ist ein optionales Feld.
-
Unter Private API Konfiguration können Sie private API Funktionen aktivieren. Auf einen privaten Endpunkt API kann nur von einem konfigurierten VPC Endpunkt (VPCE) aus zugegriffen werden. Weitere Informationen finden Sie unter Privat APIs.
Wir empfehlen, diese Funktion für dieses Beispiel nicht zu aktivieren. Wählen Sie „Weiter“, nachdem Sie Ihre Eingaben überprüft haben.
-
-
Wählen Sie auf der Datenbankseite die Option Datenbank auswählen aus.
-
Sie müssen Ihre Datenbank aus Ihrem Cluster auswählen. Der erste Schritt besteht darin, die Region auszuwählen, in der Ihr Cluster existiert.
-
Wählen Sie den Aurora-Cluster aus der Drop-down-Liste aus. Beachten Sie, dass Sie entsprechende Daten erstellt und aktiviert haben müssen, API bevor Sie die Ressource verwenden können.
-
Als Nächstes müssen Sie dem Dienst die Anmeldeinformationen für Ihre Datenbank hinzufügen. Dies erfolgt hauptsächlich mit AWS Secrets Manager. Wählen Sie die Region, in der Ihr Geheimnis existiert. Weitere Informationen zum Abrufen geheimer Informationen finden Sie unter Geheimnisse finden oder Geheimnisse abrufen.
-
Fügen Sie Ihr Geheimnis aus der Drop-down-Liste hinzu. Beachten Sie, dass der Benutzer über Leseberechtigungen für Ihre Datenbank verfügen muss.
-
-
Wählen Sie Importieren aus.
AWS AppSync beginnt mit der Introspektion Ihrer Datenbank und entdeckt Tabellen, Spalten, Primärschlüssel und Indizes. Es prüft, ob die erkannten Tabellen in einem GraphQL API unterstützt werden können. Beachten Sie, dass Tabellen zur Unterstützung der Erstellung neuer Zeilen einen Primärschlüssel benötigen, der mehrere Spalten verwenden kann. AWS AppSync ordnet Tabellenspalten wie folgt Typfeldern zu:
Datentyp Feldtyp VARCHAR String CHAR Zeichenfolge BINARY Zeichenfolge VARBINARY Zeichenfolge TINYBLOB Zeichenfolge TINYTEXT Zeichenfolge TEXT Zeichenfolge BLOB Zeichenfolge MEDIUMTEXT Zeichenfolge MEDIUMBLOB Zeichenfolge LONGTEXT Zeichenfolge LONGBLOB String BOOL Boolesch BOOLEAN Boolesch BIT Int TINYINT Int SMALLINT Int MEDIUMINT Int INT Int INTEGER Int BIGINT Int YEAR Int FLOAT Gleitkommazahl DOUBLE Gleitkommazahl DECIMAL Gleitkommazahl DEC Gleitkommazahl NUMERIC Gleitkommazahl DATE AWSDate TIMESTAMP String DATETIME String TIME AWSTime JSON AWSJson ENUM ENUM -
Sobald die Tabellenerkennung abgeschlossen ist, wird der Datenbankbereich mit Ihren Informationen gefüllt. Im neuen Abschnitt Datenbanktabellen sind die Daten aus der Tabelle möglicherweise bereits aufgefüllt und in einen Typ für Ihr Schema konvertiert. Wenn Sie einige der erforderlichen Daten nicht sehen, können Sie nach ihnen suchen, indem Sie Tabellen hinzufügen auswählen, im angezeigten Modal auf die Kontrollkästchen für diese Typen klicken und dann Hinzufügen auswählen.
Um einen Typ aus dem Abschnitt Datenbanktabellen zu entfernen, klicken Sie auf das Kontrollkästchen neben dem Typ, den Sie entfernen möchten, und wählen Sie dann Entfernen. Die entfernten Typen werden im Modal Tabellen hinzufügen platziert, falls Sie sie später wieder hinzufügen möchten.
Beachten Sie, dass die Tabellennamen als Typnamen AWS AppSync verwendet werden, aber Sie können sie umbenennen — zum Beispiel, indem Sie einen Plural-Tabellennamen ändern wie
movies
zum TypnamenMovie
. Um einen Typ im Abschnitt Datenbanktabellen umzubenennen, klicken Sie auf das Kontrollkästchen des Typs, den Sie umbenennen möchten, und klicken Sie dann auf das Stiftsymbol in der Spalte Typname.Um eine Vorschau des Schemainhalts auf der Grundlage Ihrer Auswahl anzuzeigen, wählen Sie Schemavorschau. Beachten Sie, dass dieses Schema nicht leer sein darf. Sie müssen also mindestens eine Tabelle in einen Typ konvertieren lassen. Außerdem darf dieses Schema eine Größe von 1 MB nicht überschreiten.
-
Wählen Sie unter Servicerolle aus, ob Sie eine neue Servicerolle speziell für diesen Import erstellen oder eine vorhandene Rolle verwenden möchten.
-
-
Wählen Sie Weiter.
-
Wählen Sie als Nächstes aus, ob Sie eine schreibgeschützte API (nur Abfragen) oder eine API zum Lesen und Schreiben von Daten (mit Abfragen und Mutationen) erstellen möchten. Letzteres unterstützt auch Echtzeitabonnements, die durch Mutationen ausgelöst werden.
-
Wählen Sie Weiter.
-
Überprüfen Sie Ihre Auswahl und wählen Sie dann Erstellen API. AWS AppSync erstellt die Resolver API und hängt Resolver an Abfragen und Mutationen an. Die generierte API Datei ist voll funktionsfähig und kann nach Bedarf erweitert werden.
Verwendung der Introspektionsfunktion () API
Sie können die StartDataSourceIntrospection
Introspektion verwenden, um Modelle in API Ihrer Datenbank programmgesteuert zu finden. Weitere Informationen zu diesem Befehl finden Sie unter Verwenden von. StartDataSourceIntrospection
API
Geben Sie zur Verwendung StartDataSourceIntrospection
den Amazon-Ressourcennamen (ARN) Ihres Aurora-Clusters, den Datenbanknamen und den AWS Secrets Manager geheimen Schlüssel anARN. Der Befehl startet den Introspektionsprozess. Sie können die Ergebnisse mit dem GetDataSourceIntrospection
Befehl abrufen. Sie können angeben, ob der Befehl die Storage Definition Language (SDL) -Zeichenfolge für die erkannten Modelle zurückgeben soll. Dies ist nützlich, um eine SDL Schemadefinition direkt aus den erkannten Modellen zu generieren.
Wenn Sie beispielsweise die folgende Data Definition Language (DDL) -Anweisung für eine einfache Todos
Tabelle haben:
create table if not exists public.todos ( id serial constraint todos_pk primary key, description text, due timestamp, "createdAt" timestamp default now() );
Sie beginnen die Introspektion mit dem Folgenden.
aws appsync start-data-source-introspection \ --rds-data-api-config resourceArn=<cluster-arn>,secretArn=<secret-arn>,databaseName=database
Verwenden Sie als Nächstes den GetDataSourceIntrospection
Befehl, um das Ergebnis abzurufen.
aws appsync get-data-source-introspection \ --introspection-id a1234567-8910-abcd-efgh-identifier \ --include-models-sdl
Dies gibt das folgende Ergebnis zurück.
{ "introspectionId": "a1234567-8910-abcd-efgh-identifier", "introspectionStatus": "SUCCESS", "introspectionStatusDetail": null, "introspectionResult": { "models": [ { "name": "todos", "fields": [ { "name": "description", "type": { "kind": "Scalar", "name": "String", "type": null, "values": null }, "length": 0 }, { "name": "due", "type": { "kind": "Scalar", "name": "AWSDateTime", "type": null, "values": null }, "length": 0 }, { "name": "id", "type": { "kind": "NonNull", "name": null, "type": { "kind": "Scalar", "name": "Int", "type": null, "values": null }, "values": null }, "length": 0 }, { "name": "createdAt", "type": { "kind": "Scalar", "name": "AWSDateTime", "type": null, "values": null }, "length": 0 } ], "primaryKey": { "name": "PRIMARY_KEY", "fields": [ "id" ] }, "indexes": [], "sdl": "type todos\n{\ndescription: String\n\ndue: AWSDateTime\n\nid: Int!\n\ncreatedAt: AW SDateTime\n}\n" } ], "nextToken": null } }