Verwendung lokaler Resolver in AWS AppSync - AWS AppSync GraphQL

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.

Verwendung lokaler Resolver in AWS AppSync

Anmerkung

Wir unterstützen jetzt hauptsächlich die APPSYNC _JS-Laufzeit und ihre Dokumentation. Bitte erwägen Sie, die APPSYNC _JS-Laufzeit und ihre Anleitungen hier zu verwenden.

AWS AppSync ermöglicht es Ihnen AWS Lambda, unterstützte Datenquellen (Amazon DynamoDB oder Amazon OpenSearch Service) zu verwenden, um verschiedene Operationen auszuführen. Doch in bestimmten Szenarien ist ein Aufruf an eine unterstützte Datenquelle möglicherweise nicht erforderlich.

Hier ist der lokale Resolver nützlich. Anstatt eine Remote-Datenquelle aufzurufen, leitet der lokale Resolver das Ergebnis der Zuweisungsvorlage für Anforderungen einfach an die Zuweisungsvorlage für Antworten weiter. Das Feldauflösung verlässt AWS AppSync nicht.

Lokale Resolver sind für verschiedene Anwendungsfälle nützlich. Der beliebtest Anwendungsfall ist das Veröffentlichen von Benachrichtigungen ohne Auslösen eines Datenquellenaufrufs. Um diesen Anwendungsfall zu demonstrieren, erstellen wir eine Paging-Anwendung; bei der Benutzer sich gegenseitig pagen können. In diesem Beispiel werden Abonnements verwendet. Wenn Sie noch nicht mit Abonnements vertraut sind, sehen Sie sich das Tutorial Echtzeitdaten an.

Erstellen der Paging-Anwendung

In unserer Paging-Anwendung können Clients einen Posteingang abonnieren und Seiten an andere Clients senden. Jede Seite enthält eine Nachricht. Hier wird das Schema gezeigt:

schema { query: Query mutation: Mutation subscription: Subscription } type Subscription { inbox(to: String!): Page @aws_subscribe(mutations: ["page"]) } type Mutation { page(body: String!, to: String!): Page! } type Page { from: String to: String! body: String! sentAt: String! } type Query { me: String }

Hängen wir nun einen Resolver an das Mutation.page-Feld an. Klicken Sie im Bereich Schema auf Attach Resolver (Resolver anhängen) neben der Felddefinition auf dem rechten Bereich. Erstellen Sie eine neue Datenquelle vom Typ Keine und geben Sie ihr einen Namen. PageDataSource

Geben Sie für die Zuweisungsvorlage für Anforderungen Folgendes ein:

{ "version": "2017-02-28", "payload": { "body": $util.toJson($context.arguments.body), "from": $util.toJson($context.identity.username), "to": $util.toJson($context.arguments.to), "sentAt": "$util.time.nowISO8601()" } }

Und wählen Sie für die Zuweisungsvorlage für Antworten die Standardoption Forward the result (Ergebnis weiterleiten) aus. Speichern Sie Ihren Resolver. Ihre Anwendung ist nun bereit, beginnen wir mit dem Pagen!

Senden an und Abonnieren von Seiten

Damit Clients Seiten empfangen können, müssen sie zuerst einen Posteingang abonnieren.

Führen wir im Bereich Queries (Abfragen) das inbox-Abonnement aus:

subscription Inbox { inbox(to: "Nadia") { body to from sentAt } }

Nadia erhält Seiten, wann immer die Mutation.page-Mutation aufgerufen wird. Rufen wir nun die Mutation durch Ausführen der Mutation auf:

mutation Page { page(to: "Nadia", body: "Hello, World!") { body to from sentAt } }

Wir haben gerade die Verwendung von lokalen Resolvern demonstriert, indem wir eine Seite senden und empfangen, ohne sie zu verlassen AWS AppSync.