Eseguire e testare una funzione di Azure in locale
Nell'esercizio precedente è stato creato un progetto di funzione di Azure usando un archetipo Maven di Azure. L'attività successiva sarà compilare la funzione ed eseguirla localmente per verificarne il funzionamento.
In questa unità viene illustrata la suite Azure Functions Core Tools, che consente di eseguire e testare le funzioni in locale. Si apprende anche come aprire una porta HTTP per i test, come eseguire la funzione in Cloud Shell e come testare la funzione in un Web browser.
Informazioni su Azure Functions Core Tools
Azure Functions Core Tools è una suite di utilità per la compilazione e il test delle funzioni di Azure in locale usando un emulatore di terminale o un prompt dei comandi. Anche se le funzioni di Azure create vengono eseguite in locale, possono accedere ai servizi attivi di Azure durante i test. Completati i test, quando la funzione è pronta per la pubblicazione, è possibile distribuire l'applicazione per le funzioni nella sottoscrizione di Azure.
Al momento sono disponibili tre versioni di Azure Functions Core Tools. Tuttavia, come regola generale, a meno che non sia specificamente richiesto l'uso di una versione precedente, è consigliabile usare sempre la versione più recente quando si sviluppano funzioni per la distribuzione in Azure. Per questo modulo si usa Azure Cloud Shell nella sandbox Learn, che include la versione più recente di Azure Functions Core Tools.
Nota
Se è stato usato l'account Azure personale anziché Cloud Shell nella sandbox Learn, è necessario consultare l'articolo relativo all'uso di Azure Functions Core Tools per le descrizioni, i requisiti e le istruzioni di installazione per le diverse versioni di Azure Functions Core Tools.
Configurazione dell'ambiente Cloud Shell per l'esecuzione dei test
Quando si testa un'applicazione basata sul Web che viene eseguita in Cloud Shell, esistono due modi diversi di testare l'applicazione:
È possibile usare Cloud Shell per aprire una porta esterna per i test, che indirizza le richieste HTTP alla porta localhost dell'istanza di Cloud Shell:
Per aprire la porta 7071 da Cloud Shell, usare il comando cURL seguente:
curl -X POST http://localhost:8888/openPort/7071
Al termine del test, usare il comando cURL seguente per chiudere la porta:
curl -X POST http://localhost:8888/closePort/7071
È possibile aprire più istanze di Cloud Shell per testare l'applicazione in locale:
Eseguire l'applicazione nella prima istanza.
Usare cURL per testare l'applicazione dalla seconda istanza.
Nell'esercizio successivo viene usato il primo metodo per aprire una porta.
Esecuzione della funzione in Cloud Shell
Dopo l'apertura di una porta per i test, l'attività successiva consiste nel compilare ed eseguire la funzione. A tale scopo, seguire questa procedura:
In Cloud Shell cambiare directory passando alla cartella radice del progetto.
Per compilare l'applicazione, usare il comando Maven seguente:
mvn clean package
Per eseguire l'applicazione, usare il comando Maven seguente:
mvn azure-functions:run
Mentre Maven prepara l'ambiente di runtime per la funzione, viene visualizzato il logo di Azure Functions Core Tools:
Completati i test, usare il comando CTRL+C da Azure Cloud Shell per arrestare il server.
Test della funzione con le richieste HTTP
In questo modulo si usa una singola istanza di Cloud Shell. Di conseguenza, è necessario testare l'applicazione aprendo una nuova scheda nel Web browser. Nella barra degli indirizzi del browser immettere un URL simile all'esempio che segue:
https://gateway.westus.console.azure.com/n/cc-12345678/cc-12345678/proxy/7071/api/HttpExample?name=Bob
Se tuttavia si usano più istanze di Cloud Shell, è possibile usare il comando cURL seguente per testare l'applicazione da un'istanza separata della shell:
curl http://localhost:7071/api/HttpExample?name=Bob
Nell'esercizio successivo si userà quanto appreso in questa unità. Aprire una porta di test, eseguire la funzione in Cloud Shell e determinare l'URL da usare per testare la funzione da un Web browser.