

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

Configura los resolutores para los campos de tu API. GraphQL AWS Serverless Application Model (AWS SAM) admite [solucionadores de JavaScript canalizaciones](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html).

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

Para declarar esta entidad en tu plantilla AWS Serverless Application Model (AWS SAM), usa la siguiente sintaxis.

### 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)
```

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

`Caching`  <a name="sam-graphqlapi-resolver-caching"></a>
La configuración de almacenamiento en caché para un solucionador que tiene la caché activada.  
*Tipo:* [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-cachingconfig)` propiedad de un `AWS::AppSync::Resolver` recurso.

`CodeUri`  <a name="sam-graphqlapi-resolver-codeuri"></a>
El código de la función de solucionador es el URI de Amazon Simple Storage Service (Amazon S3) o la ruta a una carpeta local.  
Si especifica una ruta a una carpeta local, CloudFormation requiere que el archivo se cargue primero en Amazon S3 antes de la implementación. Puedes utilizar la AWS SAM CLI para facilitar este proceso. Para obtener más información, consulte [Cómo se AWS SAM cargan los archivos locales en el momento de la implementación](deploy-upload-local-files.md).  
Si no `InlineCode` se proporciona `CodeUri` ninguna de las dos, AWS SAM generará un `InlineCode` generador que redireccionará la solicitud a la primera función de canalización y recibirá la respuesta de la última función de canalización.  
*Tipo:* cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se transfiere directamente a la `[CodeS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-codes3location)` propiedad de un `AWS::AppSync::Resolver` recurso.

`FieldName`  <a name="sam-graphqlapi-resolver-fieldname"></a>
El nombre de su solucionador. Especifica esta propiedad para anular el valor `LogicalId`.  
*Tipo:* cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[FieldName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-fieldname)` propiedad de un `AWS::AppSync::Resolver` recurso.

`InlineCode`  <a name="sam-graphqlapi-resolver-inlinecode"></a>
El código de solucionador que contiene las funciones de solicitud y respuesta.  
Si no `InlineCode` se proporciona `CodeUri` ninguna de las dos, AWS SAM se generará un `InlineCode` generador que redireccionará la solicitud a la primera función de canalización y recibirá la respuesta de la última función de canalización.  
*Tipo:* cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se transfiere directamente a la `[Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-code)` propiedad de un `AWS::AppSync::Resolver` recurso.

`LogicalId`  <a name="sam-graphqlapi-resolver-logicalid"></a>
El nombre único para su solucionador. En un esquema GraphQL, el nombre del solucionador debe coincidir con el nombre del campo para el que se usa. Usa el mismo nombre de campo para `LogicalId`.  
*Tipo:* cadena  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

`MaxBatchSize`  <a name="sam-graphqlapi-resolver-maxbatchsize"></a>
El número máximo de entradas de solicitud de resolución que se enviarán a una sola función de AWS Lambda en una operación de `BatchInvoke`.  
*Tipo*: entero  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[MaxBatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-maxbatchsize)` propiedad de un `AWS::AppSync::Resolver` recurso.

`OperationType`  <a name="sam-graphqlapi-resolver-operationtype"></a>
El tipo de operación GraphQL que está asociado al solucionador. Por ejemplo, `Query`, `Mutation` o `Subscription`. Puede agrupar varios solucionadores `LogicalId` en un solo `OperationType`.  
*Tipo:* cadena  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[TypeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-typename)` propiedad de un `AWS::AppSync::Resolver` recurso.

`Pipeline`  <a name="sam-graphqlapi-resolver-pipeline"></a>
Funciones vinculadas con el solucionador de canalización. Especifica las funciones mediante un identificador lógico en una lista.  
*Tipo*: lista  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente. Es similar a la propiedad `[PipelineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-pipelineconfig)` de un recurso `AWS::AppSync::Resolver`.

`Runtime`  <a name="sam-graphqlapi-resolver-runtime"></a>
El tiempo de ejecución de su función o solucionador de canalización. Especifica el nombre y la versión que se utilizará.  
*Tipo*: [tiempo de ejecución](sam-property-graphqlapi-resolver-runtime.md)  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente. Es similar a la propiedad `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-runtime)` de un recurso `AWS::AppSync::Resolver`.

`Sync`  <a name="sam-graphqlapi-resolver-sync"></a>
Describe una configuración de sincronización para un solucionador.  
Especifica la estrategia de detección de conflictos y la estrategia de resolución que se utilizará cuando se invoque el resolver.  
*Tipo:* [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-syncconfig)` propiedad de un `AWS::AppSync::Resolver` recurso.

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

### Utilice el código de la función de resolución AWS SAM generado y guarde los campos como variables
<a name="sam-property-graphqlapi-resolver-examples-example1"></a>

Este es el esquema GraphQL de nuestro ejemplo:

```
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
}
```

Este es un fragmento de nuestra AWS SAM plantilla:

```
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
```

En nuestra AWS SAM plantilla, no `CodeUri` especificamos o. `InlineCode` En el momento de la implementación, genera AWS SAM automáticamente el siguiente código en línea para nuestro solucionador:

```
export function request(ctx) {
  return {};
}

export function response(ctx) {
  return ctx.prev.result;
}
```

Este código de solucionador predeterminado redirige la solicitud a la primera función de canalización y recibe la respuesta de la última función de canalización.

En nuestra primera función de canalización, podemos usar el campo `args` proporcionado para analizar el objeto de solicitud y crear nuestras variables. Luego podemos usar estas variables dentro de nuestra función. A continuación, se muestra un ejemplo de nuestra función `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;
}
```

# Tiempo de ejecución
<a name="sam-property-graphqlapi-resolver-runtime"></a>

El tiempo de ejecución de su función o solucionador de canalización. Especifica el nombre y la versión que se utilizará.

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

Para declarar esta entidad en tu plantilla AWS Serverless Application Model (AWS SAM), usa la siguiente sintaxis.

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

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

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

`Name`  <a name="sam-graphqlapi-resolver-runtime-name"></a>
El nombre del tiempo de ejecución que se utilizará. El único valor permitido actualmente es `APPSYNC_JS`.  
*Tipo:* cadena  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-name)` propiedad de un `AWS::AppSync::Resolver AppSyncRuntime` objeto.

`Version`  <a name="sam-graphqlapi-resolver-runtime-version"></a>
La versión del tiempo de ejecución que se utilizará. En la actualidad, la única versión permitida es `1.0.0`.  
*Tipo:* cadena  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[RuntimeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-appsyncruntime.html#cfn-appsync-resolver-appsyncruntime-runtimeversion)` propiedad de un `AWS::AppSync::Resolver AppSyncRuntime` objeto.