Oktatóanyag: Üzembe helyezés az Azure Functionsben a Jenkins használatával
Fontos
Számos Azure-szolgáltatás rendelkezik Jenkins beépülő modulokkal. Ezen beépülő modulok némelyike 2024. február 29-étől nem támogatott. A Jenkins azure-szolgáltatásokkal való integrálásának jelenleg az Azure CLI az ajánlott módja. További információ: Jenkins beépülő modulok az Azure-hoz.
Az Azure Functions egy kiszolgáló nélküli számítási szolgáltatás. Az Azure Functions használatával igény szerint futtathat kódot infrastruktúra kiépítése és kezelése nélkül. Ez az oktatóanyag bemutatja, hogyan helyezhet üzembe Java-függvényeket az Azure Functionsben az Azure Functions beépülő modul használatával.
Előfeltételek
- Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.
- Jenkins-kiszolgáló: Ha nincs telepítve Jenkins-kiszolgáló, tekintse meg a Jenkins-kiszolgáló létrehozása az Azure-ban című cikket.
A forráskód megtekintése
Az oktatóanyaghoz használt forráskód a Visual Studio China GitHub-adattárban található.
Java-függvény létrehozása
Ha Java-függvényt szeretne létrehozni a Java-futtatókörnyezeti verem használatával, használja az Azure Portalt vagy az Azure CLI-t.
Az alábbi lépések bemutatják, hogyan hozhat létre Java-függvényt az Azure CLI használatával:
Hozzon létre egy erőforráscsoportot, és cserélje le a <resource_group> helyőrzőt az erőforráscsoport nevére.
az group create --name <resource_group> --location eastus
Hozzon létre egy Azure Storage-fiókot, és cserélje le a helyőrzőket a megfelelő értékekre.
az storage account create --name <storage_account> --location eastus --resource-group <resource_group> --sku Standard_LRS
Hozza létre a tesztfüggvény-alkalmazást, és cserélje le a helyőrzőket a megfelelő értékekre.
az functionapp create --resource-group <resource_group> --runtime java --consumption-plan-location eastus --name <function_app> --storage-account <storage_account> --functions-version 2
Jenkins-kiszolgáló előkészítése
A következő lépések a Jenkins-kiszolgáló előkészítését ismertetik:
Jenkins-kiszolgáló üzembe helyezése az Azure-ban. Ha még nincs telepítve a Jenkins-kiszolgáló egy példánya, a Jenkins-kiszolgáló létrehozása az Azure-ban című cikk végigvezeti a folyamaton.
Jelentkezzen be a Jenkins-példányba SSH-val.
A Jenkins-példányon telepítse az Az CLI 2.0.67-es vagy újabb verzióját.
Telepítse a mavent a következő paranccsal:
sudo apt install -y maven
A Jenkins-példányon telepítse az Azure Functions Core Toolst a következő parancsok kiadásával egy terminálüzenetben:
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
A Jenkinsnek szüksége van egy Azure-szolgáltatásnévre az Azure-erőforrások hitelesítéséhez és eléréséhez. Részletes útmutatásért tekintse meg az Üzembe helyezés Azure-alkalmazás szolgáltatásban című témakört.
Győződjön meg arról, hogy a Hitelesítő adatok beépülő modul telepítve van.
A menüben válassza a Jenkins kezelése lehetőséget.
A Rendszerkonfiguráció területen válassza a Beépülő modul kezelése lehetőséget.
Válassza a Telepített lapot.
A szűrőmezőbe írja be a következőt
credentials
:Ellenőrizze, hogy telepítve van-e a Hitelesítő adatok beépülő modul. Ha nem, az Elérhető lapról kell telepítenie.
A menüben válassza a Jenkins kezelése lehetőséget.
A Biztonság területen válassza a Hitelesítő adatok kezelése lehetőséget.
A Hitelesítő adatok csoportban válassza a (globális) lehetőséget.
A menüben válassza a Hitelesítő adatok hozzáadása lehetőséget.
Adja meg a Következő értékeket a Microsoft Azure szolgáltatásnévhez:
- Típus: Válassza ki az értéket: Felhasználónév jelszóval.
- Felhasználónév: Adja meg a
appId
létrehozott szolgáltatásnév nevét. - Jelszó: Adja meg a
password
szolgáltatásnév titkos kódját. - Azonosító: Adja meg a hitelesítő azonosítót, például
azuresp
.
Kattintson az OK gombra.
A minta GitHub-adattár elágazása
Jelentkezzen be a GitHub-adattárba a páratlan vagy akár mintaalkalmazáshoz.
A GitHub jobb felső sarkában válassza az Elágazás lehetőséget.
Az utasításokat követve válassza ki a GitHub-fiókját, és fejezze be az elágaztatást.
Jenkins-folyamat létrehozása
Ebben a szakaszban a Jenkins-folyamatot hozza létre.
A Jenkins-irányítópulton hozzon létre egy folyamatot.
Környezet előkészítése a futtatáshoz.
A Pipeline-Definition (Folyamatdefiníció) szakaszban válassza a Pipeline script from SCM (Folyamatszkript az SCM-ből>) lehetőséget.
Adja meg a GitHub-elágaztatás URL-címét és szkriptútvonalát ("doc/resources/jenkins/JenkinsFile") a JenkinsFile-példában való használathoz.
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' } } }
Létrehozás és üzembe helyezés
Itt az ideje, hogy lefuttassa a Jenkins-feladatot.
Először szerezze be az engedélyezési kulcsot az Azure Functions HTTP-eseményindítók és kötések című cikkben található utasítások segítségével.
A böngészőben adja meg az alkalmazás URL-címét. Cserélje le a helyőrzőket a megfelelő értékekre, és adjon meg egy numerikus értéket <input_number> a Java-függvény bemeneteként.
https://<function_app>.azurewebsites.net/api/HttpTrigger-Java?code=<authorization_key>&number=<input_number>
A következő példakimenethez hasonló eredményeket fog látni (ahol egy páratlan szám - 365 - volt tesztként használva):
The number 365 is Odd.
Clean up resources
Ha nem folytatja az alkalmazás használatát, törölje a létrehozott erőforrásokat a következő lépéssel:
az group delete -y --no-wait -n <resource_group>