As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Resolvedor
Configure resolvedores para os campos da sua GraphQL API. AWS Serverless Application Model (AWS SAM) oferece suporte a resolvedores de JavaScript pipeline.
Sintaxe
Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.
YAML
OperationType
:LogicalId
: Caching:CachingConfig
CodeUri:String
FieldName:String
InlineCode:String
MaxBatchSize:Integer
Pipeline:List
Runtime:Runtime
Sync:SyncConfig
Propriedades
Caching
-
A configuração de cache para o resolvedor que tenha o cache ativado.
Tipo: CachingConfig
Obrigatório: não
AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a
CachingConfig
propriedade de umAWS::AppSync::Resolver
recurso. CodeUri
-
O URI do código da função do resolvedor Amazon Simple Storage Service (Amazon S3) ou o caminho para uma pasta local.
Se você especificar um caminho para uma pasta local, AWS CloudFormation exigirá que o arquivo seja primeiro carregado no Amazon S3 antes da implantação. Você pode usar o AWS SAMCLI para facilitar esse processo. Para ter mais informações, consulte Como AWS SAM carrega arquivos locais na implantação.
Se nenhum deles
CodeUri
InlineCode
for fornecido, AWS SAM será geradoInlineCode
que redirecionará a solicitação para a primeira função do pipeline e receberá a resposta da última função do pipeline.Tipo: string
Obrigatório: não
AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a
CodeS3Location
propriedade de umAWS::AppSync::Resolver
recurso. FieldName
-
O nome do seu resolvedor. Especifique essa propriedade para substituir o valor
LogicalId
.Tipo: string
Obrigatório: não
AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a
FieldName
propriedade de umAWS::AppSync::Resolver
recurso. InlineCode
-
O código do resolvedor que contém as funções de solicitação e resposta.
Se nenhum deles
CodeUri
InlineCode
for fornecido, AWS SAM será geradoInlineCode
que redirecionará a solicitação para a primeira função do pipeline e receberá a resposta da última função do pipeline.Tipo: string
Obrigatório: não
AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a
Code
propriedade de umAWS::AppSync::Resolver
recurso. LogicalId
-
O nome exclusivo do seu resolvedor. Em um esquema GraphQL, o nome do resolvedor deve corresponder ao nome do campo para o qual ele é usado. Use o mesmo nome de campo para
LogicalId
.Tipo: string
Obrigatório: Sim
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.
MaxBatchSize
-
O número máximo de entradas de solicitações do resolvedor que serão enviadas a uma única função do AWS Lambda em uma operação
BatchInvoke
.Tipo: inteiro
Obrigatório: não
AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a
MaxBatchSize
propriedade de umAWS::AppSync::Resolver
recurso. OperationType
-
O tipo de operação GraphQL associada ao seu resolvedor. Por exemplo,
Query
,Mutation
ouSubscription
. Você pode agrupar vários resolvedores porLogicalId
em um únicoOperationType
.Tipo: string
Obrigatório: Sim
AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a
TypeName
propriedade de umAWS::AppSync::Resolver
recurso. Pipeline
-
Funções vinculadas ao resolvedor de pipeline. Especifique as funções por ID lógica em uma lista.
Tipo: lista
Obrigatório: Sim
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente. É semelhante à propriedade
PipelineConfig
de um recursoAWS::AppSync::Resolver
. Runtime
-
O tempo de execução do seu resolvedor ou função de pipeline. Especifica o nome e a versão a serem usados.
Tipo: Tempo de execução
Obrigatório: Sim
AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente. É semelhante à propriedade
Runtime
de um recursoAWS::AppSync::Resolver
. Sync
-
Descreve uma configuração de sincronização para um resolvedor.
Especifica quais estratégias de detecção de conflitos e de resolução devem ser usadas quando o resolvedor for invocado.
Tipo: SyncConfig
Obrigatório: não
AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a
SyncConfig
propriedade de umAWS::AppSync::Resolver
recurso.
Exemplos
Use o código da função resolvedor AWS SAM gerada e salve os campos como variáveis
Aqui está o esquema GraphQL do nosso exemplo:
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 }
Aqui está um trecho do nosso AWS SAM modelo:
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
Em nosso AWS SAM modelo, não especificamos CodeUri
ouInlineCode
. Na implantação, gera AWS SAM automaticamente o seguinte código embutido para nosso resolvedor:
export function request(ctx) { return {}; } export function response(ctx) { return ctx.prev.result; }
Esse código de resolução padrão redireciona a solicitação para a primeira função do pipeline e recebe a resposta da última função do pipeline.
Em nossa primeira função de pipeline, podemos usar o campo args
fornecido para analisar o objeto de solicitação e criar nossas variáveis. Podemos então usar essas variáveis em nossa função. Veja um exemplo da nossa função preprocessPostItem
:
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; }