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:

  1. 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
    
  2. 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    
    
  3. 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:

  1. 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.

  2. Jelentkezzen be a Jenkins-példányba SSH-val.

  3. A Jenkins-példányon telepítse az Az CLI 2.0.67-es vagy újabb verzióját.

  4. Telepítse a mavent a következő paranccsal:

    sudo apt install -y maven
    
  5. 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
    
  6. 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.

  7. Győződjön meg arról, hogy a Hitelesítő adatok beépülő modul telepítve van.

    1. A menüben válassza a Jenkins kezelése lehetőséget.

    2. A Rendszerkonfiguráció területen válassza a Beépülő modul kezelése lehetőséget.

    3. Válassza a Telepített lapot.

    4. A szűrőmezőbe írja be a következőtcredentials:

    5. 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.

    The Credentials Plug-in needs to be installed.

  8. A menüben válassza a Jenkins kezelése lehetőséget.

  9. A Biztonság területen válassza a Hitelesítő adatok kezelése lehetőséget.

  10. A Hitelesítő adatok csoportban válassza a (globális) lehetőséget.

  11. A menüben válassza a Hitelesítő adatok hozzáadása lehetőséget.

  12. 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.
  13. Kattintson az OK gombra.

A minta GitHub-adattár elágazása

  1. Jelentkezzen be a GitHub-adattárba a páratlan vagy akár mintaalkalmazáshoz.

  2. A GitHub jobb felső sarkában válassza az Elágazás lehetőséget.

  3. 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.

  1. A Jenkins-irányítópulton hozzon létre egy folyamatot.

  2. Környezet előkészítése a futtatáshoz.

  3. A Pipeline-Definition (Folyamatdefiníció) szakaszban válassza a Pipeline script from SCM (Folyamatszkript az SCM-ből>) lehetőséget.

  4. 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.

  1. 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.

  2. 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>
    
  3. 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>

További lépések