

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Intégrez Amazon API Gateway à Amazon SQS pour gérer le REST asynchrone APIs
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis"></a>

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

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

Lorsque vous déployez REST APIs, vous devez parfois exposer une file de messages que les applications clientes peuvent publier. Par exemple, vous pouvez rencontrer des problèmes liés à la latence des tiers APIs et aux retards dans les réponses, ou vous pouvez vouloir éviter le temps de réponse des requêtes de base de données ou éviter de dimensionner le serveur en cas de grand nombre de requêtes simultanées APIs. Dans ces scénarios, les applications clientes qui publient dans la file d'attente doivent uniquement savoir que l'API a reçu les données, et non pas ce qui se passe après réception des données.

Ce modèle crée un point de terminaison d'API REST en utilisant [Amazon API Gateway](https://aws.amazon.com/api-gateway/) pour envoyer un message à [Amazon Simple Queue Service (Amazon SQS](https://aws.amazon.com/sqs/)). Cela crée une easy-to-implement intégration entre les deux services qui évite l'accès direct à la file d'attente SQS.

## Conditions préalables et limitations
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis-prereqs"></a>
+ Un [AWS compte actif](https://portal.aws.amazon.com/billing/signup/iam)

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

![Architecture d'intégration d'API Gateway à Amazon SQS](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/70984dee-e49f-4446-9d52-49ce826c3909/images/737ba0b2-da8f-4478-8c54-0a4835fd69f9.png)


Le schéma illustre les étapes suivantes :

1. Demandez un point de terminaison d'API POST REST à l'aide d'un outil tel que Postman, d'une autre API ou d'autres technologies.

1. API Gateway publie un message, qui est reçu dans le corps de la demande, dans la file d'attente.

1. Amazon SQS reçoit le message et envoie une réponse à API Gateway avec un code de réussite ou d'échec.

## Outils
<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) vous aide à créer, publier, gérer, surveiller et sécuriser REST, HTTP, et ce, WebSocket APIs à n'importe quelle échelle.
+ [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
+ [Amazon Simple Queue Service (Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)) fournit une file d'attente hébergée sécurisée, durable et disponible qui vous permet d'intégrer et de dissocier les systèmes et composants logiciels distribués.   

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

### Création d'une file d'attente SQS
<a name="create-an-sqs-queue"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une file d'attente. | Pour créer une file d'attente SQS qui reçoit les messages de l'API REST :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Développeur d’applications | 

### Fournir un accès à Amazon SQS
<a name="provide-access-to-sqs"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un rôle IAM. | Ce rôle IAM donne aux ressources d'API Gateway un accès complet à Amazon SQS.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Développeur d'applications, administrateur AWS | 

### Création d'une API REST
<a name="create-a-rest-api"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une API REST. | Il s'agit de l'API REST à laquelle les requêtes HTTP sont envoyées.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Développeur d’applications | 
| Connectez API Gateway à Amazon SQS. | Cette étape permet au message de circuler depuis le corps de la requête HTTP vers Amazon SQS.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Développeur d’applications | 

### Testez l'API REST
<a name="test-the-rest-api"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Testez l'API REST. | Exécutez un test pour vérifier s'il n'y a pas de configuration manquante :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Développeur d’applications | 
| Modifiez l'intégration de l'API pour transmettre correctement la demande à Amazon SQS. | Complétez la configuration pour corriger l'erreur d'intégration :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Développeur d’applications | 
| Testez et validez le message dans Amazon SQS. | Exécutez un test pour confirmer qu'il s'est bien déroulé :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Développeur d’applications | 
| Testez API Gateway avec un caractère spécial. | Exécutez un test qui inclut des caractères spéciaux (tels que &) qui ne sont pas acceptables dans un message :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html)<br />Cela est dû au fait que les caractères spéciaux ne sont pas pris en charge par défaut dans le corps du message. À l'étape suivante, vous allez configurer API Gateway pour qu'il prenne en charge les caractères spéciaux. Pour plus d'informations sur les conversions par type de contenu, consultez la [documentation d'API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-workflow.html). | Développeur d’applications | 
| Modifiez la configuration de l'API pour prendre en charge les caractères spéciaux. | Ajustez la configuration pour accepter les caractères spéciaux dans le message :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html)<br />Le nouveau message doit inclure le caractère spécial. | Développeur d’applications | 

### Déployer l'API REST
<a name="deploy-the-rest-api"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez l'API. |  <br />Pour déployer l'API REST :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Développeur d’applications | 
| Testez avec un outil externe. | Effectuez un test avec un outil externe pour vérifier que le message a bien été reçu :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Développeur d’applications | 

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


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez l'API. | Sur la [console API Gateway](https://console.aws.amazon.com/apigateway/), choisissez l'API que vous avez créée, puis choisissez **Delete**. | Développeur d’applications | 
| Supprimez le rôle IAM. | **Sur la [console IAM](https://console.aws.amazon.com/iam/), dans le volet **Rôles**, sélectionnez **AWSGatewayRoleForSQS**, puis choisissez Supprimer.** | Développeur d’applications | 
| Supprimez la file d'attente SQS. | **Sur la [console Amazon SQS](https://console.aws.amazon.com/sqs/), dans le volet **Queues**, choisissez la file d'attente SQS que vous avez créée, puis choisissez Supprimer.** | Développeur d’applications | 

## Ressources connexes
<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) (documentation API Gateway)
+ [Conversions de type de contenu dans API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-workflow.html) (documentation API Gateway)
+ [variables $util](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-template-reference) (documentation API Gateway)
+ [Comment intégrer une API REST API Gateway à Amazon SQS et résoudre les erreurs courantes ?](https://repost.aws/knowledge-center/api-gateway-rest-api-sqs-errors) (AWS Re:publier l'article)