

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Integra Amazon API Gateway con Amazon SQS per gestire REST asincrono 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*

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

Quando si distribuisce REST APIs, a volte è necessario esporre una coda di messaggi che le applicazioni client possono pubblicare. Ad esempio, potreste avere problemi con la latenza di terze parti APIs e i ritardi nelle risposte, oppure potreste voler evitare i tempi di risposta delle query del database o evitare il ridimensionamento del server quando il numero di richieste simultanee è elevato. APIs In questi scenari, le applicazioni client che pubblicano nella coda devono solo sapere che l'API ha ricevuto i dati, non cosa accade dopo la ricezione dei dati.

Questo modello crea un endpoint API REST utilizzando [Amazon API Gateway](https://aws.amazon.com/api-gateway/) per inviare un messaggio ad [Amazon Simple Queue Service (Amazon SQS)](https://aws.amazon.com/sqs/). Crea un' easy-to-implementintegrazione tra i due servizi che evita l'accesso diretto alla coda SQS.

## Prerequisiti e limitazioni
<a name="integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis-prereqs"></a>
+ [Un account attivo AWS](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>

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


Il diagramma illustra questi passaggi:

1. Richiedi un endpoint dell'API POST REST utilizzando uno strumento come Postman, un'altra API o altre tecnologie.

1. API Gateway pubblica un messaggio, che viene ricevuto nel corpo della richiesta, sulla coda.

1. Amazon SQS riceve il messaggio e invia una risposta ad API Gateway con un codice di successo o di errore.

## Tools (Strumenti)
<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) ti aiuta a creare, pubblicare, gestire, monitorare e proteggere REST, HTTP e WebSocket APIs su qualsiasi scala.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
+ [Amazon Simple Queue Service (Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)) fornisce una coda ospitata sicura, durevole e disponibile che ti aiuta a integrare e disaccoppiare sistemi e componenti software distribuiti.   

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

### Crea una coda SQS
<a name="create-an-sqs-queue"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una coda. | Per creare una coda SQS che riceva i messaggi dall'API REST:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Sviluppatore di app | 

### Fornisci l'accesso ad Amazon SQS
<a name="provide-access-to-sqs"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un ruolo IAM. | Questo ruolo IAM offre alle risorse API Gateway l'accesso completo ad Amazon SQS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Sviluppatore di app, amministratore AWS | 

### Crea un'API REST
<a name="create-a-rest-api"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'API REST. | Questa è l'API REST a cui vengono inviate le richieste HTTP.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Sviluppatore di app | 
| Connetti API Gateway ad Amazon SQS. | Questo passaggio consente al messaggio di fluire dall'interno del corpo della richiesta HTTP ad Amazon SQS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Sviluppatore di app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova l'API REST. | Esegui un test per verificare la configurazione mancante:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Sviluppatore di app | 
| Modifica l'integrazione dell'API per inoltrare correttamente la richiesta ad Amazon SQS. | Completa la configurazione per correggere l'errore di integrazione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Sviluppatore di app | 
| Testa e convalida il messaggio in Amazon SQS. | Esegui un test per confermare che il test è stato completato con successo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Sviluppatore di app | 
| Prova API Gateway con un carattere speciale. | Esegui un test che includa caratteri speciali (come &) che non sono accettabili in un messaggio:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html)Questo perché i caratteri speciali non sono supportati per impostazione predefinita nel corpo del messaggio. Nel passaggio successivo, configurerai API Gateway per supportare i caratteri speciali. Per ulteriori informazioni sulle conversioni dei tipi di contenuto, consulta la [documentazione di API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-workflow.html). | Sviluppatore di app | 
| Modifica la configurazione dell'API per supportare i caratteri speciali. | Modifica la configurazione per accettare caratteri speciali nel messaggio:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html)Il nuovo messaggio deve includere il carattere speciale. | Sviluppatore di app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa l'API. |  Per distribuire l'API REST:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Sviluppatore di app | 
| Esegui il test con uno strumento esterno. | Esegui un test con uno strumento esterno per confermare che il messaggio sia stato ricevuto correttamente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-amazon-api-gateway-with-amazon-sqs-to-handle-asynchronous-rest-apis.html) | Sviluppatore di app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eliminare l'API. | Nella [console API Gateway](https://console.aws.amazon.com/apigateway/), scegli l'API che hai creato, quindi scegli **Elimina**. | Sviluppatore di app | 
| Elimina il ruolo IAM. | Sulla [console IAM](https://console.aws.amazon.com/iam/), nel riquadro **Ruoli**, seleziona **AWSGatewayRoleForSQS**, quindi scegli **Elimina**. | Sviluppatore di app | 
| Elimina la coda SQS. | **Sulla [console Amazon SQS](https://console.aws.amazon.com/sqs/), nel riquadro Code, scegli la **coda** SQS che hai creato, quindi scegli Elimina.** | Sviluppatore di app | 

## Risorse correlate
<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) (documentazione API Gateway)
+ [Conversioni dei tipi di contenuto in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-workflow.html) (documentazione API Gateway)
+ [variabili \$1util (documentazione](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-template-reference) API Gateway)
+ [Come posso integrare un'API REST di API Gateway con Amazon SQS e risolvere gli errori più comuni?](https://repost.aws/knowledge-center/api-gateway-rest-api-sqs-errors) (AWS Re:post articolo)