Impostazione delle variabili di fase per la distribuzione di un'API REST - 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à.

Impostazione delle variabili di fase per la distribuzione di un'API REST

Le variabili di fase sono coppie nome/valore che è possibile definire come attributi di configurazione associati a una fase di distribuzione di un'API REST. Fungono da variabili di ambiente e possono essere utilizzate nei modelli di mappatura e configurazione dell'API.

Ad esempio, puoi definire una variabile di fase in una configurazione di fase, quindi impostare il rispettivo valore come stringa dell'URL di un'integrazione HTTP per un metodo dell'API REST. Successivamente puoi fare riferimento alla stringa di URL utilizzando il nome della variabile di fase associata dalla configurazione dell'API. In questo modo, puoi utilizzare la stessa configurazione API con un endpoint diverso per ogni fase reimpostando il valore delle variabili di fase negli URL corrispondenti.

Puoi anche accedere alle variabili di fase nei modelli di mappatura o passare i parametri di configurazione ad AWS Lambda o al back-end HTTP.

Per ulteriori informazioni sui modelli di mappatura, consulta Informazioni di riferimento sui modelli di mappatura e sulle variabili di logging degli accessi in API Gateway.

Nota

Le variabili di fase non sono destinate ad essere utilizzate per i dati sensibili, come le credenziali. Per trasferire dati sensibili alle integrazioni, usa un AWS Lambda autorizzatore. È possibile passare dati sensibili alle integrazioni nell'output del provider di autorizzazioni Lambda. Per ulteriori informazioni, consulta Output da un autorizzatore Lambda API Gateway.

Casi d'uso

Con le fasi di distribuzione in API Gateway è possibile gestire più fasi di rilascio per ogni API, come alpha, beta e produzione. Utilizzando le variabili di fase, puoi configurare una fase di distribuzione dell'API per l'interazione con endpoint di back-end diversi.

Ad esempio l'API può passare una richiesta GET come proxy HTTP all'host Web di back-end (ad esempi, http://example.com). In questo caso, l'host web di back-end è configurato in una variabile di fase in modo che, quando gli sviluppatori richiameranno l'endpoint di produzione, API Gateway invochi example.com. Quando si richiama l'endpoint beta, API Gateway usa il valore configurato nella variabile di fase per la fase beta e chiama un host web differente (ad esempi, beta.example.com). Allo stesso modo, le variabili di fase possono essere utilizzate per specificare un nome di AWS Lambda funzione diverso per ogni fase dell'API.

È possibile utilizzare le variabili di fase anche per passare i parametri di configurazione alla funzione Lambda mediante i modelli di mappatura. Ad esempio, potrebbe essere necessario riutilizzare la stessa funzione Lambda per più fasi nell'API, ma la funzione deve leggere i dati da una tabella di Amazon DynamoDB diversa a seconda della fase che viene chiamata. Nei modelli di mappatura che generano la richiesta per la funzione Lambda è possibile usare le variabili di fase per passare il nome della tabella a Lambda.

Esempi

Per usare una variabile di fase per personalizzare l'endpoint di integrazione HTTP, devi prima configurare una variabile di fase di un nome specificato (ad esempio, url), quindi assegnarle un valore (ad esempio, example.com). Successivamente, dalla configurazione del metodo, imposta un'integrazione proxy HTTP. Anziché inserire l'URL dell'endpoint, è possibile comunicare ad API Gateway di usare il valore della variabile di fase, ossi, http://${stageVariables.url}. Questo valore indica ad API Gateway di sostituire la variabile di fase ${} al runtime, a seconda della fase di esecuzione dell'API.

È possibile fare riferimento alle variabili di fase in modo simile per specificare il nome di una funzione Lambda, un percorso AWS Service Proxy o un AWS ARN di ruolo nel campo delle credenziali.

Quando si specifica un nome di funzione Lambda come valore della variabile di fase, è necessario configurare manualmente le autorizzazioni per la funzione Lambda. Quando specifichi una funzione Lambda nella console API Gateway, verrà visualizzato un AWS CLI comando per configurare le autorizzazioni appropriate. A tale scopo, puoi anche usare il AWS Command Line Interface comando (AWS CLI).

aws lambda add-permission --function-name "arn:aws:lambda:us-east-2:123456789012:function:my-function" --source-arn "arn:aws:execute-api:us-east-2:123456789012:api_id/*/HTTP_METHOD/resource" --principal apigateway.amazonaws.com --statement-id apigateway-access --action lambda:InvokeFunction