Tutorial: creare un'API REST con un' AWS integrazione - Amazon API Gateway

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.

Prerequisiti

Prima di iniziare questa procedura guidata, esegui queste operazioni:

  1. Completa le fasi descritte in Configurazione per l'utilizzo di API Gateway.

  2. Crea una nuova API denominata MyDemoAPI. Per ulteriori informazioni, consulta Tutorial: creare un file REST API con un'HTTPintegrazione non proxy.

  3. Distribuisci l'API almeno una volta in una fase denominata test. Per ulteriori informazioni, consulta la pagina relativa alla distribuzione dell'API in Scegli un tutorial di integrazione AWS Lambda.

  4. Completa le altre fasi descritte in Scegli un tutorial di integrazione AWS Lambda.

  5. 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
  1. Accedi AWS Management Console e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Scegliere Roles (Ruoli).

  3. Scegli Crea ruolo.

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

  5. Scegli Successivo e di nuovo Successivo.

  6. In Role name (Nome ruolo) immettere APIGatewaySNSProxyPolicy e quindi selezionare Create role (Crea ruolo).

  7. Nell'elenco Roles (Ruoli) scegliere il ruolo appena creato. Potrebbe essere necessario scorrere o utilizzare la barra di ricerca per trovare il ruolo.

  8. Per il ruolo selezionato, seleziona la scheda Aggiungi autorizzazioni.

  9. Dall'elenco a discesa scegli Collega policy.

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

  11. 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
  1. Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegliere l'API.

  3. Seleziona la risorsa root /, rappresentata da una singola barra (/), quindi scegli Crea risorsa.

  4. Mantieni l'opzione Risorsa proxy disattivata.

  5. Mantieni Percorso risorsa impostato su /.

  6. Per Resource Name (Nome risorsa) immetti mydemoawsproxy.

  7. Mantieni CORS (Cross Origin Resource Sharing) disattivato.

  8. 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
  1. Seleziona la risorsa /mydemoawsproxy, quindi scegli Crea metodo.

  2. Per Tipo di metodo seleziona GET.

  3. Per Tipo di integrazione seleziona Servizio AWS.

  4. Per Regione AWS, seleziona l'argomento Regione AWS in cui hai creato il tuo Amazon SNS.

  5. Per Servizio AWS seleziona Amazon SNS.

  6. Lascia vuoto Sottodominio AWS .

  7. Per Metodo HTTP seleziona GET.

  8. Per Tipo di operazione scegli Usa nome operazione.

  9. Per Nome azione immetti ListTopics.

  10. Per Ruolo di esecuzione immetti l'ARN del ruolo per APIGatewaySNSProxyPolicy.

  11. 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
  1. Seleziona la scheda Test. Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda.

  2. 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
  1. Seleziona Deploy API (Distribuisci API).

  2. In Fase, seleziona Nuova fase.

  3. In Stage name (Nome fase) immettere test.

  4. (Facoltativo) In Description (Descrizione), immettere una descrizione.

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

  1. Nel pannello di navigazione principale scegli Fase.

  2. 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
  3. Immetti l'URL nella barra degli indirizzi di una nuova scheda del browser.

  4. Aggiungi /mydemoawsproxy in modo che l'URL sia simile al seguente:

    https://my-api-id.execute-api.region-id.amazonaws.com/test/mydemoawsproxy

    Accedi 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
  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nell'area Details (Dettagli) scegliere Roles (Ruoli).

  3. Seleziona APIGateway AWSProxyExecRole, quindi scegli Role Actions, Delete Role. Quando viene richiesto, scegliere Yes, Delete (Sì, elimina).

  4. Nell'area Details (Dettagli) scegliere Policies (Policy).

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