Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Imposta le variabili di fase per REST APIs in API Gateway

Modalità Focus
Imposta le variabili di fase per REST APIs in API Gateway - 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à.

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

Questa sezione mostra come configurare le variabili di fase per due fasi di implementazione di un'API di esempio utilizzando la console Gateway Amazon API. Per capire come utilizzare le variabili di fase in Gateway API, ti consigliamo di seguire tutte le procedure illustrate in questa sezione.

Prerequisiti

Prima di iniziare, verifica che siano soddisfatti i seguenti requisiti preliminari:

Invocazione di un endpoint HTTP mediante un'API con una variabile di fase

Questa procedura descrive come creare una variabile di fase per un endpoint HTTP e due fasi per l'API. Inoltre, vengono create le variabili di fase url, stageName e function, che vengono utilizzate nelle procedure seguenti di questa sezione.

Per invocare un endpoint HTTP mediante un'API con una variabile di fase
  1. Accedi alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Crea un'API, quindi crea un metodo GET nella risorsa radice dell'API. Imposta il tipo di integrazione su HTTP e imposta l'URL dell'endpoint su http://${stageVariables.url}.

  3. Implementa l'API in una nuova fase denominata beta.

  4. Nel riquadro di navigazione scegli Fasi, quindi seleziona la fase beta.

  5. Nella scheda Variabili di fase scegli Modifica.

  6. Scegli Aggiungi variabile di fase.

  7. Per Nome, immetti url. In Valore, inserisci httpbin.org/get.

  8. Scegli Aggiungi variabile di fase, quindi effettua le seguenti operazioni:

    Per Nome, immetti stageName. In Valore, inserisci beta.

  9. Scegli Aggiungi variabile di fase, quindi effettua le seguenti operazioni:

    Per Nome, immetti function. In Valore, inserisci HelloWorld.

  10. Seleziona Salva.

  11. Ora crea una seconda fase. Dal riquadro di navigazione Fasi scegli Crea fase. In Stage name (Nome fase) immettere prod. Seleziona un'implementazione recente da Implementazione e scegli Crea.

  12. Come per la fase beta, imposta le stesse tre variabili di fase (url, version e function) su valori diversi (rispettivamente petstore-demo-endpoint.execute-api.com/petstore/pets, prod e HelloEveryone).

  13. Nel riquadro di navigazione Stages (Fasi) scegli beta. In Dettagli fase scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API in un browser Web. Viene avviata la richiesta GET della fase beta nella risorsa radice dell'API.

    Nota

    Il collegamento Invoke URL (URL chiamata) punta alla risorsa radice dell'API nella rispettiva fase beta. L'immissione dell'URL in un browser Web chiama il metodo GET della fase beta nella risorsa radice. Se i metodi vengono definiti nelle risorse figlio e non nella risorsa radice stessa, scegliendo l'URL in un browser Web viene restituita la risposta di errore {"message":"Missing Authentication Token"}. In questo caso, devi aggiungere al collegamento Invoke URL (URL chiamata) il nome di una risorsa figlio specifica.

  14. La risposta che si ottiene dalla richiesta GET della fase beta è mostrata più avanti. Puoi verificare il risultato anche utilizzando un browser per accedere a http://httpbin.org/get. Questo valore è stato assegnato alla variabile url nella fase beta. Le due risposte sono identiche.

  15. Nel riquadro di navigazione Stages (Fasi) scegli la fase prod. In Dettagli fase scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API in un browser Web. Viene avviata la richiesta GET della fase prod nella risorsa radice dell'API.

  16. La risposta che si ottiene dalla richiesta GET della fase prod è mostrata più avanti. È possibile verificare il risultato utilizzando un browser per accedere a http://.execute-api. petstore-demo-endpoint com/petstore/pets. Questo valore è stato assegnato alla variabile url nella fase prod. Le due risposte sono identiche.

Passare i metadati specifici della fase in un backend HTTP

Questa procedura descrive come utilizzare un valore di variabile di fase in un'espressione di parametri di query per passare i metadati specifici delle fasi in un back-end HTTP. Utilizzeremo la variabile di fase stageName dichiarata nella procedura precedente.

