Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Hoewel veel Azure-services Jenkins-invoegtoepassingen hebben, beëindigden de meeste van deze invoegtoepassingen vanaf 29 februari 2024 de ondersteuning. Azure CLI is momenteel de aanbevolen manier om Jenkins te integreren met Azure-services. Raadpleeg het artikel Jenkins-invoegtoepassingen voor Azurevoor meer informatie.
Azure Functions is een serverloze rekenservice. Met Behulp van Azure Functions kunt u code op aanvraag uitvoeren zonder infrastructuur in te richten of te beheren. Deze zelfstudie laat zien hoe u een Java-functie implementeert in Azure Functions met behulp van de Azure Functions-invoegtoepassing.
Vereiste voorwaarden
- Azure-abonnement: als u nog geen abonnement op Azure hebt, maakt u een gratis Azure-account aan voordat u begint.
- Jenkins-server: Als u geen Jenkins-server hebt geïnstalleerd, raadpleegt u het artikel Een Jenkins-server maken in Azure.
De broncode weergeven
De broncode die voor deze zelfstudie wordt gebruikt, bevindt zich in de GitHub-opslagplaats van Visual Studio China.
Een Java-functie maken
Als u een Java-functie wilt maken met de Java Runtime-stack, gebruikt u De Azure-portal of de Azure CLI.
In de volgende stappen ziet u hoe u een Java-functie maakt met behulp van de Azure CLI:
Maak een resourcegroep en vervang de tijdelijke aanduiding resource_group< door de> naam van uw resourcegroep.
az group create --name <resource_group> --location eastusMaak een Azure-opslagaccount en vervang de tijdelijke aanduidingen door de juiste waarden.
az storage account create --name <storage_account> --location eastus --resource-group <resource_group> --sku Standard_LRSMaak de testfunctie-app en vervang de tijdelijke aanduidingen door de juiste waarden.
az functionapp create --resource-group <resource_group> --runtime java --consumption-plan-location eastus --name <function_app> --storage-account <storage_account> --functions-version 2
Jenkins-server voorbereiden
In de volgende stappen wordt uitgelegd hoe u de Jenkins-server voorbereidt:
Implementeer een Jenkins-server in Azure. Als u nog geen exemplaar van de Jenkins-server hebt geïnstalleerd, begeleidt het artikel Create a Jenkins server on Azure u door het proces.
Meld u met SSH aan bij het Jenkins-exemplaar.
Installeer Az CLI, versie 2.0.67 of hoger op het Jenkins-exemplaar.
Installeer Maven met behulp van de volgende opdracht:
sudo apt install -y mavenInstalleer op het Jenkins-exemplaar de Azure Functions Core Tools door de volgende opdrachten uit te geven bij een terminalprompt:
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-3Jenkins heeft een Azure-service-principal nodig om Azure-resources te verifiëren en te openen. Raadpleeg de handleiding Implementeren in Azure App Service voor stapsgewijze instructies.
Zorg ervoor dat de Referentieplug-in is geïnstalleerd.
Selecteer in het menu Jenkins-beheren.
Selecteer onder Systeemconfiguratie de optie Invoegtoepassing Beheren.
Selecteer het tabblad Geïnstalleerd .
Voer in het filterveld in
credentials.Controleer of de invoegtoepassing Authenticatiegegevens is geïnstalleerd. Zo niet, dan moet u deze installeren vanaf het tabblad Beschikbaar .
Selecteer in het menu Jenkins-beheren.
Selecteer Onder Beveiliging de optie Referenties beheren.
Selecteer (globaal) onder Referenties.
Selecteer Referenties toevoegen in het menu.
Voer de volgende waarden in voor uw Microsoft Azure-service-principal:
- Soort: Selecteer de waarde: Gebruikersnaam met wachtwoord.
-
Gebruikersnaam: Specificeer de
appIdvan de aangemaakte service-principal. -
Wachtwoord: geef het
password(geheim) van de service-principal op. -
Id: Geef de referentie-id op, zoals
azuresp.
Kies OK.
De GitHub-voorbeeldopslagplaats splitsen
Log in bij de GitHub-opslagplaats voor de oneven of even voorbeeldapplicatie.
Kies Fork in de rechterbovenhoek in GitHub.
Volg de aanwijzingen om uw GitHub-account te selecteren en de forking te voltooien.
Een Jenkins-pijplijn maken
In deze sectie maakt u de Jenkins-pijplijn.
Maak een pijplijn in het Jenkins-dashboard.
Schakel Een omgeving voorbereiden in voor de uitvoering.
Selecteer in de sectie Pijplijndefinitie>het pijplijnscript in SCM.
Voer de URL en het scriptpad van uw GitHub-fork in ('doc/resources/jenkins/JenkinsFile') voor gebruik in het JenkinsFile-voorbeeld.
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' } } }
Bouwen en implementeren
Het is nu tijd om de Jenkins-taak uit te voeren.
Haal eerst de autorisatiesleutel op via de instructies in het artikel HTTP-triggers en bindingen van Azure Functions .
Voer in uw browser de URL van de app in. Vervang de tijdelijke aanduidingen door de juiste waarden en geef een numerieke waarde op voor <input_number> als invoer voor de Java-functie.
https://<function_app>.azurewebsites.net/api/HttpTrigger-Java?code=<authorization_key>&number=<input_number>U ziet resultaten die vergelijkbaar zijn met de volgende voorbeelduitvoer (waarbij een oneven getal - 365 - als test is gebruikt):
The number 365 is Odd.
De hulpbronnen opschonen
Als u deze toepassing niet wilt blijven gebruiken, verwijdert u de resources die u hebt gemaakt met de volgende stap:
az group delete -y --no-wait -n <resource_group>