Kurz: Nasazení do Azure Functions pomocí Jenkinse

Důležité

Mnoho služeb Azure má moduly plug-in Jenkinse. Některé z těchto modulů plug-in budou od 29. února 2024 mimo podporu. 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 funkci Java se zásobníkem modulu 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 instanční objekt Azure k ověřování a přístupu k prostředkům Azure. Podrobné pokyny najdete v tématu Nasazení do služby Aplikace Azure Service.

  7. Ujistěte se, že je nainstalovaný modul plug-in 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 Nainstalováno.

    4. Do pole filtru zadejte credentials.

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

    The Credentials Plug-in needs to be installed.

  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 instanční objekt 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 (tajný kód) instančního objektu.
    • 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í kanálu Jenkinse

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

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

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

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

  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 úlohu Jenkinse.

  1. Nejprve získejte autorizační klíč pomocí pokynů v článku triggerů HTTP a vazeb 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čištění prostředků

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