

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
<a name="sam-property-graphqlapi-resolver"></a>

Configure resolvedores para os campos da sua GraphQL API. AWS Serverless Application Model (AWS SAM) suporta [resolvedores de JavaScript pipeline](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html).

## Sintaxe
<a name="sam-property-graphqlapi-resolver-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-resolver-syntax-yaml"></a>

```
OperationType:
  LogicalId:
    Caching: [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html)
    CodeUri: String
    FieldName: String
    InlineCode: String 
    MaxBatchSize: Integer
    Pipeline: List
    Runtime: Runtime
    Sync: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html)
```

## Propriedades
<a name="sam-property-graphqlapi-resolver-properties"></a>

`Caching`  <a name="sam-graphqlapi-resolver-caching"></a>
A configuração de cache para o resolvedor que tenha o cache ativado.  
*Digite*: [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-cachingconfig)` propriedade de um `AWS::AppSync::Resolver` recurso.

`CodeUri`  <a name="sam-graphqlapi-resolver-codeuri"></a>
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](deploy-upload-local-files.md).  
Se nenhum deles `CodeUri` `InlineCode` for fornecido, AWS SAM será gerado `InlineCode` 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  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[CodeS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-codes3location)` propriedade de um `AWS::AppSync::Resolver` recurso.

`FieldName`  <a name="sam-graphqlapi-resolver-fieldname"></a>
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 `[FieldName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-fieldname)` propriedade de um `AWS::AppSync::Resolver` recurso.

`InlineCode`  <a name="sam-graphqlapi-resolver-inlinecode"></a>
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á gerado `InlineCode` 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  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-code)` propriedade de um `AWS::AppSync::Resolver` recurso.

`LogicalId`  <a name="sam-graphqlapi-resolver-logicalid"></a>
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`  <a name="sam-graphqlapi-resolver-maxbatchsize"></a>
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 `[MaxBatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-maxbatchsize)` propriedade de um `AWS::AppSync::Resolver` recurso.

`OperationType`  <a name="sam-graphqlapi-resolver-operationtype"></a>
O tipo de operação GraphQL associada ao seu resolvedor. Por exemplo, `Query`, `Mutation` ou `Subscription`. Você pode agrupar vários resolvedores por `LogicalId` em um único `OperationType`.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[TypeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-typename)` propriedade de um `AWS::AppSync::Resolver` recurso.

`Pipeline`  <a name="sam-graphqlapi-resolver-pipeline"></a>
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 `[PipelineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-pipelineconfig)` de um recurso `AWS::AppSync::Resolver`.

`Runtime`  <a name="sam-graphqlapi-resolver-runtime"></a>
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](sam-property-graphqlapi-resolver-runtime.md)  
*Obrigatório*: sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente. É semelhante à propriedade `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-runtime)` de um recurso `AWS::AppSync::Resolver`.

`Sync`  <a name="sam-graphqlapi-resolver-sync"></a>
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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-syncconfig)` propriedade de um `AWS::AppSync::Resolver` recurso.

## Exemplos
<a name="sam-property-graphqlapi-resolver-examples"></a>

### Use o código da função resolvedor AWS SAM gerada e salve os campos como variáveis
<a name="sam-property-graphqlapi-resolver-examples-example1"></a>

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` ou`InlineCode`. 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;
}
```

# Runtime
<a name="sam-property-graphqlapi-resolver-runtime"></a>

O tempo de execução do seu resolvedor ou função de pipeline. Especifica o nome e a versão a serem usados.

## Sintaxe
<a name="sam-property-graphqlapi-resolver-runtime-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-graphqlapi-resolver-runtime-syntax-yaml"></a>

```
Name: String
Version: String
```

## Propriedades
<a name="sam-property-graphqlapi-resolver-runtime-properties"></a>

`Name`  <a name="sam-graphqlapi-resolver-runtime-name"></a>
O nome do tempo de execução a ser usado. Atualmente, o único valor permitido é `APPSYNC_JS`.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-name)` propriedade de um `AWS::AppSync::Resolver AppSyncRuntime` objeto.

`Version`  <a name="sam-graphqlapi-resolver-runtime-version"></a>
A versão do tempo de execução a ser usada. Atualmente, a única versão permitida é `1.0.0`.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[RuntimeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-runtimeversion)` propriedade de um `AWS::AppSync::Resolver AppSyncRuntime` objeto.