Kurz: nasazení na Azure Functions pomocí Jenkinse

Důležité

Mnoho služeb Azure má Jenkinse moduly plug-in. Některé z těchto modulů plug-in se od 29. února 2024 nepodporují. Azure CLI je aktuálně doporučeným způsobem, jak integrovat Jenkinse se službami Azure. Další informace najdete v článku Jenkinse moduly plug-in pro Azure.

Azure Functions je služba COMPUTE bez serveru. Pomocí Azure Functions můžete spustit kód na vyžádání bez zřízení nebo správy infrastruktury. V tomto kurzu se dozvíte, jak nasadit funkci Java, která Azure Functions pomocí modulu plug-in Azure Functions.

Požadavky

Zobrazit zdrojový kód

zdrojový kód, který se používá pro tento kurz, se nachází v úložišti GitHub Visual Studio čína.

Vytvoření funkce Java

Chcete-li vytvořit funkci Java pomocí zásobníku Java Runtime, použijte buď Azure Portal , nebo rozhraní příkazového řádku Azure.

Následující kroky ukazují, jak vytvořit funkci Java pomocí rozhraní příkazového řádku Azure:

  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 aplikaci funkcí testu 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í postup vysvětluje, jak připravit server Jenkinse:

  1. Nasazení serveru Jenkinse v Azure. Pokud ještě nemáte nainstalovanou instanci serveru Jenkinse, provede vás celým procesem vytvoření serveru Jenkinse v Azure .

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

  3. V instanci Jenkinse nainstalujte AZ CLI, Version 2.0.67 nebo vyšší.

  4. Nainstalujte Maven pomocí následujícího příkazu:

    sudo apt install -y maven
    
  5. V instanci Jenkinse nainstalujte Azure Functions Core Tools , a to tak, že na příkazovém řádku zadá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. Pro ověření a přístup k prostředkům Azure potřebuje Jenkinse instanční objekt Azure. Podrobné pokyny najdete v tématu věnovaném nasazení na Azure App Service .

  7. Ujistěte se, že je nainstalovaný modul plug-in přihlašovacích údajů .

    1. V nabídce vyberte Spravovat Jenkinse.

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

    3. Vyberte kartu Nainstalováno.

    4. Do pole Filtr zadejte .

    5. Ověřte, že je nainstalovaný modul plug-in s přihlašovacími údaji . V takovém případě ho budete muset nainstalovat z karty dostupné .

    Je potřeba nainstalovat modul plug-in s přihlašovacími údaji.

  8. V nabídce vyberte Spravovat Jenkinse.

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

  10. V části pověřenívyberte (globální).

  11. V nabídce vyberte možnost Přidat pověření.

  12. pro Microsoft Azure instančního objektuzadejte následující hodnoty:

    • Druh: Ověřte, zda je tento druh uživatelské jméno a heslo.
    • Uživatelské jméno: ID aplikace vytvořeného objektu služby.
    • Heslo: heslo vytvořeného objektu služby.
    • ID: identifikátor přihlašovacích údajů, např .
  13. Vyberte OK.

rozvětvení ukázkového GitHub úložiště

  1. přihlaste se k úložišti GitHub pro ukázkovou aplikaci, která je lichá nebo sudá.

  2. v pravém horním rohu v GitHub vyberte možnost rozvětvení.

  3. podle pokynů vyberte účet GitHub a dokončete rozvětvení.

Vytvoření kanálu Jenkinse

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

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

  2. Povolte přípravu prostředí pro běh.

  3. V části definice kanálu vyberte možnost skript kanálu ze služby SCM.

  4. zadejte adresu URL a cestu skriptu pro rozvětvení GitHub ("doc/resources/jenkinse/JenkinsFile"), které chcete použít 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. Nejdřív Získejte autorizační klíč pomocí pokynů v článku Azure Functions aktivační události a vazby protokolu HTTP .

  2. V prohlížeči zadejte adresu URL aplikace. Zástupné symboly nahraďte odpovídající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. Výsledky jsou podobné jako v následujícím příkladu výstupu (kde bylo použito liché číslo-365 – bylo použito jako test):

    The number 365 is Odd.
    

Vyčištění prostředků

Pokud nebudete tuto aplikaci nadále 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