Integrazione di Amazon CloudSearch con API Gateway - Amazon CloudSearch

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

Integrazione di Amazon CloudSearch con API Gateway

Questo capitolo fornisce informazioni sull'integrazione di Amazon CloudSearch con Amazon API Gateway. API Gateway consente di creare e ospitare API REST che effettuano chiamate ad altri servizi. Alcuni casi d'uso per l'utilizzo di API Gateway con Amazon CloudSearch includono:

  • Proteggere ulteriormente l'endpoint CloudSearch di ricerca Amazon utilizzando chiavi API o pool di utenti Amazon Cognito

  • Utilizzo CloudWatch per monitorare e registrare le chiamate di ricerca verso il CloudSearch dominio Amazon

  • Limitazione degli utenti a un sottoinsieme più limitato dell'API Amazon CloudSearch

  • Applicare un limite al tasso relativo al numero di richieste

Per ulteriori informazioni sui vantaggi di API Gateway, consulta la API Gateway Developer Guide.

Prerequisiti

Prima di integrare Amazon CloudSearch con API Gateway, devi disporre delle seguenti risorse.

Prerequisito Descrizione
CloudSearch Dominio Amazon

A scopo di test, il dominio deve avere alcuni dati ricercabili. I dati dei filmati IMDb sono un'ottima scelta.

Il dominio deve avere le seguenti policy di accesso:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/my-api-gateway-role" }, "Action": [ "cloudsearch:search", "cloudsearch:suggest" ] } ] }

Questa policy configura il CloudSearch dominio Amazon in modo che solo API Gateway (e probabilmente il proprietario dell'account) possa accedervi. Per ulteriori informazioni, consulta Creazione di un CloudSearch dominio Amazon e Configurazione dell'accesso per Amazon CloudSearch.

Ruolo IAM

Questo ruolo delega le autorizzazioni ad API Gateway e gli consente di effettuare richieste ad Amazon. CloudSearch Il ruolo viene definito come my-api-gateway-role all'interno di questo capitolo e deve disporre delle autorizzazioni seguenti:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents", "logs:FilterLogEvents" ], "Resource": "*" }] }

Il ruolo deve anche avere la relazione di trust seguente:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" }] }

Per ulteriori informazioni, consulta Creating Roles nella IAM User Guide.

Creazione e configurazione di una API (Console)

I passi necessari per la creazione di un'API variano a seconda se la richiesta impiega i parametri, richiede un corpo della richiesta, necessita di intestazioni specifiche e molti altri fattori. La procedura seguente crea un'API che ha una sola funzione: eseguire ricerche su un CloudSearch dominio Amazon. Per informazioni più complete sulla configurazione delle API, consulta Creazione di un'API in Amazon API Gateway.

Come creare un'API (console)
  1. Accedere a e aprire AWS Management Console la console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegli Crea API (o scegli Inizia se è la prima volta che utilizzi API Gateway).

  3. Scegli Build under REST API (non privato).

  4. Fornisci un nome e una descrizione opzionale, quindi scegli Crea API.

  5. Scegli Azioni, Crea metodo. Dal menu a discesa, scegliere GET e confermare.

  6. Per Integration type (Tipo di integrazione), scegliere AWS Service (Servizio AWS).

  7. Per AWSRegione, scegli la regione in cui risiede il tuo CloudSearch dominio Amazon.

  8. Per AWSAssistenza, scegli CloudSearch.

  9. Per AWSSubdomain, specifica il sottodominio per l'endpoint di ricerca del CloudSearch tuo dominio Amazon.

    Ad esempio, se l'endpoint di ricerca del dominio è search-my-test-asdf5asdfasdfasdfasd5asdfg.us-west-1.cloudsearch.amazonaws.com, specificare search-my-test-asdf5ambgebbgmmodhhq5asdfg.

  10. Per HTTP Method (Metodo HTTP), scegliere GET.

  11. Per Tipo di azione, scegli Use path override e inserisci. /2013-01-01/search

  12. Per Execution role (Ruolo esecuzione), specificare l'ARN per my-api-gateway-role, ad esempio arn:aws:iam::123456789012:role/my-api-gateway-role.

  13. In Content Handling (Gestione contenuti), scegliere Passthrough, utilizzare il timeout predefinito, quindi scegliere Save (Salva).

  14. Selezionare Method Request (Richiesta metodo).

  15. Per Request Validator (Validatore richiesta), scegliere Convalidare i parametri e le intestazioni delle stringhe di query (Validate query string parameters and headers), quindi confermare.

  16. Espandere URL Query String Parameters (Parametri stringa di query URL). Scegliete Aggiungi stringa di query, assegnate un nome alla stringa q e confermate. Contrassegna la stringa di query come richiesta.

  17. Scegliere Method Execution (Esecuzione metodo) per tornare al riepilogo dei metodi.

  18. Scegliere Integration Request (Richiesta integrazione).

  19. Espandere URL Query String Parameters (Parametri stringa di query URL). Scegliete Aggiungi stringa di query, assegnate un nome alla stringaq, fornite una mappatura di method.request.querystring.q e quindi confermate.

Test dell'API (Console)

A questo punto, è stata creata un'API che dispone di un metodo. Prima di distribuire l'API, è opportuno provarla.

Per eseguire il test dell'API (console)
  1. Vai alla pagina Method Execution (Esecuzione metodo).

  2. Scegli Test (Esegui test).

  3. In Query Strings, inserisci una stringa di query che corrisponda ad alcuni dati nel CloudSearch dominio Amazon. Se si stanno usando i dati dei filmati IMDb, provare q=thor.

  4. Scegli Test (Esegui test).

  5. Verificare che il corpo della risposta contenga i risultati della ricerca, come, ad esempio:

    { "status": { "rid": "rcWTo8IsviEK+own", "time-ms": 1 }, "hits": { "found": 7, "start": 0, "hit": [ { "id": "tt0800369", "fields": { "rating": "7.0", "genres": [ "Action", "Adventure", "Fantasy" ], "title": "Thor", "release_date": "2011-04-21T00:00:00Z", "plot": "The powerful but arrogant god Thor is cast out of Asgard to live amongst humans in Midgard (Earth), where he soon becomes one of their finest defenders.", "rank": "135", "running_time_secs": "6900", "directors": [ "Kenneth Branagh", "Joss Whedon" ], "image_url": "http://ia.media-imdb.com/images/M/MV5BMTYxMjA5NDMzNV5BMl5BanBnXkFtZTcwOTk2Mjk3NA@@._V1_SX400_.jpg", "year": "2011", "actors": [ "Chris Hemsworth", "Anthony Hopkins", "Natalie Portman" ] } }, ... ] } }

A questo punto, si dispone di un'API funzionale. Puoi aggiungere metodi per abilitare richieste di ricerca più solide, distribuire l'API e configurare la limitazione della velocità, creare e richiedere l'uso di chiavi API, aggiungere l'autenticazione del pool di utenti di Amazon Cognito e molto altro. Per ulteriori informazioni, consulta la Guida per gli sviluppatori di API Gateway.