Sdílet prostřednictvím


Kurz: Nasazení do Azure Functions pomocí Jenkinse

Důležité

Zatímco mnoho služeb Azure má plug-iny pro Jenkins, většina z nich ukončí podporu k 29. únoru 2024. Azure CLI je aktuálně doporučený způsob integrace Jenkinse se službami Azure. Další informace najdete v článku Moduly plug-in Jenkins pro Azure.

Azure Functions je bezserverová výpočetní služba. Pomocí Azure Functions můžete spouštět kód na vyžádání bez zřizování nebo správy infrastruktury. V tomto kurzu se dozvíte, jak nasadit funkci Java do Azure Functions pomocí modulu plug-in Azure Functions.

Požadavky

Zobrazení zdrojového kódu

Zdrojový kód použitý pro tento kurz se nachází v úložišti Visual Studio China Na GitHubu.

Vytvoření funkce Java

Pokud chcete vytvořit Java funkci s modulem runtime Java, použijte Azure portal nebo Azure CLI.

Následující kroky ukazují, jak vytvořit funkci Java pomocí Azure CLI:

  1. Vytvořte skupinu prostředků a nahraďte <zástupný symbol resource_group> názvem vaší skupiny prostředků.

    az group create --name <resource_group> --location eastus
    
  2. Vytvořte účet úložiště Azure a nahraďte zástupné symboly příslušnými hodnotami.

    az storage account create --name <storage_account> --location eastus --resource-group <resource_group> --sku Standard_LRS    
    
  3. Vytvořte testovací aplikaci funkcí a nahraďte zástupné symboly příslušnými hodnotami.

    az functionapp create --resource-group <resource_group> --runtime java --consumption-plan-location eastus --name <function_app> --storage-account <storage_account> --functions-version 2
    

Příprava serveru Jenkinse

Následující kroky vysvětlují, jak připravit server Jenkinse:

  1. Nasaďte server Jenkinse v Azure. Pokud ještě nemáte nainstalovanou instanci serveru Jenkins, tento článek vás provede procesem vytvoření serveru Jenkinse v Azure .

  2. Přihlaste se k instanci Jenkinse pomocí SSH.

  3. V instanci Jenkinse nainstalujte Az CLI verze 2.0.67 nebo vyšší.

  4. Pomocí následujícího příkazu nainstalujte maven:

    sudo apt install -y maven
    
  5. V instanci Jenkinse nainstalujte nástroje Azure Functions Core Tools tak, že na příkazovém řádku terminálu vydáte následující příkazy:

    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. Jenkins potřebuje pro ověřování a přístup k prostředkům Azure Azure služební principál. Podrobné pokyny najdete v tématu Nasazení do služby Azure App Service .

  7. Ujistěte se, že je nainstalován plugin Přihlašovací údaje.

    1. V nabídce vyberte Spravovat Jenkinse.

    2. V části Konfigurace systému vyberte Spravovat modul plug-in.

    3. Vyberte kartu Nainstalovaná.

    4. Do pole filtru zadejte credentials.

    5. Ověřte, že je nainstalován plug-in Přihlašovací údaje. Pokud ne, budete ho muset nainstalovat z karty Dostupné .

    Je třeba nainstalovat doplněk přihlašovacích údajů.

  8. V nabídce vyberte Spravovat Jenkinse.

  9. V části Zabezpečení vyberte Spravovat přihlašovací údaje.

  10. V části Přihlašovací údaje vyberte (globální).

  11. V nabídce vyberte Přidat přihlašovací údaje.

  12. Zadejte následující hodnoty pro službu Microsoft Azure:

    • Druh: Vyberte hodnotu: Uživatelské jméno s heslem.
    • Uživatelské jméno: Zadejte vytvořený appId instanční objekt.
    • Heslo: Zadejte password (heslo) služebního principála.
    • ID: Zadejte identifikátor přihlašovacích údajů, například azuresp.
  13. Vyberte OK.

Vytvoření forku ukázkového úložiště GitHub

  1. Přihlaste se k úložišti GitHub pro lichou nebo dokonce ukázkovou aplikaci.

  2. V pravém horním rohu GitHubu zvolte Fork.

  3. Podle pokynů vyberte svůj účet GitHubu a dokončete fork.

Vytvoření Jenkins pipeline

V této části vytvoříte kanál Jenkinse.

  1. Na řídicím panelu Jenkinse vytvořte kanál.

  2. Aktivujte přípravu prostředí pro spuštění.

  3. V části Definice kanálu> vyberte Skript kanálu z SCM.

  4. Zadejte adresu URL forku GitHubu a cestu skriptu ("doc/resources/jenkins/JenkinsFile") pro použití v příkladu 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'
             }
         }
     }
    

Sestavení a nasazení

Teď je čas spustit Jenkinsovu úlohu.

  1. Nejprve získejte autorizační klíč pomocí pokynů v článku spouštěče HTTP a vazby služby Azure Functions.

  2. V prohlížeči zadejte adresu URL aplikace. Zástupné symboly nahraďte příslušnými hodnotami a zadejte číselnou hodnotu pro <input_number> jako vstup pro funkci Java.

    https://<function_app>.azurewebsites.net/api/HttpTrigger-Java?code=<authorization_key>&number=<input_number>
    
  3. Zobrazí se výsledky podobné následujícímu příkladu výstupu (kde se jako test použilo liché číslo – 365):

    The number 365 is Odd.
    

Vyčistěte zdroje

Pokud nebudete tuto aplikaci dál používat, odstraňte prostředky, které jste vytvořili pomocí následujícího kroku:

az group delete -y --no-wait -n <resource_group>

Další kroky