Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
- Server Jenkins: Pokud nemáte nainstalovaný server Jenkinse, přečtěte si článek Vytvoření serveru Jenkinse v Azure.
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:
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
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
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:
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 .
Přihlaste se k instanci Jenkinse pomocí SSH.
V instanci Jenkinse nainstalujte Az CLI verze 2.0.67 nebo vyšší.
Pomocí následujícího příkazu nainstalujte maven:
sudo apt install -y maven
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
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 .
Ujistěte se, že je nainstalován plugin Přihlašovací údaje.
V nabídce vyberte Spravovat Jenkinse.
V části Konfigurace systému vyberte Spravovat modul plug-in.
Vyberte kartu Nainstalovaná.
Do pole filtru zadejte
credentials
.Ověřte, že je nainstalován plug-in Přihlašovací údaje. Pokud ne, budete ho muset nainstalovat z karty Dostupné .
V nabídce vyberte Spravovat Jenkinse.
V části Zabezpečení vyberte Spravovat přihlašovací údaje.
V části Přihlašovací údaje vyberte (globální).
V nabídce vyberte Přidat přihlašovací údaje.
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
.
Vyberte OK.
Vytvoření forku ukázkového úložiště GitHub
Přihlaste se k úložišti GitHub pro lichou nebo dokonce ukázkovou aplikaci.
V pravém horním rohu GitHubu zvolte Fork.
Podle pokynů vyberte svůj účet GitHubu a dokončete fork.
Vytvoření Jenkins pipeline
V této části vytvoříte kanál Jenkinse.
Na řídicím panelu Jenkinse vytvořte kanál.
Aktivujte přípravu prostředí pro spuštění.
V části Definice kanálu> vyberte Skript kanálu z SCM.
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.
Nejprve získejte autorizační klíč pomocí pokynů v článku spouštěče HTTP a vazby služby Azure Functions.
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>
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>