

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.

# Desactivación de las plantillas de mapeo de VTL con solucionadores de Lambda directos (VTL)
<a name="direct-lambda-reference"></a>

**nota**  
Ahora admitimos de forma básica el tiempo de ejecución APPSYNC\$1JS y su documentación. Considere la opción de utilizar el tiempo de ejecución APPSYNC\$1JS y sus guías [aquí](https://docs.aws.amazon.com/appsync/latest/devguide/configuring-resolvers-js.html).

Con los resolutores Lambda directos, puede evitar el uso de plantillas de mapeo de VTL al utilizar fuentes de datos. AWS Lambda AWS AppSync puede proporcionar una carga útil predeterminada a la función de Lambda, así como una traducción predeterminada de la respuesta de una función de Lambda a un tipo de GraphQL. Puedes elegir entre proporcionar una plantilla de solicitud, una plantilla de respuesta o ninguna de las dos, y la AWS AppSync gestionarás en consecuencia. 

Para obtener más información sobre la carga útil de solicitud predeterminada y la traducción de respuestas que AWS AppSync proporciona, consulte la referencia de resolución de [Direct Lambda](resolver-mapping-template-reference-lambda.md#direct-lambda-resolvers). Para obtener más información sobre la configuración de una fuente de AWS Lambda datos y la configuración de una política de confianza de IAM, consulte [Adjuntar](attaching-a-data-source.md) una fuente de datos. 

## Configurar solucionadores de Lambda directos
<a name="direct-lambda-reference-resolvers"></a>

En las secciones siguientes, se muestra cómo asociar orígenes de datos de Lambda y cómo añadir solucionadores de Lambda a los campos.

### Añadir un origen de datos de Lambda
<a name="direct-lambda-datasource"></a>

Para poder activar los solucionadores de Lambda directos, debe añadir un origen de datos de Lambda.

------
#### [ Console ]

1. [Inicie sesión en la consola Consola de administración de AWS y ábrala. AppSync](https://console.aws.amazon.com/appsync/)

   1. En el **APIs panel de control**, elige tu API de GraphQL.

   1. En la **barra lateral**, seleccione **Origen de datos**.

1. Elija **Crear origen de datos**.

   1. En **Nombre de origen de datos**, introduzca un nombre para el origen de datos (por ejemplo, **myFunction**). 

   1. En **Tipo de origen de datos**, elija **AWS Lambda Ninguno**.

   1. En **Región**, elija la región apropiada.

   1. En **ARN de la función**, elija la función de Lambda en la lista desplegable. Puede buscar el nombre de la función o introducir manualmente el ARN de la función que desee utilizar. 

   1. Cree un nuevo rol de IAM (recomendado) o elija un rol existente que tenga el permiso de IAM `lambda:invokeFunction`. Los roles existentes necesitan una política de confianza, tal y como se explica en la sección [Asociar un origen de datos](attaching-a-data-source.md). 

      El siguiente es un ejemplo de política de IAM que tiene los permisos necesarios para llevar a cabo operaciones en el recurso:

------
#### [ JSON ]

****  

      ```
      { 
           "Version":"2012-10-17",		 	 	  
           "Statement": [ 
               { 
                   "Effect": "Allow", 
                   "Action": [ "lambda:invokeFunction" ], 
                   "Resource": [ 
                       "arn:aws:lambda:us-west-2:123456789012:function:myFunction", 
                       "arn:aws:lambda:us-west-2:123456789012:function:myFunction:*" 
                   ] 
               } 
           ] 
       }
      ```

------

1. Pulse el botón **Crear**.

------
#### [ CLI ]

1. Cree un origen de datos ejecutando el comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/appsync/create-data-source.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/appsync/create-data-source.html).

   Deberá escribir 4 parámetros para este comando concreto:

   1. El `api-id` de su API.

   1. El `name` de origen de datos. En el ejemplo de la consola, este es el **nombre del origen de datos**.

   1. El `type` de origen de datos. En el ejemplo de la consola, se trata de una **función AWS Lambda **.

   1. El `lambda-config`, que es el **ARN de la función** el ejemplo de la consola.
**nota**  
Hay otros parámetros, como `Region`, que deben configurarse pero que normalmente se utilizarán de forma predeterminada en los valores de configuración de la CLI.

   Un comando de ejemplo puede tener este aspecto:

   ```
   aws appsync create-data-source --api-id abcdefghijklmnopqrstuvwxyz --name myFunction --type AWS_LAMBDA --lambda-config lambdaFunctionArn=arn:aws:lambda:us-west-2:102847592837:function:appsync-lambda-example
   ```

   Aparecerá un resultado en la CLI. A continuación se muestra un ejemplo:

   ```
   {
       "dataSource": {
           "dataSourceArn": "arn:aws:appsync:us-west-2:102847592837:apis/abcdefghijklmnopqrstuvwxyz/datasources/myFunction",
           "type": "AWS_LAMBDA",
           "name": "myFunction",
           "lambdaConfig": {
               "lambdaFunctionArn": "arn:aws:lambda:us-west-2:102847592837:function:appsync-lambda-example"
           }
       }
   }
   ```

1. Para modificar los atributos de un origen de datos, ejecute el comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/appsync/update-data-source.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/appsync/update-data-source.html).

   Con la excepción del parámetro `api-id`, los parámetros utilizados en el comando `create-data-source` se sobrescribirán con los nuevos valores del comando `update-data-source`.

------

### Activar los solucionadores de Lambda directos
<a name="direct-lambda-enable-templates"></a>

Tras crear una fuente de datos Lambda y configurar la función de IAM adecuada para poder AWS AppSync invocar la función, puede vincularla a una función de resolución o de canalización. 

------
#### [ Console ]

1. [Inicie sesión en la consola Consola de administración de AWS y ábrala. AppSync](https://console.aws.amazon.com/appsync/)

   1. En el **APIs panel de control**, elige tu API de GraphQL.

   1. En la **barra lateral**, seleccione **Esquema**.

1. En la ventana **Solucionadores**, elija un campo u operación y, a continuación, seleccione el botón **Asociar**.

1. En la página **Crear nuevo solucionador**, elija la función de Lambda en la lista desplegable.

1. Para aprovechar los solucionadores de Lambda directos, confirme que las plantillas de asignación de solicitud y respuesta estén deshabilitadas en la sección **Configurar plantillas de asignación**.

1. Pulse el botón **Guardar solucionador**.

------
#### [ CLI ]
+ Cree un solucionador ejecutando el comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/appsync/create-resolver.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/appsync/create-resolver.html).

  Deberá escribir 6 parámetros para este comando concreto:

  1. El `api-id` de su API.

  1. El `type-name` del tipo de su esquema.

  1. El `field-name` del campo de su esquema.

  1. El `data-source-name` o el nombre de su función de Lambda.

  1. La `request-mapping-template`, que es el cuerpo de la solicitud. En el ejemplo de la consola, esto estaba deshabilitado:

     ```
     " "
     ```

  1. La `response-mapping-template`, que es el cuerpo de la respuesta. En el ejemplo de la consola, esto también estaba deshabilitado:

     ```
     " "
     ```

  Un comando de ejemplo puede tener este aspecto:

  ```
  aws appsync create-resolver --api-id abcdefghijklmnopqrstuvwxyz --type-name Subscription --field-name onCreateTodo --data-source-name LambdaTest --request-mapping-template " " --response-mapping-template " "
  ```

  Aparecerá un resultado en la CLI. A continuación se muestra un ejemplo:

  ```
  {
      "resolver": {
          "resolverArn": "arn:aws:appsync:us-west-2:102847592837:apis/abcdefghijklmnopqrstuvwxyz/types/Subscription/resolvers/onCreateTodo",
          "typeName": "Subscription",
          "kind": "UNIT",
          "fieldName": "onCreateTodo",
          "dataSourceName": "LambdaTest"
      }
  }
  ```

------

Al deshabilitar las plantillas de asignación, en AWS AppSync se producen varios comportamientos adicionales:
+ Al deshabilitar una plantilla de mapeo, indica AWS AppSync que acepta las traducciones de datos predeterminadas especificadas en la referencia de resolución de Direct [Lambda](resolver-mapping-template-reference-lambda.md#direct-lambda-resolvers).
+ Al deshabilitar la plantilla de asignación de solicitudes, el origen de datos de Lambda recibirá una carga compuesta por todo el objeto [Context](resolver-context-reference.md).
+ Al deshabilitar la plantilla de asignación de respuestas, el resultado de la invocación de Lambda se traducirá en función de la versión de la plantilla de asignación de solicitudes o de si la plantilla de asignación de solicitudes también está deshabilitada. 