Resolver - AWS Serverless Application Model

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 una AWS::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 caricare file locali durante la distribuzione con AWS SAMCLI.

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 una AWS::AppSync::Resolver risorsa.

InlineCode

Il codice del resolver che contiene le funzioni di richiesta e risposta.

Se nessuna delle due CodeUri o InlineCode viene fornita, AWS SAM genererà un InlineCode 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 una AWS::AppSync::Resolver risorsa.

OperationType

Il tipo di GraphQL operazione associato al resolver. Ad esempio, Query, Mutation o Subscription. È 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 una AWS::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 una AWS::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 una AWS::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; }