Per passare metadati specifici della fase in un backend HTTP
  1. Nel riquadro di navigazione Resource (Risorsa) scegli il metodo GET.

    Per aggiungere un parametro della stringa di query all'URL del metodo, seleziona la scheda Richiesta del metodo, quindi nella sezione Impostazioni della richiesta del metodo, scegli Modifica.

  2. Scegli i parametri della stringa di query URL ed effettua le seguenti operazioni:

    1. Scegliere Add query string (Aggiungi stringa di query).

    2. Per Nome, immetti stageName.

    3. Mantieni Obbligatorio e Caching disattivati.

  3. Seleziona Salva.

  4. Scegli la scheda Richiesta di integrazione, quindi seleziona Modifica nella sezione Impostazioni della richiesta di integrazione.

  5. Per URL dell'endpoint aggiungi ?stageName=${stageVariables.stageName} al valore URL definito in precedenza, in modo che sia l'intero URL dell'endpoint sia http://${stageVariables.url}?stageName=${stageVariables.stageName}.

  6. Scegli Implementa API e seleziona la fase beta.

  7. Nel riquadro di navigazione principale scegli Fasi. Nel riquadro di navigazione Stages (Fasi) scegli beta. In Dettagli fase scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API in un browser Web.

    Nota

    Qui usiamo la fase beta perché l'endpoint HTTP (come specificato dalla variabile url, "http://httpbin.org/get") accetta le espressioni dei parametri di query e le restituisce come oggetto args nella rispettiva risposta.

  8. Si ottiene la risposta seguente. beta, assegnato alla variabile di fase stageName, viene passata nel back-end come argomento stageName.

    Risposta dal metodo GET dell'API con un endpoint HTTP utilizzando la variabile di fase url.

Invocare una funzione Lambda attraverso un'API con una variabile di fase

Questa procedura descrive come utilizzare una variabile di fase per chiamare una funzione Lambda come back-end dell'API. Utilizzerai la variabile di fase function dichiarata in Invocazione di un endpoint HTTP mediante un'API con una variabile di fase.

Quando imposti una funzione Lambda come valore di una variabile di fase, usa il nome locale della funzione, se possibile includendo l'alias o la specifica della versione, come in HelloWorld, HelloWorld:1 o HelloWorld:alpha. Non usare l'ARN della funzione (ad esempi, arn:aws:lambda:us-east-1:123456789012:function:HelloWorld). La console API Gateway assume il valore della variabile di fase per una funzione Lambda come nome di funzione non qualificato ed espande la variabile di fase specificata in un ARN.

Per invocare la funzione Lambda mediante un'API con una variabile di fase
  1. Crea una funzione Lambda denominata HelloWorld utilizzando il runtime Node.js predefinito. Il codice deve contenere quanto segue:

    export const handler = function(event, context, callback) { if (event.stageName) callback(null, 'Hello, World! I\'m calling from the ' + event.stageName + ' stage.'); else callback(null, 'Hello, World! I\'m not sure where I\'m calling from...'); };

    Per ulteriori informazioni su come creare una funzione Lambda, consulta Nozioni di base sulla console REST API.

  2. Nel riquadro Risorse seleziona Crea risorsa, quindi procedi come segue:

    1. Per Percorso risorsa, seleziona /.

    2. Per Resource Name (Nome risorsa) immetti lambdav1.

    3. Scegli Crea risorsa.

  3. Scegli la risorsa /lambdav1 e poi scegli Crea metodo.

    Successivamente, esegui queste operazioni:

    1. Per Tipo di metodo seleziona GET.

    2. Per Tipo di integrazione seleziona Funzione Lambda.

    3. Mantieni l'opzione Integrazione proxy Lambda disattivata.

    4. Per Lambda function (Funzione Lambda), immetti ${stageVariables.function}.

      Creazione di un metodo GET integrato con una funzione Lambda come specificato dalla variabile di fase function
      Suggerimento

      Quando richiesto con il comando Aggiungi autorizzazione, copia il comando add-permission. Esegui il comando per ciascuna funzione Lambda che sarà assegnata alla variabile di fase function. Ad esempio, se il valore di $stageVariables.function è HelloWorld, esegui il comando AWS CLI seguente:

      aws lambda add-permission --function-name arn:aws:lambda:us-east-1:account-id:function:HelloWorld --source-arn arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/lambdav1 --principal apigateway.amazonaws.com --statement-id statement-id-guid --action lambda:InvokeFunction

      In caso contrario, riceverai una risposta 500 Internal Server Error quando verrà invocato il metodo. Sostituisci ${stageVariables.function} con il nome della funzione Lambda assegnato alla variabile di fase.

      AWS CLI comando per aggiungere il permesso alla funzione Lambda da invocare dal metodo creato.
    5. Scegli Crea metodo.

  4. Implementa l'API in entrambe le fasi prod e beta.

  5. Nel riquadro di navigazione principale scegli Fasi. Nel riquadro di navigazione Stages (Fasi) scegli beta. In Dettagli fase scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API in un browser Web. Aggiungi /lambdav1 all'URL prima di premere invio.

    Si ottiene la risposta seguente.

    "Hello, World! I'm not sure where I'm calling from..."

