Esercizio: Creare una nuova API in Gestione API da un'app per le funzioni

Completato

Per presentare le funzioni di Azure agli utenti come parti di una singola API, è possibile aggiungerle a Gestione API di Azure.

Nella società del negozio online gli sviluppatori hanno creato più Funzioni di Azure come microservizi. Ogni funzione implementa una piccola parte della funzionalità del negozio. Si vuole assemblare queste funzioni in un'unica API.

In questo esercizio si crea una nuova istanza di Gestione API e quindi si aggiunge una funzione Dettagli prodotto.

Creare funzioni

Nei passaggi seguenti si aggiunge un'app per le funzioni di Azure ad Azure Gestione API. Successivamente, si aggiunge una seconda app per le funzioni alla stessa istanza di Gestione API per creare una singola API serverless da più funzioni. Iniziare usando uno script per creare le funzioni:

  1. Per clonare il progetto delle funzioni, eseguire il comando seguente in Azure Cloud Shell a destra.

    git clone https://github.com/MicrosoftDocs/mslearn-apim-and-functions.git ~/OnlineStoreFuncs
    
  2. Eseguire i comandi seguenti in Cloud Shell per configurare le risorse di Azure necessarie per questo esercizio.

    cd ~/OnlineStoreFuncs
    bash setup.sh
    

    Lo setup.sh script crea le due app per le funzioni nel gruppo di risorse sandbox attivate per questo modulo. Come illustrato nell'immagine seguente, ogni app ospita una singola funzione: OrderDetails e ProductDetails. Lo script configura anche un account di archiviazione per le funzioni. Le funzioni hanno entrambe gli URL nel dominio azurewebsites.net. I nomi delle funzioni includono numeri casuali per l'univocità. Il completamento dello script richiede alcuni minuti.

    Diagram illustrating the results of the setup.sh script and how the functions relate to the overall application's design.

Testare la funzione ProductDetails

A questo punto è possibile testare la funzione ProductDetails per verificarne il funzionamento prima di aggiungerla a Gestione API.

  1. Accedere al portale di Azure con lo stesso account usato per attivare la sandbox.

  2. Nel menu del portale di Azure o nella home page selezionare Tutte le risorse. Viene visualizzato il riquadro Tutte le risorse.

  3. Selezionare l'app per le funzioni il cui nome inizia con ProductFunction. Viene visualizzato il riquadro App per le funzioni con la scheda Panoramica selezionata.

    Screenshot of menu selections to open ProductDetails function.

  4. Nell'elenco delle funzioni dell'app per le funzioni selezionare ProductDetails. Viene visualizzato il riquadro Funzione ProductDetails.

  5. Nel menu Dettaglio prodotto, in Sviluppatore selezionare Codice e test. Viene visualizzato il riquadro Codice e test per la funzione ProductDetails, che mostra il contenuto del file function.json.

    Screenshot of the ProductDetails Code and Test pane, with Test/Run selected in the command bar.

  6. Nella barra dei comandi selezionare Test/Esegui. Viene visualizzato il riquadro Input/Output per il test della richiesta HTTP.

  7. Nella scheda Input, nell'elenco a discesa del campo Metodo HTTP selezionare GET.

  8. In Query selezionare Aggiungi parametro

  9. Nel campo Nome immettere ID e nel campo Valore immettere 3, quindi selezionare Esegui.

    Screenshot of the input pane for Test + Run, with the input parameter for the HTTP GET method highlighted.

  10. Viene visualizzato un riquadro di log per connettere la richiesta. La scheda Output visualizza il codice di risposta HTTP (200 OK) e il contenuto per l'elemento 3 nel database.

    Screenshot of the output of a pane for Test + Run with response results of running the GET method.

    Facoltativamente è anche possibile testare la funzione immettendo i valori ID 1 e 2.

  11. Selezionare Chiudi per chiudere le schede Input Output per Codice e test.

  12. Nella barra dei comandi del riquadro Codice ProductDetails + Test selezionare Ottieni URL funzione. Si noti che il sottodominio dell'URL è il nome dell'app per le funzioni, seguito dal dominio azurewebsites.net.

Nota

È possibile usare questo URL per testare la funzione nel browser. L'URL richiede un input; aggiungere la stringa di query &id=1 per richiedere i dettagli sul primo elemento nella raccolta di prodotti.

