Resolver - AWS Serverless Application Model

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.

Resolver

Konfigurieren Sie Resolver für die Felder Ihrer API. GraphQL AWS Serverless Application Model (AWS SAM) unterstützt JavaScript Pipeline-Resolver.

Syntax

Verwenden Sie die folgende Syntax, um diese Entität in Ihrer Vorlage AWS Serverless Application Model (AWS SAM) zu deklarieren.

YAML

OperationType: LogicalId: Caching: CachingConfig CodeUri: String FieldName: String InlineCode: String MaxBatchSize: Integer Pipeline: List Runtime: Runtime Sync: SyncConfig

Eigenschaften

Caching

Die Caching-Konfiguration für den Resolver, für den das Caching aktiviert ist.

Typ: CachingConfig

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die CachingConfig Eigenschaft einer AWS::AppSync::Resolver Ressource übergeben.

CodeUri

Die Amazon Simple Storage Service (Amazon S3) -URI oder der Pfad zu einem lokalen Ordner des Resolver-Funktionscodes.

Wenn Sie einen Pfad zu einem lokalen Ordner angeben, AWS CloudFormation muss die Datei vor der Bereitstellung zuerst auf Amazon S3 hochgeladen werden. Sie können den verwenden AWS SAMCLI, um diesen Vorgang zu vereinfachen. Weitere Informationen finden Sie unter So laden Sie lokale Dateien bei der Bereitstellung hoch mit AWS SAMCLI.

Falls keines CodeUri von beiden angegeben AWS SAM wird, wird generiert, InlineCode dass die Anfrage an die erste Pipeline-Funktion weitergeleitet wird und die Antwort von der letzten Pipeline-Funktion empfangen wird. InlineCode

Typ: Zeichenfolge

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die CodeS3Location Eigenschaft einer AWS::AppSync::Resolver Ressource übergeben.

FieldName

Der Name Ihres Resolvers. Geben Sie diese Eigenschaft an, um den LogicalId Wert zu überschreiben.

Typ: Zeichenfolge

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die FieldName Eigenschaft einer AWS::AppSync::Resolver Ressource übergeben.

InlineCode

Der Resolver-Code, der die Anforderungs- und Antwortfunktionen enthält.

Wenn keiner CodeUri von beiden angegeben AWS SAM wird, wird generiert, InlineCode dass die Anfrage an die erste Pipeline-Funktion umgeleitet wird und die Antwort von der letzten Pipeline-Funktion empfangen wird. InlineCode

Typ: Zeichenfolge

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die Code Eigenschaft einer AWS::AppSync::Resolver Ressource übergeben.

LogicalId

Der eindeutige Name für Ihren Resolver. In einem GraphQL Schema sollte Ihr Resolvername mit dem Feldnamen übereinstimmen, für den er verwendet wird. Verwenden Sie denselben Feldnamen fürLogicalId.

Typ: Zeichenfolge

Erforderlich: Ja

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein AWS CloudFormation Äquivalent.

MaxBatchSize

Die maximale Anzahl der Resolver-Anforderungs-Eingaben, die an eine einzelne AWS Lambda -Funktion in einem BatchInvoke-Vorgang gesendet werden.

Typ: Ganzzahl

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die MaxBatchSize Eigenschaft einer AWS::AppSync::Resolver Ressource übergeben.

OperationType

Der GraphQL Vorgangstyp, der Ihrem Resolver zugeordnet ist. Beispiel: Query, Mutation oder Subscription. Sie können mehrere Resolver in einem LogicalId einzigen ineinander verschachteln. OperationType

Typ: Zeichenfolge

Erforderlich: Ja

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die TypeName Eigenschaft einer AWS::AppSync::Resolver Ressource übergeben.

Pipeline

Funktionen im Zusammenhang mit dem Pipeline-Resolver. Geben Sie Funktionen anhand der logischen ID in einer Liste an.

Typ: Liste

Erforderlich: Ja

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein AWS CloudFormation Äquivalent. Sie ähnelt der PipelineConfig Eigenschaft einer AWS::AppSync::Resolver Ressource.

Runtime

Die Laufzeit Ihres Pipeline-Resolvers oder Ihrer Pipeline-Funktion. Gibt den Namen und die Version an, die verwendet werden sollen.

Typ: Runtime

Erforderlich: Ja

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein AWS CloudFormation Äquivalent. Sie ähnelt der Runtime Eigenschaft einer AWS::AppSync::Resolver Ressource.

Sync

Beschreibt eine Sync-Konfiguration für einen Resolver.

Gibt an, welche Konflikterkennungs- und Lösungsstrategie verwendet werden soll, wenn der Resolver aufgerufen wird.

Typ: SyncConfig

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die SyncConfig Eigenschaft einer AWS::AppSync::Resolver Ressource übergeben.

Beispiele

Verwenden Sie den AWS SAM generierten Resolver-Funktionscode und speichern Sie Felder als Variablen

Hier ist das GraphQL Schema für unser Beispiel:

schema { query: Query mutation: Mutation } type Query { getPost(id: ID!): Post } type Mutation { addPost(author: String!, title: String!, content: String!): Post! } type Post { id: ID! author: String title: String content: String }

Hier ist ein Ausschnitt aus unserer AWS SAM Vorlage:

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyGraphQLApi: Type: AWS::Serverless::GraphQLApi Properties: ... Functions: preprocessPostItem: ... createPostItem: ... Resolvers: Mutation: addPost: Runtime: Name: APPSYNC_JS Version: 1.0.0 Pipeline: - preprocessPostItem - createPostItem

In unserer AWS SAM Vorlage geben wir oder nicht anCodeUri. InlineCode Generiert bei der Bereitstellung AWS SAM automatisch den folgenden Inline-Code für unseren Resolver:

export function request(ctx) { return {}; } export function response(ctx) { return ctx.prev.result; }

Dieser Standard-Resolver-Code leitet die Anfrage an die erste Pipeline-Funktion weiter und empfängt die Antwort von der letzten Pipeline-Funktion.

In unserer ersten Pipeline-Funktion können wir das bereitgestellte args Feld verwenden, um das Anforderungsobjekt zu analysieren und unsere Variablen zu erstellen. Wir können diese Variablen dann in unserer Funktion verwenden. Hier ist ein Beispiel für unsere preprocessPostItem Funktion:

import { util } from "@aws-appsync/utils"; export function request(ctx) { const author = ctx.args.author; const title = ctx.args.title; const content = ctx.args.content; // Use variables to process data } export function response(ctx) { return ctx.result; }