Öğretici: Jenkins kullanarak Azure Işlevlerine dağıtma
Önemli
Birçok Azure hizmetine Jenkins eklentileri vardır. Bu eklentilerin bazıları 29 Şubat 2024 itibariyle destek dışı olacaktır. Azure CLı, Jenkins 'i Azure hizmetleriyle tümleştirmeye yönelik Şu anda önerilen yoldur. Daha fazla bilgi için Azure Için Jenkins eklentilerimakalesine bakın.
Azure işlevleri , sunucusuz bir işlem hizmetidir. Azure Işlevleri 'ni kullanarak, altyapıyı sağlamadan veya yönetmeksizin isteğe bağlı kod çalıştırabilirsiniz. Bu öğreticide, Azure Işlevleri eklentisini kullanarak bir Java işlevinin Azure Işlevlerine nasıl dağıtılacağı gösterilmektedir.
Önkoşullar
- Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Jenkins sunucusu: bir Jenkins sunucunuz yüklü değilse, Azure 'Da Jenkins sunucusu oluşturmamakalesine bakın.
Kaynak kodunu görüntüleme
bu öğretici için kullanılan kaynak kodu Visual Studio çin GitHubdeposunda bulunur.
Java işlevi oluşturma
Java çalışma zamanı yığını ile bir Java işlevi oluşturmak için Azure Portal veya Azure CLIkullanın.
Aşağıdaki adımlarda, Azure CLı kullanarak bir Java işlevinin nasıl oluşturulacağı gösterilmektedir:
Resource_group > yer tutucusunu kaynak grubu adınızla değiştirerek bir kaynak grubu oluşturun.
az group create --name <resource_group> --location eastusYer tutucuları uygun değerlerle değiştirerek bir Azure depolama hesabı oluşturun.
az storage account create --name <storage_account> --location eastus --resource-group <resource_group> --sku Standard_LRSYer tutucuları uygun değerlerle değiştirerek test işlevi uygulamasını oluşturun.
az functionapp create --resource-group <resource_group> --runtime java --consumption-plan-location eastus --name <function_app> --storage-account <storage_account> --functions-version 2
Jenkins sunucusunu hazırlama
Aşağıdaki adımlarda, Jenkins sunucusunun nasıl hazırlanacağı açıklanmaktadır:
Azure 'da bir Jenkins sunucusu dağıtın. Jenkins sunucusunun bir örneği zaten yüklü değilse, Azure 'da bir Jenkins sunucusu oluşturun , süreç boyunca size kılavuzluk eder.
SSH ile Jenkins örneğinde oturum açın.
Jenkins örneğinde, az CLı, Version 2.0.67 veya üzeri sürümünü yükledikten sonra.
Aşağıdaki komutu kullanarak Maven 'yi yüklersiniz:
sudo apt install -y mavenJenkins örneğinde, bir Terminal isteminde aşağıdaki komutları vererek Azure Functions Core Tools yüklersiniz:
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-3Jenkins 'in kimlik doğrulaması ve Azure kaynaklarına erişmesi için bir Azure hizmet sorumlusu olması gerekir. Adım adım yönergeler için Azure App Service dağıtma bölümüne bakın.
Kimlik bilgileri eklentisinin yüklü olduğundan emin olun.
Menüden Jenkins 'ı Yönet' i seçin.
Sistem yapılandırmasıaltında, Eklentiyi Yönet' i seçin.
Yüklü öğeler sekmesini seçin.
Filtre alanına, girin .
Kimlik bilgileri eklentisinin yüklü olduğunu doğrulayın. Aksi takdirde, kullanılabilir sekmesinden yüklemeniz gerekir.

Menüden Jenkins 'ı Yönet' i seçin.
Güvenlikaltında, kimlik bilgilerini Yönet' i seçin.
Kimlik bilgilerialtında (genel)öğesini seçin.
Menüden kimlik bilgileri ekle' yi seçin.
Microsoft Azure hizmet sorumlusuiçin aşağıdaki değerleri girin:
- Tür: tür, parola ile Kullanıcı adıolduğunu doğrulayın.
- Kullanıcı adı: oluşturulan hizmet sorumlusu uygulama kimliği .
- Parola: oluşturulan hizmet sorumlusu parolası .
- ID: kimlik bilgisi tanımlayıcısı .
Tamam’ı seçin.
örnek GitHub depoyu çatal
tek veya hatta örnek uygulama için GitHub depoda oturum açın.
GitHub ' deki sağ üst köşede çatal' ı seçin.
GitHub hesabınızı seçmek ve bu adımları izlemek için istemleri izleyin.
Jenkins işlem hattı oluşturma
Bu bölümde, Jenkinsişlem hattını oluşturursunuz.
Jenkins panosunda bir işlem hattı oluşturun.
Çalıştırma için bir ortamhazırlamayı etkinleştirin.
İşlem hattı tanımı bölümünde SCM 'den işlem hattı betiği' ni seçin.
jenkinsfile örneğindekullanmak üzere GitHub çatalınızın URL 'sini ve betik yolunu ("doc/resources/jenkins/jenkinsfile") girin.
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' } } }
Oluşturma ve dağıtma
Jenkins işini çalıştırmak artık zaman alabilir.
İlk olarak, Azure IŞLEVLERI http Tetikleyicileri ve bağlamaları makalesindeki yönergeler aracılığıyla yetkilendirme anahtarını edinin.
Tarayıcınızda uygulamanın URL 'sini girin. Yer tutucuları uygun değerlerle değiştirin ve Java işlevi için girdi olarak input_number > sayısal bir değer belirtin.
https://<function_app>.azurewebsites.net/api/HttpTrigger-Java?code=<authorization_key>&number=<input_number>Aşağıdaki örnek çıktıya benzer sonuçlar görürsünüz (tek bir sayı-365-test olarak kullanılır):
The number 365 is Odd.
Kaynakları temizleme
Bu uygulamayı kullanmaya devam etmeyecekecekseniz, aşağıdaki adımla oluşturduğunuz kaynakları silin:
az group delete -y --no-wait -n <resource_group>