Eventi
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Importante
Molti servizi di Azure dispongono di plug-in Jenkins. Alcuni di questi plug-in non saranno supportati a partire dal 29 febbraio 2024. L'interfaccia della riga di comando di Azure è il modo attualmente consigliato per integrare Jenkins con i servizi di Azure. Per altre informazioni, vedere l'articolo Plug-in Jenkins per Azure.
Funzioni di Azure è un servizio di calcolo senza server. Usando Funzioni di Azure è possibile eseguire codice on demand senza provisioning o gestione dell'infrastruttura. Questa esercitazione mostra come distribuire una funzione Java in Funzioni di Azure tramite il plug-in per Funzioni di Azure.
Il codice sorgente usato per questa esercitazione si trova nel repository GitHub Visual Studio China.
Per creare una funzione Java con lo stack di runtime Java, usare il portale di Azure o l'interfaccia della riga di comando di Azure.
La procedura seguente mostra come creare una funzione Java tramite l'interfaccia della riga di comando di Azure:
Creare un gruppo di risorse, sostituendo il <segnaposto resource_group> con il nome del gruppo di risorse.
az group create --name <resource_group> --location eastus
Creare un account di archiviazione di Azure, sostituendo i segnaposto con i valori appropriati.
az storage account create --name <storage_account> --location eastus --resource-group <resource_group> --sku Standard_LRS
Creare l'app per le funzioni di test, sostituendo i segnaposto con i valori appropriati.
az functionapp create --resource-group <resource_group> --runtime java --consumption-plan-location eastus --name <function_app> --storage-account <storage_account> --functions-version 2
La procedura seguente descrive come preparare il server Jenkins:
Distribuire un server Jenkins in Azure. Se non è già installata un'istanza del server Jenkins, l'articolo Creare un server Jenkins in Azure descrive in modo dettagliato questo processo.
Accedere all'istanza di Jenkins con SSH.
Nelll'istanza di Jenkins installare l'interfaccia della riga di comando di Azure versione 2.0.67 o successiva.
Installare Maven usando il comando seguente:
sudo apt install -y maven
Nell'istanza di Jenkins installare Azure Functions Core Tools eseguendo i comandi seguenti da un prompt del terminale:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs)-prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list'
cat /etc/apt/sources.list.d/dotnetdev.list
sudo apt-get update
sudo apt-get install azure-functions-core-tools-3
Jenkins richiede un'entità servizio di Azure per l'autenticazione e l'accesso alle risorse di Azure. Per istruzioni dettagliate, fare riferimento a Eseguire la distribuzione in Servizio app di Azure.
Assicurarsi che il plug-in Credenziali sia installato.
Nel menu selezionare Manage Jenkins (Gestisci Jenkins).
In Configurazione di sistema selezionare Gestisci plug-in.
Selezionare la scheda Installati.
Nel campo del filtro immettere credentials
.
Verificare che il plug-in Credentials sia installato. Se non lo è, occorre installarlo dalla scheda Available (Disponibili).
Nel menu selezionare Manage Jenkins (Gestisci Jenkins).
In Security (Sicurezza) selezionare Manage Credentials (Gestisci credenziali).
In Credentials (Credenziali) selezionare (global).
Scegliere Add Credentials (Aggiungi credenziali) dal menu.
Immettere i valori seguenti per l'entità servizio di Microsoft Azure:
appId
dell'entità servizio creata.password
segreto dell'entità servizio.azuresp
.Seleziona OK.
Accedere al repository GitHub per l'app di esempio odd-or-even.
Nell'angolo superiore destro in GitHub scegliere Fork.
Seguire le istruzioni per selezionare l'account GitHub e completare la creazione di una copia tramite fork.
In questa sezione viene creata la pipeline Jenkins.
Nel dashboard di Jenkins creare una pipeline.
Selezionare Prepare an environment for the run (Preparare un ambiente per l'esecuzione).
Nella sezione Pipeline-Definition> (Definizione pipeline) selezionare Pipeline script from SCM (Script pipeline da SCM).
Immettere il percorso dello script e l'URL del fork di GitHub ("doc/resources/jenkins/JenkinsFile") da usare nell'esempio JenkinsFile.
node {
withEnv(['AZURE_SUBSCRIPTION_ID=99999999-9999-9999-9999-999999999999',
'AZURE_TENANT_ID=99999999-9999-9999-9999-999999999999']) {
stage('Init') {
cleanWs()
checkout scm
}
stage('Build') {
sh 'mvn clean package'
}
stage('Publish') {
def RESOURCE_GROUP = '<resource_group>'
def FUNC_NAME = '<function_app>'
// login Azure
withCredentials([usernamePassword(credentialsId: 'azuresp', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
sh '''
az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID
az account set -s $AZURE_SUBSCRIPTION_ID
'''
}
sh 'cd $PWD/target/azure-functions/odd-or-even-function-sample && zip -r ../../../archive.zip ./* && cd -'
sh "az functionapp deployment source config-zip -g $RESOURCE_GROUP -n $FUNC_NAME --src archive.zip"
sh 'az logout'
}
}
}
È ora possibile eseguire il processo Jenkins.
Prima di tutto, ottenere la chiave di autorizzazione tramite le istruzioni contenute nell'articolo Trigger e associazioni HTTP di Funzioni di Azure.
Nel browser immettere l'URL dell'app. Sostituire i segnaposto con i valori appropriati e specificare un valore numerico per <input_number> come input per la funzione Java.
https://<function_app>.azurewebsites.net/api/HttpTrigger-Java?code=<authorization_key>&number=<input_number>
Verranno visualizzati risultati simili all'output di esempio seguente (in cui è stato usato un numero dispari, 365, come test):
The number 365 is Odd.
Se non si intende continuare a usare questa applicazione, eliminare le risorse associate seguendo questa procedura:
az group delete -y --no-wait -n <resource_group>
Eventi
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoFormazione
Modulo
Automatizzare le distribuzioni di Funzioni di Azure con Azure Pipelines - Training
Implementare una pipeline CI/CD con Azure Pipelines per Funzioni di Azure.
Certificazione
Microsoft Certified: Azure Developer Associate - Certifications
Progettare soluzioni end-to-end in Microsoft Azure per creare Funzioni di Azure, implementare e gestire app Web, sviluppare soluzioni che usano Archiviazione di Azure e altro ancora.
Documentazione
Distribuire app in App Spring di Azure usando Jenkins e l'interfaccia della riga di comando di Azure
Informazioni su come usare l'interfaccia della riga di comando di Azure in una pipeline di integrazione continua e distribuzione per distribuire microservizi nel servizio Azure Spring Apps
Eseguire la distribuzione in macchine virtuali Linux con Jenkins e Azure DevOps Services
Informazioni su come facilitare l'integrazione e la distribuzione continue (CI/CD) per distribuire app in macchine virtuali Linux con Jenkins e Azure DevOps Services