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 pipeline em JavaScript.
Sintaxe
Para declarar esta entidade no modelo do AWS Serverless Application Model (AWS SAM), use a seguinte sintaxe:
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.
Type: CachingConfig
Obrigatório: não
Compatibilidade CloudFormation: essa propriedade é passada diretamente para a propriedade
CachingConfigde um recursoAWS::AppSync::Resolver. 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, o CloudFormation exigirá que o arquivo seja primeiro carregado no Amazon S3 antes da implantação. Você pode usar o AWS SAM CLI para facilitar esse processo. Para obter mais informações, consulte Como o AWS SAM faz upload de arquivos locais na implantação.
Se nem
CodeUriouInlineCodefor fornecido, AWS SAM geraráInlineCodeque 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
Compatibilidade CloudFormation: essa propriedade é passada diretamente para a propriedade
CodeS3Locationde um recursoAWS::AppSync::Resolver. FieldName-
O nome do seu resolvedor. Especifique essa propriedade para substituir o valor
LogicalId.Tipo: string
Obrigatório: não
Compatibilidade CloudFormation: essa propriedade é passada diretamente para a propriedade
FieldNamede um recursoAWS::AppSync::Resolver. InlineCode-
O código do resolvedor que contém as funções de solicitação e resposta.
Se nem
CodeUriouInlineCodefor fornecido, AWS SAM geraráInlineCodeque 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
Compatibilidade CloudFormation: essa propriedade é passada diretamente para a propriedade
Codede um recursoAWS::AppSync::Resolver. 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
Compatibilidade CloudFormation: Essa propriedade é exclusiva do 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
Compatibilidade CloudFormation: essa propriedade é passada diretamente para a propriedade
MaxBatchSizede um recursoAWS::AppSync::Resolver. 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
Compatibilidade CloudFormation: essa propriedade é passada diretamente para a propriedade
TypeNamede um recursoAWS::AppSync::Resolver. Pipeline-
Funções vinculadas ao resolvedor de pipeline. Especifique as funções por ID lógica em uma lista.
Tipo: lista
Obrigatório: Sim
Compatibilidade CloudFormation: Essa propriedade é exclusiva do 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
Compatibilidade CloudFormation: Essa propriedade é exclusiva do 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.
Type: SyncConfig
Obrigatório: não
Compatibilidade CloudFormation: essa propriedade é passada diretamente para a propriedade
SyncConfigde um recursoAWS::AppSync::Resolver.
Exemplos
Use o código da função resolvedor AWS SAM gerado 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 modelo AWS SAM:
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 modelo AWS SAM, não especificamos CodeUri ou InlineCode. Na implantação, AWS SAM gera 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; }