

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á.

# Integre o Amazon API Gateway com o Amazon SQS para lidar com REST assíncrono APIs
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis"></a>

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

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

Quando você implanta o REST APIs, às vezes você precisa expor uma fila de mensagens que os aplicativos cliente possam publicar. Por exemplo, você pode ter problemas com a latência de terceiros APIs e atrasos nas respostas, ou talvez queira evitar o tempo de resposta das consultas ao banco de dados ou evitar escalar o servidor quando há um grande número de consultas simultâneas. APIs Nesses cenários, as aplicações clientes que publicam dados para a fila só precisam ter ciência de que a API os recebeu, sem precisar saber o que ocorre após o recebimento.

Esse padrão cria um endpoint da API REST usando o [Amazon API Gateway](https://aws.amazon.com/api-gateway/) para enviar uma mensagem ao [Amazon Simple Queue Service (Amazon SQS)](https://aws.amazon.com/sqs/). Ele cria uma easy-to-implement integração entre os dois serviços que evita o acesso direto à fila do SQS.

## Pré-requisitos e limitações
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis-prereqs"></a>
+ Uma [AWS conta ativa](https://portal.aws.amazon.com/billing/signup/iam)

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

![Arquitetura para integração do API Gateway com o Amazon SQS](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/70984dee-e49f-4446-9d52-49ce826c3909/images/737ba0b2-da8f-4478-8c54-0a4835fd69f9.png)


O diagrama ilustra estas etapas:

1. Uma solicitação é enviada a um endpoint da API REST via POST usando uma ferramenta como Postman, outra API ou outras tecnologias.

1. O API Gateway publica uma mensagem na fila, que é recebida no corpo da solicitação.

1. O Amazon SQS recebe a mensagem e envia uma resposta ao API Gateway com um código de êxito ou de falha.

## Ferramentas
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis-tools"></a>
+ [O Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) ajuda você a criar, publicar, manter, monitorar e proteger REST, HTTP e WebSocket APIs em qualquer escala.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
+ O [Amazon Simple Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) fornece uma fila hospedada segura, durável e disponível que ajuda a integrar e desacoplar sistemas e componentes de software distribuídos.   

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

### Criação de uma fila do SQS
<a name="create-an-sqs-queue"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie sua fila. | Para criar uma fila do SQS que receba as mensagens provenientes da API REST:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desenvolvedor de aplicativos | 

### Fornecimento de acesso ao Amazon SQS
<a name="provide-access-to-sqs"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um perfil do IAM. | Este perfil do IAM concede aos recursos do API Gateway acesso total ao Amazon SQS.[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desenvolvedor de aplicações e administrador da AWS | 

### Criar uma API REST
<a name="create-a-rest-api"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma API REST. | Esta é a API REST à qual as solicitações HTTP são enviadas.[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desenvolvedor de aplicativos | 
| Estabeleça a conexão entre o API Gateway e o Amazon SQS. | Essa etapa habilita o fluxo da mensagem do conteúdo do corpo da solicitação HTTP para o Amazon SQS.[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desenvolvedor de aplicativos | 

### Teste da API REST
<a name="test-the-rest-api"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste a API REST. | Faça um teste para identificar configurações que estejam ausentes:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desenvolvedor de aplicativos | 
| Altere a integração da API para encaminhar a solicitação corretamente para o Amazon SQS. | Conclua a configuração para corrigir o erro de integração:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desenvolvedor de aplicativos | 
| Realize o teste e a validação da mensagem no Amazon SQS. | Execute um teste para confirmar que a execução do teste obteve êxito:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desenvolvedor de aplicativos | 
| Teste o API Gateway usando um caractere especial. | Execute um teste que inclua caracteres especiais (como &) que não são aceitos em uma mensagem:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html)<br />Isso ocorre porque, por padrão, caracteres especiais não são suportados no corpo da mensagem. Na próxima etapa, você configurará o API Gateway para fornecer suporte a caracteres especiais. Para obter mais informações sobre conversões de tipo de conteúdo, consulte a [documentação do API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-workflow.html). | Desenvolvedor de aplicativos | 
| Altere a configuração da API para fornecer suporte a caracteres especiais. | Ajuste a configuração para aceitar caracteres especiais na mensagem:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html)<br />A nova mensagem deverá incluir o caractere especial. | Desenvolvedor de aplicativos | 

### Implantação de uma API REST
<a name="deploy-the-rest-api"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implantar a API. |  <br />Para implantar a API REST:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desenvolvedor de aplicativos | 
| Realize o teste usando uma ferramenta externa. | Execute um teste com uma ferramenta externa para confirmar que a mensagem foi recebida com êxito:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Desenvolvedor de aplicativos | 

### Limpar
<a name="clean-up"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua a API. | No [console do API Gateway](https://console.aws.amazon.com/apigateway/), selecione a API que você criou e, em seguida, escolha **Excluir**. | Desenvolvedor de aplicativos | 
| Exclua o perfil do IAM. | **No [console do IAM](https://console.aws.amazon.com/iam/), no painel **Roles**, selecione **AWSGatewayRoleForSQS** e, em seguida, escolha Delete.** | Desenvolvedor de aplicativos | 
| Exclua a fila do SQS. | No [console do Amazon SQS](https://console.aws.amazon.com/sqs/), no painel **Filas**, selecione a fila do SQS que você criou e, em seguida, escolha **Excluir**. | Desenvolvedor de aplicativos | 

## 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) (documentação do API Gateway)
+ [Conversões de tipo de conteúdo no API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-workflow.html) (documentação do API Gateway)
+ [Variáveis de utilidade](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-template-reference) (documentação do API Gateway)
+ [Como faço para integrar uma API REST do API Gateway com o Amazon SQS e resolver erros comuns?](https://repost.aws/knowledge-center/api-gateway-rest-api-sqs-errors) (AWS Re:postar artigo)