Esporre l'app per le funzioni come API usando Gestione API di Azure

Dopo aver distribuito e testato l'app per le funzioni, è possibile esportarla come API usando Azure Gestione API in modo che possa essere chiamata da altre app e servizi.

  1. Nel menu delle risorse selezionare Tutte le risorse. Viene visualizzato il riquadro Tutte le risorse.

  2. Ordinare l'elenco di risorse in base al tipo. Si noti che si dispone di un'app OrderFunction e di un'app ProductFunction.

  3. Selezionare l'app per le funzioni ProductFunction.

  4. Nel menu App per le funzioni scorrere fino alla categoria API e quindi selezionare Gestione API. Viene visualizzato il riquadro Gestione API relativo all'app per le funzioni ProductFunction.

    Screenshot showing menu selection to open the API Management app service.

  5. Nel campo Gestione API selezionare Crea nuovo. Viene visualizzato il riquadro Installa gateway di Gestione API.

    Screenshot showing settings for an API Management service.

  6. Immettere i seguenti valori per ogni impostazione.

    Impostazione Valore
    Subscription Concierge Subscription
    Gruppo di risorse [nome gruppo di risorse sandbox]
    Region Scegliere una località che supporti il piano a consumo: Stati Uniti occidentali, Stati Uniti centro-settentrionali, Europa occidentale, Europa settentrionale, Asia sud-orientale, Australia orientale
    Nome risorsa OnlineStore
    Nome organizzazione OnlineStore
    Indirizzo di posta elettronica dell'amministratore Immettere un indirizzo di posta elettronica.
    Piano tariffario Consumo (contratto di servizio del 99,95%)
  7. Selezionare Avanti: Monitoraggio e deselezionare l'opzione Application Insights.

  8. Selezionare Rivedi e crea. Al termine della convalida, selezionare Crea per creare un'istanza di Gestione API collegata. Attendere alcuni minuti per il completamento dell'esportazione.

  9. Quando viene distribuita l'istanza di Gestione API, selezionare Collega API.

    Screenshot of API Management highlighting the Link API button.

    Viene visualizzato il riquadro del servizio Gestione API Importa funzioni di Azure con la funzione ProductDetails evidenziata.

    Screenshot showing the Import Azure Functions API Management service pane.

  10. Selezionare Seleziona per continuare. Viene visualizzata la finestra di dialogo Crea da app per le funzioni.

    Screenshot showing the Create from Function app dialog box.

  11. Modificare il valore Suffisso dell'URL dell'API in products e quindi selezionare Crea. Azure crea l'API per la funzione ProductDetails. Viene visualizzata la scheda Progetto del riquadro Gestione API per l'app per le funzioni.

Questo esercizio mostra che è possibile definire l'API dal servizio App per le funzioni di Azure.

Testare l'endpoint prodotti del negozio online

È ora disponibile un'API ProductDetails nell'istanza di Gestione API creata. È ora necessario testare l'API con gli strumenti di Gestione API in Azure.

  1. Nel riquadro Gestione API dell'app per le funzioni selezionare la scheda Test. Le operazioni disponibili per l'API vengono visualizzate nella colonna a sinistra.

  2. Selezionare GET ProductDetails. Viene visualizzato il riquadro Console ProductDetails.

  3. In Parametri di query selezionare Aggiungi parametro.

    Screenshot showing ProductDetails Console with query parameter values highlighted for the GET HTTP request.

  4. Nel campo NOME immettere id e nel campo VALORE immettere 1, quindi selezionare Invia per generare una richiesta GET.

    La sezione Risposta HTTP della console include due schede, Messaggio e Traccia. La scheda Messaggio viene popolata con la risposta HTTP. I dettagli del prodotto vengono visualizzati in formato JSON alla fine della risposta. Scorrere verso l'alto fino alla sezione Richiesta HTTP e notare il formato della richiesta. La richiesta è stata inviata a una destinazione all'interno del dominio azure-api.net. Questa posizione è diversa dalla posizione nel dominio azurewebsites.net in cui è ospitata l'app per le funzioni. È possibile testare questa API con altri parametri di query, ad esempio id=2 o id=3.

    Screenshot showing the **Http request** and **HTTP response** message.