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à.
Una richiesta di integrazione è una richiesta HTTP che API Gateway invia al back-end, passando i dati della richiesta inviata dal client e trasformandoli, se necessario. Il metodo HTTP (o verbo) e l'URI della richiesta di integrazione sono determinati dal back-end (l'endpoint dell'integrazione). Possono essere diversi o uguali, rispettivamente, al metodo HTTP e all'URI della richiesta di metodo.
Ad esempio, quando una funzione Lambda restituisce un file proveniente da Amazon S3, puoi esporre intuitivamente questa operazione al client come una richiesta del metodo GET
, anche se la corrispondente richiesta di integrazione richiede l'uso di una richiesta POST
per chiamare la funzione Lambda. Per un endpoint HTTP, è probabile che la richiesta di metodo e la richiesta di integrazione corrispondente utilizzino entrambi lo stesso verbo HTTP. Tuttavia, non è obbligatorio. Puoi integrare la seguente richiesta di metodo:
GET /{var}?query=value Host: api.domain.net
Con la seguente richiesta di integrazione:
POST / Host: service.domain.com Content-Type: application/json Content-Length: ... { path: "{var}'s value", type: "value" }
Come sviluppatore di API, puoi utilizzare qualunque verbo HTTP e URI per una richiesta di metodo che soddisfino i tuoi requisiti. Tuttavia, devi soddisfare i requisiti dell'endpoint di integrazione. Quando i dati della richiesta di metodo sono diversi dai dati della richiesta di integrazione, puoi eliminare la differenza tramite mappature dei dati della richiesta di metodo ai dati della richiesta di integrazione.
Negli esempi precedenti, la mappatura traduce i valori della variabile di percorso ({var}
) e dei parametri di query (query
) della richiesta di metodo GET
nei valori delle proprietà del payload della richiesta di integrazione di path
e type
. Tra gli altri dati di richiesta mappabili figurano il corpo e le intestazioni della richiesta. Tali dati sono descritti in Mappatura dei parametri per REST APIs in API Gateway.
Quando configuri la richiesta HTTP o di integrazione proxy HTTP, assegni l'URL dell'endpoint HTTP del back-end come valore URI della richiesta di integrazione. Ad esempio, nell' PetStoreAPI, la richiesta del metodo per ottenere una pagina di animali domestici ha il seguente URI di richiesta di integrazione:
http://petstore-demo-endpoint.execute-api.com/petstore/pets
Quando configuri Lambda o l'integrazione proxy Lambda, assegni l'Amazon Resource Name (ARN) per chiamare la funzione Lambda come valore URI della richiesta di integrazione. Questo ARN ha il seguente formato:
arn:aws:apigateway:
api-region
:lambda:path//2015-03-31/functions/arn:aws:lambda:lambda-region
:account-id
:function:lambda-function-name
/invocations
La parte dopo arn:aws:apigateway:
, ovvero api-region
:lambda:path//2015-03-31/functions/arn:aws:lambda:
, è il percorso URI dell'API REST dell'azione Lambda Invoke. Se utilizzi la console API Gateway per configurare l'integrazione Lambda, API Gateway crea l'ARN e lo assegna all'URI di integrazione dopo avere chiesto di selezionare il lambda-region
:account-id
:function:lambda-function-name
/invocations
da una regione. lambda-function-name
Quando si imposta la richiesta di integrazione con un'altra azione di AWS servizio, anche l'URI della richiesta di integrazione è un ARN, simile all'integrazione con l'azione Lambda. Invoke
Ad esempio, per l'integrazione con l'GetBucketazione di Amazon S3, l'URI della richiesta di integrazione è un ARN del seguente formato:
arn:aws:apigateway:
api-region
:s3:path/{bucket}
L'URI della richiesta di integrazione è la convenzione del percorso che specifica l'operazione, dove
è il segnaposto del nome di un bucket. In alternativa, è possibile fare riferimento a un'azione di AWS servizio tramite il relativo nome. Utilizzando il nome dell'operazione, l'URI della richiesta di integrazione per l'operazione {bucket}
GetBucket
di Amazon S3; diventa il seguente:
arn:aws:apigateway:
api-region
:s3:action/GetBucket
Con l'URI della richiesta di integrazione basata sull'operazione, il nome del bucket (
) deve essere specificato nel corpo della richiesta di integrazione ({bucket}
{ Bucket: "
), seguito dal formato di input dell'operazione {bucket}
"
}GetBucket
.
Per AWS le integrazioni, devi anche configurare le credenziali per consentire ad API Gateway di richiamare le azioni integrate. Puoi creare un ruolo IAM o sceglierne uno esistente per consentire ad API Gateway di chiamare l'operazione, quindi specificare il ruolo utilizzando il proprio ARN. Di seguito è illustrato un esempio di questo ARN:
arn:aws:iam::
account-id
:role/iam-role-name
Tale ruolo IAM deve contenere una policy che consenta di eseguire l'operazione. API Gateway deve inoltre essere dichiarata (nella relazione di fiducia del ruolo) come entità affidabile per l'assunzione del ruolo. Tali autorizzazioni possono essere assegnate per l'operazione stessa. Si tratta di autorizzazioni basate sulle risorse. Per l'integrazione Lambda, puoi chiamare l'operazione Lambda addPermission per impostare le autorizzazioni basate sulle risorse, quindi configurare credentials
su null nella richiesta di integrazione di API Gateway.
Abbiamo illustrato la configurazione di integrazione di base. Le impostazioni avanzate prevedono la mappatura dei dati della richiesta di metodo ai dati della richiesta di integrazione. Per ulteriori informazioni, consulta Trasformazioni dei dati per REST APIs in API Gateway.