

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.

# Prueba de las funciones de Lambda previas y posteriores a la anotación
<a name="sms-custom-templates-step3-lambda-test"></a>

Puede probar las funciones de Lambda preanotación y postanotación en la consola de Lambda. Si es un usuario nuevo de Lambda, puede aprender a probar, o *invocar*, sus funciones de Lambda en la consola mediante el tutorial [Crear una función de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html#gettingstarted-zip-function) con la consola en la Guía para desarrolladores de AWS Lambda . Puedes usar las secciones de esta página para aprender a probar las plantillas de anotación previa y posterior a la anotación de Ground Truth que se proporcionan a través de un AWS Serverless Application Repository (SAR). 

**Topics**
+ [Requisitos previos](#sms-custom-templates-step3-lambda-test-pre)
+ [Pruebe la función de Lambda preanotación](#sms-custom-templates-step3-lambda-test-pre-annotation)
+ [Pruebe la función de Lambda postanotación](#sms-custom-templates-step3-lambda-test-post-annotation)

## Requisitos previos
<a name="sms-custom-templates-step3-lambda-test-pre"></a>

Debe hacer lo siguiente para utilizar las pruebas que se describen en esta página.
+ Necesita acceso a la consola de Lambda y permiso para crear e invocar funciones de Lambda. Para saber cómo configurar estos permisos, consulte [Otorgue permiso para crear y seleccionar una función AWS Lambda](sms-custom-templates-step3-lambda-permissions.md#sms-custom-templates-step3-postlambda-create-perms)
+ Si no ha implementado la receta de SAR de Ground Truth, utilice el procedimiento [Creación de funciones de Lambda mediante las plantillas de Ground Truth](sms-custom-templates-step3-lambda-create.md) para hacerlo.
+ Para probar la función de Lambda postanotación, debe tener un archivo de datos en Amazon S3 con ejemplos de datos de anotación. Para realizar una prueba sencilla, puede copiar y pegar el siguiente código en un archivo, guardarlo como `sample-annotations.json` y [subirlo a Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html). Anote el URI de S3 de este archivo; necesita esta información para configurar la prueba de Lambda postanotación.

  ```
  [{"datasetObjectId":"0","dataObject":{"content":"To train a machine learning model, you need a large, high-quality, labeled dataset. Ground Truth helps you build high-quality training datasets for your machine learning models."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":8,\"label\":\"verb\",\"startOffset\":3},{\"endOffset\":27,\"label\":\"adjective\",\"startOffset\":11},{\"endOffset\":33,\"label\":\"object\",\"startOffset\":28},{\"endOffset\":51,\"label\":\"adjective\",\"startOffset\":46},{\"endOffset\":65,\"label\":\"adjective\",\"startOffset\":53},{\"endOffset\":74,\"label\":\"adjective\",\"startOffset\":67},{\"endOffset\":82,\"label\":\"adjective\",\"startOffset\":75},{\"endOffset\":102,\"label\":\"verb\",\"startOffset\":97},{\"endOffset\":112,\"label\":\"verb\",\"startOffset\":107},{\"endOffset\":125,\"label\":\"adjective\",\"startOffset\":113},{\"endOffset\":134,\"label\":\"adjective\",\"startOffset\":126},{\"endOffset\":143,\"label\":\"object\",\"startOffset\":135},{\"endOffset\":169,\"label\":\"adjective\",\"startOffset\":153},{\"endOffset\":176,\"label\":\"object\",\"startOffset\":170}]}}"}}]},{"datasetObjectId":"1","dataObject":{"content":"Sift 3 cups of flour into the bowl."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":4,\"label\":\"verb\",\"startOffset\":0},{\"endOffset\":6,\"label\":\"number\",\"startOffset\":5},{\"endOffset\":20,\"label\":\"object\",\"startOffset\":15},{\"endOffset\":34,\"label\":\"object\",\"startOffset\":30}]}}"}}]},{"datasetObjectId":"2","dataObject":{"content":"Jen purchased 10 shares of the stock on Janurary 1st, 2020."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":3,\"label\":\"person\",\"startOffset\":0},{\"endOffset\":13,\"label\":\"verb\",\"startOffset\":4},{\"endOffset\":16,\"label\":\"number\",\"startOffset\":14},{\"endOffset\":58,\"label\":\"date\",\"startOffset\":40}]}}"}}]},{"datasetObjectId":"3","dataObject":{"content":"The narrative was interesting, however the character development was weak."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":29,\"label\":\"adjective\",\"startOffset\":18},{\"endOffset\":73,\"label\":\"adjective\",\"startOffset\":69}]}}"}}]}]
  ```
+ Debe seguir las instrucciones para dar permiso [Otorgue permisos de Lambda postanotación para acceder a la anotación](sms-custom-templates-step3-lambda-permissions.md#sms-custom-templates-step3-postlambda-perms) a la función de ejecución de la función Lambda posterior a la anotación para que asuma la función de ejecución de SageMaker IA que utiliza para crear el trabajo de etiquetado. La función Lambda posterior a la anotación utiliza la función de ejecución de SageMaker IA para acceder al archivo de datos de la anotación, en S3. `sample-annotations.json`



## Pruebe la función de Lambda preanotación
<a name="sms-custom-templates-step3-lambda-test-pre-annotation"></a>

Utilice el siguiente procedimiento para probar la función Lambda previa a la anotación creada al implementar la receta Ground Truth AWS Serverless Application Repository (SAR). 

**Pruebe la función de Lambda preanotación de la receta de SAR de Ground Truth**

1. Abra la página [https://console.aws.amazon.com/lambda/home#/functions](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Seleccione la función preanotación que se implementó a partir de la receta de SAR de Ground Truth. El nombre de esta función es similar a `serverlessrepo-aws-sagema-GtRecipePreHumanTaskFunc-{{<id>}}`.

1. En la sección **Código fuente**, selecciona la flecha situada junto a **Probar**.

1. Seleccione **Configurar un evento de prueba**.

1. Mantenga seleccionada la opción **Crear un evento de prueba nuevo**.

1. En **Plantilla de evento**, selecciona **SageMakerGround Truth PreHumanTask**. 

1. Asigne un **Nombre de evento** a su prueba.

1. Seleccione **Crear**.

1. Seleccione la flecha situada junto a **Probar** otra vez y verá que está seleccionada la prueba que ha creado, que se indica con un punto junto al nombre del evento. Si no está seleccionada, selecciónela. 

1. Seleccione **Probar** para ejecutar la prueba. 

Después de ejecutar la prueba, podrá ver los **Resultados de la ejecución**. En **Registros de la función**, debería ver una respuesta similar a la siguiente:

```
START RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f Version: $LATEST
Received event: {
  "version": "2018-10-16",
  "labelingJobArn": "arn:aws:sagemaker:us-east-2:123456789012:labeling-job/example-job",
  "dataObject": {
    "source-ref": "s3://sagemakerexample/object_to_annotate.jpg"
  }
}
{'taskInput': {'taskObject': 's3://sagemakerexample/object_to_annotate.jpg'}, 'isHumanAnnotationRequired': 'true'}
END RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f
REPORT RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f	Duration: 0.42 ms	Billed Duration: 1 ms	Memory Size: 128 MB	Max Memory Used: 43 MB
```

En esta respuesta, podemos ver que el resultado de la función de Lambda coincide con la sintaxis de respuesta preanotación requerida:

```
{'taskInput': {'taskObject': 's3://sagemakerexample/object_to_annotate.jpg'}, 'isHumanAnnotationRequired': 'true'}
```

## Pruebe la función de Lambda postanotación
<a name="sms-custom-templates-step3-lambda-test-post-annotation"></a>

Utilice el siguiente procedimiento para probar la función Lambda posterior a la anotación creada al implementar la receta Ground Truth AWS Serverless Application Repository (SAR). 

**Pruebe la función de Lambda postanotación de la receta de SAR de Ground Truth**

1. Abra la página [https://console.aws.amazon.com/lambda/home#/functions](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Seleccione la función postanotación que se implementó a partir de la receta de SAR de Ground Truth. El nombre de esta función es similar a `serverlessrepo-aws-sagema-GtRecipeAnnotationConsol-{{<id>}}`.

1. En la sección **Código fuente**, selecciona la flecha situada junto a **Probar**.

1. Seleccione **Configurar un evento de prueba**.

1. Mantenga seleccionada la opción **Crear un evento de prueba nuevo**.

1. En **Plantilla de evento**, selecciona **SageMakerGround Truth AnnotationConsolidation**.

1. Asigne un **Nombre de evento** a su prueba.

1. Modifique el código de la plantilla de la siguiente manera:
   + Sustituya el nombre del recurso de Amazon (ARN) por el `roleArn` ARN de la función de ejecución de SageMaker IA que utilizó para crear el trabajo de etiquetado.
   + Sustituya el URI de S3 en `s3Uri` por el URI del archivo `sample-annotations.json` que ha añadido a Amazon S3.

   Después de realizar estas modificaciones, la prueba debería tener un aspecto similar al siguiente:

   ```
   {
     "version": "2018-10-16",
     "labelingJobArn": "arn:aws:sagemaker:us-east-2:123456789012:labeling-job/example-job",
     "labelAttributeName": "example-attribute",
     "roleArn": "arn:aws:iam::{{222222222222}}:role/{{sm-execution-role}}",
     "payload": {
       "s3Uri": "s3://{{your-bucket}}/sample-annotations.json"
     }
   }
   ```

1. Seleccione **Crear**.

1. Seleccione la flecha situada junto a **Probar** otra vez y verá que está seleccionada la prueba que ha creado, que se indica con un punto junto al nombre del evento. Si no está seleccionada, selecciónela. 

1. Seleccione **Probar** para ejecutar la prueba. 

Tras ejecutar la prueba, debería ver una sección `-- Consolidated Output --` en los **Registros de las funciones**, que contiene una lista de todas las anotaciones incluidas en `sample-annotations.json`.