

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.

# Integre Amazon API Gateway con Amazon SQS para gestionar el REST asíncrono APIs
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis"></a>

*Natalia Colantonio Favero y Gustavo Martim, Amazon Web Services*

## Resumen
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis-summary"></a>

Al implementar REST APIs, a veces es necesario exponer una cola de mensajes que las aplicaciones cliente puedan publicar. Por ejemplo, es posible que tenga problemas con la latencia de terceros APIs y que se produzcan retrasos en las respuestas, o puede que desee evitar el tiempo de respuesta de las consultas a la base de datos o escalar el servidor cuando hay un gran número de consultas APIs simultáneas. En estos escenarios, las aplicaciones cliente que publican en la cola solo necesitan saber que la API ha recibido los datos, no lo que ocurre después de recibirlos.

Este patrón crea un punto de conexión de la API de REST mediante [Amazon API Gateway](https://aws.amazon.com/api-gateway/) para enviar un mensaje a [Amazon Simple Queue Service (Amazon SQS)](https://aws.amazon.com/sqs/). Crea una easy-to-implement integración entre los dos servicios que evita el acceso directo a la cola de SQS.

## Requisitos previos y limitaciones
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis-prereqs"></a>
+ [Una cuenta activa AWS](https://portal.aws.amazon.com/billing/signup/iam)

## Arquitectura
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis-architecture"></a>

![\[Arquitectura para integrar API Gateway con Amazon SQS\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/70984dee-e49f-4446-9d52-49ce826c3909/images/737ba0b2-da8f-4478-8c54-0a4835fd69f9.png)


En el siguiente diagrama se muestran estos pasos:

1. Solicite un punto de conexión de la API de REST POST mediante una herramienta como Postman, otra API u otras tecnologías.

1. API Gateway publica un mensaje, que se recibe en el cuerpo de la solicitud, en la cola.

1. Amazon SQS recibe el mensaje y envía una respuesta a API Gateway con un código de éxito o error.

## Tools (Herramientas)
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis-tools"></a>
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) le ayuda a crear, publicar, mantener, supervisar y proteger REST, HTTP y WebSocket APIs a cualquier escala.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
+ [Amazon Simple Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) ofrece una cola alojada segura, duradera y disponible que le permite integrar y desacoplar sistemas y componentes de software distribuidos.   

## Epics
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis-epics"></a>

### Creación de una cola de SQS
<a name="create-an-sqs-queue"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Creación de una cola. | Para crear una cola de SQS que reciba los mensajes de la API de REST:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desarrollador de aplicaciones | 

### Cómo proporcionar acceso a Amazon SQS
<a name="provide-access-to-sqs"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear un rol de IAM. | Este rol de IAM proporciona a los recursos de API Gateway acceso completo a Amazon SQS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desarrollador de aplicaciones, administrador de AWS | 

### Crear una API de REST
<a name="create-a-rest-api"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear una API de REST. | Esta es la API de REST a la que se envían las solicitudes HTTP.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desarrollador de aplicaciones | 
| Conectar API Gateway a Amazon SQS. | Este paso permite que el mensaje fluya desde el cuerpo de la solicitud HTTP hasta Amazon SQS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desarrollador de aplicaciones | 

### Prueba de la API de REST
<a name="test-the-rest-api"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Probar la API de REST. | Ejecute una prueba para comprobar si falta alguna configuración:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desarrollador de aplicaciones | 
| Cambiar la integración de la API para reenviar la solicitud correctamente a Amazon SQS. | Complete la configuración para corregir el error de integración:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desarrollador de aplicaciones | 
| Probar y validar el mensaje en Amazon SQS. | Ejecute una prueba para confirmar que la prueba se haya completado correctamente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desarrollador de aplicaciones | 
| Probar API Gateway con un carácter especial. | Ejecute una prueba que incluya caracteres especiales (como &) que no sean aceptables en un mensaje:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html)Esto se debe a que los caracteres especiales no se admiten de forma predeterminada en el cuerpo del mensaje. En el siguiente paso, configurará API Gateway para que admita caracteres especiales. Para obtener más información sobre las conversiones de tipos de contenido, consulte la [documentación de API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-workflow.html). | Desarrollador de aplicaciones | 
| Cambiar la configuración de la API para que admita caracteres especiales. | Ajuste la configuración para que acepte caracteres especiales en el mensaje:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html)El nuevo mensaje debe incluir el carácter especial. | Desarrollador de aplicaciones | 

### Implementación de la API de REST
<a name="deploy-the-rest-api"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implementar la API. |  Para implementar la API de REST:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desarrollador de aplicaciones | 
| Probar con una herramienta externa. | Ejecute una prueba con una herramienta externa para confirmar que el mensaje se ha recibido correctamente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desarrollador de aplicaciones | 

### Eliminación
<a name="clean-up"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Eliminar la API. | En la [consola de API Gateway](https://console.aws.amazon.com/apigateway/), elija la API que creó y, a continuación, elija **Eliminar**. | Desarrollador de aplicaciones | 
| Eliminación del rol de IAM. | **En la [consola de IAM](https://console.aws.amazon.com/iam/), en el panel **Funciones**, seleccione **AWSGatewayRoleForSQS** y, a continuación, elija Eliminar.** | Desarrollador de aplicaciones | 
| Eliminar la cola de SQS. | En la [consola de Amazon SQS](https://console.aws.amazon.com/sqs/), en el panel **Colas**, elija la cola de SQS que ha creado y, a continuación, elija **Eliminar**. | Desarrollador de aplicaciones | 

## Recursos relacionados
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis-resources"></a>
+ [SQS- SendMessage](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html#SQS-SendMessage) (documentación de API Gateway)
+ [Conversiones de tipo de contenido en API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-workflow.html) (documentación de API Gateway)
+ [Variables \$1util](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-template-reference) (documentación de API Gateway)
+ [¿Cómo puedo integrar una API REST de API Gateway con Amazon SQS y resolver los errores más comunes?](https://repost.aws/knowledge-center/api-gateway-rest-api-sqs-errors) (Artículo de AWS Re:POST)