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 della tua API. GraphQL AWS Serverless Application Model (AWS SAM) supporta JavaScript i resolver per pipeline.
Sintassi
Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.
YAML
OperationType
:LogicalId
: Caching:CachingConfig
CodeUri:String
FieldName:String
InlineCode:String
MaxBatchSize:Integer
Pipeline:List
Runtime:Runtime
Sync: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
CachingConfig
proprietà di unaAWS::AppSync::Resolver
risorsa. 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 SAMCLI per facilitare questo processo. Per ulteriori informazioni, consulta Come AWS SAM vengono caricati i file locali al momento della distribuzione.
Se nessuno dei due
CodeUri
InlineCode
viene fornito, AWS SAM genereràInlineCode
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
CodeS3Location
proprietà di una risorsa.AWS::AppSync::Resolver
FieldName
-
Il nome del tuo resolver. Specificate questa proprietà per sovrascrivere il valore.
LogicalId
▬Tipo: stringa
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
FieldName
proprietà di unaAWS::AppSync::Resolver
risorsa. InlineCode
-
Il codice del resolver che contiene le funzioni di richiesta e risposta.
Se nessuna delle due
CodeUri
oInlineCode
viene fornita, AWS SAM genererà unInlineCode
messaggio 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
Code
proprietà di una risorsa.AWS::AppSync::Resolver
LogicalId
-
Il nome univoco del tuo resolver. In uno GraphQL schema, il nome del resolver deve corrispondere al nome del campo per cui viene utilizzato. Usa lo stesso nome di campo per.
LogicalId
▬Tipo: 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
MaxBatchSize
proprietà di unaAWS::AppSync::Resolver
risorsa. OperationType
-
Il tipo di GraphQL operazione associato al resolver. Ad esempio,
Query
,Mutation
oSubscription
. È possibile annidare più resolver all'interno di un unico resolver.LogicalId
OperationType
▬Tipo: stringa
Campo obbligatorio: sì
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
TypeName
proprietà 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
PipelineConfig
proprietà di unaAWS::AppSync::Resolver
risorsa. 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
Runtime
proprietà di unaAWS::AppSync::Resolver
risorsa. 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
SyncConfig
proprietà di unaAWS::AppSync::Resolver
risorsa.
Esempi
Usa il codice della funzione resolver AWS SAM generato e salva i campi come variabili
Ecco GraphQL lo 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; }