Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Resolver
Configura i resolver per i campi del tuo GraphQL API. AWS Serverless Application Model (AWS SAM) supporta i resolver per JavaScript pipeline.
Sintassi
Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.
YAML
OperationType:LogicalId: Caching:CachingConfigCodeUri:StringFieldName:StringInlineCode:StringMaxBatchSize:IntegerPipeline:ListRuntime:RuntimeSync:SyncConfig
Proprietà
Caching-
La configurazione di memorizzazione nella cache per il resolver che ha attivato la memorizzazione nella cache.
Tipo: CachingConfig
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
CachingConfigproprietà di una risorsa.AWS::AppSync::Resolver CodeUri-
L'URI o il percorso di una cartella locale del codice della funzione resolver di Amazon Simple Storage Service (Amazon S3).
Se specifichi un percorso verso una cartella locale, è AWS CloudFormation necessario che il file venga prima caricato su Amazon S3 prima della distribuzione. Puoi usare il AWS SAM CLI per facilitare questo processo. Per ulteriori informazioni, consulta Come AWS SAM vengono caricati i file locali al momento della distribuzione.
Se nessuno dei due
CodeUrioInlineCodeviene fornito, AWS SAM genereràInlineCodeche reindirizza la richiesta alla prima funzione di pipeline e riceve la risposta dall'ultima funzione di pipeline.Tipo: Stringa
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
CodeS3Locationproprietà di una risorsa.AWS::AppSync::Resolver FieldName-
Il nome del tuo resolver. Specificate questa proprietà per sovrascrivere il valore.
LogicalIdTipo: Stringa
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
FieldNameproprietà di unaAWS::AppSync::Resolverrisorsa. InlineCode-
Il codice del resolver che contiene le funzioni di richiesta e risposta.
Se nessuna delle due
CodeUrioInlineCodeviene fornita, AWS SAM genererà unInlineCodemessaggio che reindirizza la richiesta alla prima funzione di pipeline e riceve la risposta dall'ultima funzione di pipeline.Tipo: Stringa
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
Codeproprietà di una risorsa.AWS::AppSync::Resolver LogicalId-
Il nome univoco del tuo resolver. In un GraphQL schema, il nome del resolver deve corrispondere al nome del campo per cui è usato. Usa lo stesso nome di campo per.
LogicalIdTipo: Stringa
Campo obbligatorio: sì
AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.
MaxBatchSize-
Il numero massimo di input di richiesta del resolver che verranno inviati a una singola funzione AWS Lambda in un'operazione
BatchInvoke.Tipo: integer
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
MaxBatchSizeproprietà di unaAWS::AppSync::Resolverrisorsa. OperationType-
Il GraphQL tipo di operazione associato al resolver. Ad esempio,
Query,MutationoSubscription. È possibile annidare più resolver all'interno di un unico resolver.LogicalIdOperationTypeTipo: Stringa
Campo obbligatorio: sì
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
TypeNameproprietà di una risorsa.AWS::AppSync::Resolver Pipeline-
Funzioni collegate al risolver della pipeline. Specificate le funzioni in base all'ID logico in un elenco.
Tipo: Elenco
Campo obbligatorio: sì
AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente. È simile alla
PipelineConfigproprietà di unaAWS::AppSync::Resolverrisorsa. Runtime-
Il runtime del resolver o della funzione della pipeline. Specificate il nome e la versione da utilizzare.
Tipo: Runtime
Campo obbligatorio: sì
AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente. È simile alla
Runtimeproprietà di unaAWS::AppSync::Resolverrisorsa. Sync-
Descrive una configurazione di sincronizzazione per un resolver.
Specifica quale strategia di rilevamento dei conflitti e strategia di risoluzione utilizzare quando viene richiamato il resolver.
Tipo: SyncConfig
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
SyncConfigproprietà di unaAWS::AppSync::Resolverrisorsa.
Esempi
Usa il codice della funzione resolver AWS SAM generato e salva i campi come variabili
Ecco il GraphQL schema per il nostro esempio:
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 }
Ecco un frammento del nostro AWS SAM modello:
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
Nel nostro AWS SAM modello, non CodeUri specifichiamo o. InlineCode Al momento dell'implementazione, genera AWS SAM automaticamente il seguente codice in linea per il nostro resolver:
export function request(ctx) { return {}; } export function response(ctx) { return ctx.prev.result; }
Questo codice resolver predefinito reindirizza la richiesta alla prima funzione di pipeline e riceve la risposta dall'ultima funzione di pipeline.
Nella nostra prima funzione pipeline, possiamo usare il args campo fornito per analizzare l'oggetto della richiesta e creare le nostre variabili. Possiamo quindi utilizzare queste variabili all'interno della nostra funzione. Ecco un esempio della nostra preprocessPostItem funzione:
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; }