Esercizio - Distribuire una funzione in Azure
Ora che si è appreso come creare e distribuire le funzioni in Azure, è il momento di mettere in pratica la teoria.
In questo esercizio si apprende come si configura la funzione per la distribuzione in Funzioni di Azure. Si usa quindi Maven per distribuire la funzione e si esegue il test della funzione nel cloud.
Configurare il progetto di funzione per la distribuzione
Prima di poter essere distribuita in Azure, è necessario apportare alcune modifiche all'applicazione per le funzioni. La procedura seguente illustra come aggiornare il progetto per la distribuzione.
Determinare l'area per il gruppo di risorse sandbox:
Usare il nome del gruppo di risorse creato automaticamente quando si è attivata la sandbox per recuperare l'area in cui si trova il gruppo di risorse:
az group show --name "<rgn>[sandbox resource group name]</rgn>" | jq -r '.location'
Copiare il nome dell'area visualizzata per l'uso nei passaggi seguenti.
Modificare il file pom.xml per aggiornare le impostazioni:
In Azure Cloud Shell passare alla cartella radice dell'applicazione. Ad esempio:
cd ~/event-reporting
Aprire pom.xml nell'editor di codice di Cloud Shell.
code pom.xml
Individuare l'ID artefatto seguente:
<artifactId>azure-functions-maven-plugin</artifactId>
Nella sezione
<configuration>
che segue individuare l'elemento<resourceGroup>
e aggiornarlo con il nome del gruppo di risorse. Ad esempio:<resourceGroup><rgn>[sandbox resource group name]</rgn></resourceGroup>
Individuare l'elemento
<region>
e aggiornarlo con il nome dell'area in cui si trova il gruppo di risorse. Ad esempio:<region>westus</region>
Premere CTRL+S per salvare il file pom.xml e quindi CTRL+Q per chiudere l'editor di codice.
Distribuire la funzione di Azure
Dopo aver configurato la funzione per la distribuzione, il passaggio successivo è distribuirla in Funzioni di Azure.
In Azure Cloud Shell passare alla cartella radice dell'applicazione. Ad esempio:
cd ~/event-reporting
Usare il comando seguente per compilarla e distribuirla in Funzioni di Azure:
mvn clean package azure-functions:deploy
Maven visual lo stato attuale della distribuzione. Ad esempio:
[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Azure Java Functions 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- azure-functions-maven-plugin:1.4.1:deploy (default-cli) @ event-reporting --- [INFO] Auth Type : AZURE_CLI [INFO] Subscription : Concierge Subscription(12345678-1234-1234-1234-123456789abc) [INFO] The specified function app does not exist. Creating a new function app... [INFO] Set function worker runtime to java. [INFO] Successfully created the function app: event-reporting-20240125192009873. [INFO] Trying to deploy the function app... [INFO] Trying to deploy artifact to event-reporting-20240125192009873... [INFO] Successfully deployed the artifact to https://event-reporting-20240125192009873.azurewebsites.net [INFO] Deployment done, you may access your resource through event-reporting-20240125192009873.azurewebsites.net [INFO] Syncing triggers and fetching function information [INFO] Querying triggers... [INFO] HTTP Trigger Urls: [INFO] HttpExample : https://event-reporting-20240125192009873.azurewebsites.net/api/httpexample [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:01 min [INFO] Finished at: 2024-01-25T20:12:04Z [INFO] ------------------------------------------------------------------------
Recupero dell'URL della funzione di Azure usando il portale
Tenere presente che nell'esercizio completato in un'unità precedente era richiesta la creazione dell'URL per testare la funzione in un Web browser. Esiste tuttavia un metodo molto più semplice per recuperare l'URL per la funzione di Azure usando il portale di Azure. A tale scopo, seguire questa procedura.
Accedere al portale di Azure con lo stesso account usato per attivare la sandbox.
Selezionare Tutte le risorse dal menu a sinistra.
Selezionare l'app per le funzioni nell'elenco delle risorse. Per questo esercizio il nome dell’app per le funzioni inizia con event-reporting. Ad esempio:
event-reporting-20240125192009873
Questo nome
function app
corrisponde a quello indicato nella risposta della distribuzione descritta in precedenza in questo esercizio.Nella pagina Panoramicaper l'app per le funzioni, nella scheda Funzioni, selezionare la funzione HttpExample. Verrà visualizzata la pagina Panoramica per la funzione.
Nella parte superiore della pagina della funzione selezionare Recupera URL della funzione. Copiare l'URL completamente costruito della funzione. Ad esempio:
https://event-reporting-20240125192009873.azurewebsites.net/api/HttpExample
Questo URL verrà usato nella sezione successiva di questo esercizio.
Testare la funzione di Azure nel portale
Ora che la funzione è stata distribuita in Azure, tutto ciò che è necessario per testare la funzione in un Web browser consiste nell'accodare una stringa di query alla fine dell'URL come è stato fatto negli esercizi precedenti.
Costruire l'URL per l'API della funzione:
Recuperare l'URL copiato nella sezione Recupero dell'URL della funzione di Azure usando il portale di questo esercizio, ad esempio:
https://event-reporting-20240125192009873.azurewebsites.net/api/HttpExample
Accodare una stringa di query che passa un nome all'URL dell'API, ad esempio:
https://event-reporting-20240125192009873.azurewebsites.net/api/HttpExample?name=Bob
Copiare questo URL completamente costruito per usarlo nei passaggi successivi.
Aprire una nuova scheda nel Web browser e incollare l'URL completamente costruito dai passaggi precedenti nel campo dell'indirizzo.
Quando si indica al Web browser di richiedere l'URL, viene visualizzato un messaggio di testo non crittografato restituito al Web browser, personalizzato per il nome passato nella stringa di query. Ad esempio:
Hello, Bob
Congratulazioni, la distribuzione e il test della funzione in Azure sono stati completati.