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) suporta 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:CachingConfigCodeUri:StringFieldName:StringInlineCode:StringMaxBatchSize:IntegerPipeline:ListRuntime:RuntimeSync:SyncConfig
Propriedades
Caching-
A configuração de cache para o resolvedor que tenha o cache ativado.
Digite: CachingConfig
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
CachingConfigpropriedade de umAWS::AppSync::Resolverrecurso. 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, 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 obter mais informações, consulte Como AWS SAM carrega arquivos locais na implantação.
Se nenhum deles
CodeUriInlineCodefor fornecido, AWS SAM será geradoInlineCodeque 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
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
CodeS3Locationpropriedade de umAWS::AppSync::Resolverrecurso. FieldName-
O nome do seu resolvedor. Especifique essa propriedade para substituir o valor
LogicalId.Tipo: string
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
FieldNamepropriedade de umAWS::AppSync::Resolverrecurso. InlineCode-
O código do resolvedor que contém as funções de solicitação e resposta.
Se nenhum deles
CodeUriInlineCodefor fornecido, AWS SAM será geradoInlineCodeque 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
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
Codepropriedade de umAWS::AppSync::Resolverrecurso. 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
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem 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
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
MaxBatchSizepropriedade de umAWS::AppSync::Resolverrecurso. OperationType-
O tipo de operação GraphQL associada ao seu resolvedor. Por exemplo,
Query,MutationouSubscription. Você pode agrupar vários resolvedores porLogicalIdem um únicoOperationType.Tipo: string
Obrigatório: Sim
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
TypeNamepropriedade de umAWS::AppSync::Resolverrecurso. Pipeline-
Funções vinculadas ao resolvedor de pipeline. Especifique as funções por ID lógica em uma lista.
Tipo: lista
Obrigatório: Sim
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente. É semelhante à propriedade
PipelineConfigde 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
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente. É semelhante à propriedade
Runtimede 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.
Digite: SyncConfig
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
SyncConfigpropriedade de umAWS::AppSync::Resolverrecurso.
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; }