Passaggio dei metadati specifici delle fasi a una funzione Lambda mediante una variabile di fase

Questa procedura descrive come utilizzare una variabile di fase per passare i metadata di configurazione specifici delle fasi in una funzione Lambda. Crei un metodo POST e un modello di mappatura di input per generare il payload utilizzando la variabile di fase stageName dichiarata precedentemente.

Per passare i metadati specifici delle fasi a una funzione Lambda mediante una variabile di fase
  1. Scegli la risorsa /lambdav1 e poi scegli Crea metodo.

    Successivamente, esegui queste operazioni:

    1. Per Tipo di metodo seleziona POST.

    2. Per Tipo di integrazione seleziona Funzione Lambda.

    3. Mantieni l'opzione Integrazione proxy Lambda disattivata.

    4. Per Lambda function (Funzione Lambda), immetti ${stageVariables.function}.

    5. Quando richiesto con il comando Aggiungi autorizzazione, copia il comando add-permission. Esegui il comando per ciascuna funzione Lambda che sarà assegnata alla variabile di fase function.

    6. Scegli Crea metodo.

  2. Scegli la scheda Richiesta di integrazione, quindi seleziona Modifica nella sezione Impostazioni della richiesta di integrazione.

  3. Scegli Modelli di mappatura, quindi seleziona Aggiungi modello di mappatura.

  4. Per Tipo di contenuto inserisci application/json.

  5. Per Corpo del modello inserisci il seguente modello:

    #set($inputRoot = $input.path('$')) { "stageName" : "$stageVariables.stageName" }
    Nota

    In un modello di mappatura il riferimento a una variabile di fase deve essere racchiuso tra apici (come in "$stageVariables.stageName" o "${stageVariables.stageName}"), mentre altrove non si devono utilizzare gli apici (come in ${stageVariables.function}).

  6. Seleziona Salva.

  7. Implementa l'API in entrambe le fasi beta e prod.

  8. Per utilizzare un client REST API per passare i metadati specifici della fase, procedi come segue:

    1. Nel riquadro di navigazione Stages (Fasi) scegli beta. In Dettagli fase scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API nel campo di input di un client REST API. Aggiungi /lambdav1 prima di inviare la richiesta.

      Si ottiene la risposta seguente.

      "Hello, World! I'm calling from the beta stage."
    2. Nel riquadro di navigazione Fasi scegli prod. In Dettagli fase scegli l'icona Copia per copiare l'URL di richiamo dell'API, quindi immetti l'URL di richiamo dell'API nel campo di input di un client REST API. Aggiungi /lambdav1 prima di inviare la richiesta.

      Si ottiene la risposta seguente.

      "Hello, World! I'm calling from the prod stage."
  9. Per utilizzare la funzionalità Test per trasmettere i metadati specifici della fase, procedi come segue:

    1. Nel riquadro di navigazione Risorse scegli la scheda Test. Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda.

    2. Per function immetti HelloWorld.

    3. Per stageName immetti beta.

    4. Scegli Test (Esegui test). Non è necessario aggiungere un corpo alla richiesta POST.

      Si ottiene la risposta seguente.

      "Hello, World! I'm calling from the beta stage."
    5. Puoi ripetere i passaggi precedenti per testare la fase Prod. Per stageName immetti Prod.

      Si ottiene la risposta seguente.

      "Hello, World! I'm calling from the prod stage."
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.