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à.
Tutorial: creare un'API REST con un' AWS integrazione
Gli argomenti Tutorial: Creare un'integrazione REST API con un proxy Lambda e Tutorial: Creare un'integrazione non proxy REST API con Lambda descrivono entrambi come creare un'API di API Gateway per esporre la funzione Lambda integrata. Inoltre, puoi creare un'API API Gateway per esporre altri AWS servizi, come Amazon SNS, Amazon S3, Amazon Kinesis e persino. AWS Lambda Questo è possibile grazie all'integrazione di AWS
. L'integrazione Lambda o l'integrazione proxy Lambda è un caso speciale, in cui la chiamata della funzione Lambda viene esposta tramite l'API di API Gateway.
Tutti i AWS servizi supportano API dedicate per esporre le proprie funzionalità. Tuttavia, è probabile che i protocolli applicativi o le interfacce di programmazione differiscano da servizio a servizio. Un'API API Gateway con AWS
integrazione ha il vantaggio di fornire un protocollo applicativo coerente per consentire al cliente di accedere a diversi AWS servizi.
In questa procedura guidata creeremo un'API per esporre Amazon SNS. Per altri esempi di integrazione di un'API con altri AWS servizi, consultaTutorial e workshop di Amazon API Gateway.
Diversamente dall'integrazione proxy Lambda, non esiste un'integrazione proxy corrispondente per altri servizi AWS . Pertanto, un metodo API è integrato con una singola AWS azione. Per ottenere maggiore flessibilità, analogamente all'integrazione proxy, puoi configurare l'integrazione proxy Lambda. La funzione Lambda quindi analizza ed elabora le richieste di altre azioni. AWS
API Gateway non esegue un nuovo tentativo quando si verifica il timeout dell'endpoint. La chiamata API deve implementare una logica di ripetizione per gestire i timeout degli endpoint.
Questa procedura dettagliata si basa sulle istruzioni e sui concetti riportati in Tutorial: Creare un'integrazione non proxy REST API con Lambda. Se la procedura dettagliata non è ancora stata completata, è consigliabile eseguirla ora prima di proseguire.
Argomenti
Prerequisiti
Prima di iniziare questa procedura guidata, esegui queste operazioni:
-
Completa le fasi descritte in Configurazione per l'utilizzo di API Gateway.
-
Crea una nuova API denominata
MyDemoAPI
. Per ulteriori informazioni, consulta Tutorial: creare un file REST API con un'HTTPintegrazione non proxy. -
Distribuisci l'API almeno una volta in una fase denominata
. Per ulteriori informazioni, consulta la pagina relativa alla distribuzione dell'API in Scegli un tutorial di integrazione AWS Lambda.test
-
Completa le altre fasi descritte in Scegli un tutorial di integrazione AWS Lambda.
-
Crea almeno un argomento in Amazon Simple Notification Service (Amazon SNS). Utilizzerai l'API distribuita per ottenere un elenco di argomenti in Amazon SNS associati AWS al tuo account. Per informazioni su come creare un argomento in Amazon SNS, consulta Creazione di un argomento. Non devi copiare l'ARN dell'argomento citato nella fase 5.
Fase 1: creare il ruolo di esecuzione del proxy del AWS servizio
Per permettere all'API di richiamare le operazioni Amazon SNS necessarie, devi aver collegato le policy IAM appropriate a un ruolo IAM.
Per creare il ruolo di esecuzione del proxy di AWS servizio
Accedi AWS Management Console e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Scegliere Roles (Ruoli).
-
Scegli Crea ruolo.
-
Scegli il AWS servizio in Seleziona il tipo di entità affidabile, quindi seleziona API Gateway e seleziona Consenti a API Gateway di inviare i log ai CloudWatch log.
-
Scegli Successivo e di nuovo Successivo.
-
In Role name (Nome ruolo) immettere
APIGatewaySNSProxyPolicy
e quindi selezionare Create role (Crea ruolo). -
Nell'elenco Roles (Ruoli) scegliere il ruolo appena creato. Potrebbe essere necessario scorrere o utilizzare la barra di ricerca per trovare il ruolo.
-
Per il ruolo selezionato, seleziona la scheda Aggiungi autorizzazioni.
-
Dall'elenco a discesa scegli Collega policy.
-
Nella barra di ricerca inserisci
AmazonSNSReadOnlyAccess
e scegli Aggiungi autorizzazioni.Nota
Per semplicità, questo tutorial utilizza una policy gestita. Come best practice, dovresti creare la tua policy IAM per concedere le autorizzazioni minime richieste.
-
Annota l'ARN del ruolo appena creato, lo utilizzerai in seguito.
Fase 2: creazione della risorsa
In questo passaggio, crei una risorsa che consente al proxy del AWS servizio di interagire con il AWS servizio.
Per creare la risorsa
Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway
. -
Scegliere l'API.
-
Seleziona la risorsa root /, rappresentata da una singola barra (/), quindi scegli Crea risorsa.
Mantieni l'opzione Risorsa proxy disattivata.
Mantieni Percorso risorsa impostato su
/
.Per Resource Name (Nome risorsa) immetti
mydemoawsproxy
.Mantieni CORS (Cross Origin Resource Sharing) disattivato.
Scegli Crea risorsa.
Fase 3: creazione del metodo GET
In questo passaggio, si crea un metodo GET che consente al proxy del AWS servizio di interagire con il AWS servizio.
Per creare il metodo GET
-
Seleziona la risorsa /mydemoawsproxy, quindi scegli Crea metodo.
Per Tipo di metodo seleziona GET.
Per Tipo di integrazione seleziona Servizio AWS.
Per Regione AWS, seleziona l'argomento Regione AWS in cui hai creato il tuo Amazon SNS.
Per Servizio AWS seleziona Amazon SNS.
Lascia vuoto Sottodominio AWS .
Per Metodo HTTP seleziona GET.
Per Tipo di operazione scegli Usa nome operazione.
Per Nome azione immetti
ListTopics
.Per Ruolo di esecuzione immetti l'ARN del ruolo per
APIGatewaySNSProxyPolicy
.Scegli Crea metodo.
Fase 4: specifica delle impostazioni del metodo e test del metodo
A questo punto puoi testare il metodo GET
per verificare che sia stato configurato correttamente per elencare gli argomenti Amazon SNS.
Test del metodo GET
Seleziona la scheda Test. Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda.
Scegli Test (Esegui test).
Il risultato mostra una risposta simile a quella riportata di seguito:
{ "ListTopicsResponse": { "ListTopicsResult": { "NextToken": null, "Topics": [ { "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-1" }, { "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-2" }, ... { "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-N" } ] }, "ResponseMetadata": { "RequestId": "abc1de23-45fa-6789-b0c1-d2e345fa6b78" } } }
Fase 5: distribuzione dell'API
In questa fase, viene distribuita l'API per poterla chiamare esternamente alla console API Gateway.
Per distribuire l'API
Seleziona Deploy API (Distribuisci API).
In Fase, seleziona Nuova fase.
In Stage name (Nome fase) immettere
test
.(Facoltativo) In Description (Descrizione), immettere una descrizione.
Selezionare Deploy (Distribuisci).
Fase 6: test dell'API
In questa fase, esci dalla console API Gateway e utilizzi il proxy del AWS servizio per interagire con il servizio Amazon SNS.
-
Nel pannello di navigazione principale scegli Fase.
-
In Dettagli fase, scegli l'icona Copia per copiare l'URL di richiamo dell'API.
L'URL dovrebbe essere simile a questo:
https://
my-api-id
.execute-api.region-id
.amazonaws.com/test
-
Immetti l'URL nella barra degli indirizzi di una nuova scheda del browser.
-
Aggiungi
/mydemoawsproxy
in modo che l'URL sia simile al seguente:https://
my-api-id
.execute-api.region-id
.amazonaws.com/test
/mydemoawsproxyAccedi all'URL. Verranno visualizzate informazioni simili alle seguenti:
{"ListTopicsResponse":{"ListTopicsResult":{"NextToken": null,"Topics":[{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-1"},{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-2"},...{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-N}]},"ResponseMetadata":{"RequestId":"abc1de23-45fa-6789-b0c1-d2e345fa6b78}}}
Fase 7: pulire
Puoi eliminare le risorse IAM necessarie al proxy del AWS servizio per funzionare.
avvertimento
Se elimini una risorsa IAM su cui si basa un proxy di AWS servizio, quel proxy di AWS servizio e tutte le API che si basano su di esso non funzioneranno più. L'eliminazione di una risorsa IAM non può essere annullata. Per usare di nuovo la risorsa IAM, è necessario ricrearla.
Per eliminare le risorse IAM associate
Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Nell'area Details (Dettagli) scegliere Roles (Ruoli).
-
Seleziona APIGateway AWSProxyExecRole, quindi scegli Role Actions, Delete Role. Quando viene richiesto, scegliere Yes, Delete (Sì, elimina).
-
Nell'area Details (Dettagli) scegliere Policies (Policy).
-
Seleziona ApiGateway AWSProxyExecPolicy, quindi scegli Azioni politiche, Elimina. Quando viene richiesto, scegliere Delete (Elimina).
Hai completato questa procedura guidata. Per discussioni più dettagliate sulla creazione di API come proxy di AWS servizio, consultaTutorial: creare un REST API proxy come Amazon S3, Tutorial: crea una calcolatrice REST API con due integrazioni di AWS servizi e un'integrazione non proxy Lambda o. Tutorial: creazione di un'API REST come un proxy Amazon Kinesis