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
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
- Server Jenkinse: Pokud nemáte nainstalovaný server Jenkinse, přečtěte si článek vytvoření serveru Jenkinse v Azure.
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:
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 eastusVytvoř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_LRSVytvoř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:
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 .
Přihlaste se k instanci Jenkinse pomocí SSH.
V instanci Jenkinse nainstalujte AZ CLI, Version 2.0.67 nebo vyšší.
Nainstalujte Maven pomocí následujícího příkazu:
sudo apt install -y mavenV 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-3Pro 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 .
Ujistěte se, že je nainstalovaný modul plug-in přihlašovacích údajů .
V nabídce vyberte Spravovat Jenkinse.
V části Konfigurace systémuvyberte Spravovat modul plug-in.
Vyberte kartu Nainstalováno.
Do pole Filtr zadejte .
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é .

V nabídce vyberte Spravovat Jenkinse.
V části zabezpečenívyberte spravovat přihlašovací údaje.
V části pověřenívyberte (globální).
V nabídce vyberte možnost Přidat pověření.
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ř .
Vyberte OK.
rozvětvení ukázkového GitHub úložiště
přihlaste se k úložišti GitHub pro ukázkovou aplikaci, která je lichá nebo sudá.
v pravém horním rohu v GitHub vyberte možnost rozvětvení.
podle pokynů vyberte účet GitHub a dokončete rozvětvení.
Vytvoření kanálu Jenkinse
V této části vytvoříte kanál Jenkinse.
V řídicím panelu Jenkinse vytvořte kanál.
Povolte přípravu prostředí pro běh.
V části definice kanálu vyberte možnost skript kanálu ze služby SCM.
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.
Nejdřív Získejte autorizační klíč pomocí pokynů v článku Azure Functions aktivační události a vazby protokolu HTTP .
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>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>