Öğretici: Jenkins kullanarak Azure İşlevleri dağıtma
Önemli
Birçok Azure hizmeti Jenkins eklentilerine sahiptir. Bu eklentilerden bazıları 29 Şubat 2024 itibarıyla destekten çıkarılacaktır. Azure CLI, Jenkins'i Azure hizmetleriyle tümleştirmenin şu anda önerilen yoludur. Daha fazla bilgi için Azure için Jenkins eklentileri makalesine bakın.
Azure İşlevleri sunucusuz bir işlem hizmetidir. Azure İşlevleri kullanarak altyapıyı sağlamadan veya yönetmeden isteğe bağlı olarak kod çalıştırabilirsiniz. Bu öğreticide, Azure İşlevleri eklentisini kullanarak Azure İşlevleri için bir Java işlevinin 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: Yüklü bir Jenkins sunucunuz yoksa Azure'da Jenkins sunucusu oluşturma makalesine bakın.
Kaynak kodu görüntüleme
Bu öğretici için kullanılan kaynak kodu Visual Studio China GitHub deposunda bulunur.
Java işlevi oluşturma
Java çalışma zamanı yığınıyla bir Java işlevi oluşturmak için Azure portalını veya Azure CLI'yı kullanın.
Aşağıdaki adımlarda, Azure CLI kullanarak bir Java işlevinin nasıl oluşturulacağı gösterilmektedir:
resource_group> yer tutucuyu <kaynak grubu adınızla değiştirerek bir kaynak grubu oluşturun.
az group create --name <resource_group> --location eastus
Yer 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_LRS
Yer 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ır yapılacağı açıklanmaktadır:
Azure'da bir Jenkins sunucusu dağıtma. Jenkins sunucusunun bir örneğini henüz yüklemediyseniz Azure'da Jenkins sunucusu oluşturma makalesi bu işlemde size yol gösterir.
Jenkins örneğinde SSH ile oturum açın.
Jenkins örneğinde Az CLI, sürüm 2.0.67 veya üzerini yükleyin.
Aşağıdaki komutu kullanarak maven'i yükleyin:
sudo apt install -y maven
Jenkins örneğinde, terminal isteminde aşağıdaki komutları vererek Azure İşlevleri Core Tools'u yükleyin:
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'in Azure kaynaklarının kimliğini doğrulamak ve bu kaynaklara erişmek için bir Azure hizmet sorumlusuna ihtiyacı vardır. Adım adım yönergeler için Azure Uygulaması Hizmetine Dağıtma bölümüne bakın.
Kimlik Bilgileri eklentisinin yüklü olduğundan emin olun.
Menüden Jenkins'i Yönet'i seçin.
Sistem Yapılandırması'nın altında Eklentiyi yönet'i seçin.
Yüklü öğeler sekmesini seçin.
Filtre alanına girin
credentials
.Kimlik Bilgileri eklentisinin yüklü olduğunu doğrulayın. Aksi takdirde, Kullanılabilir sekmesinden yüklemeniz gerekir.
Menüden Jenkins'i Yönet'i seçin.
Güvenlik'in altında Kimlik Bilgilerini Yönet'i seçin.
Kimlik bilgileri'nin altında (genel) öğesini seçin.
Menüden Kimlik Bilgileri Ekle'yi seçin.
Microsoft Azure hizmet sorumlunuz için aşağıdaki değerleri girin:
- Tür: Değerini seçin: Parolalı kullanıcı adı.
- Kullanıcı adı: Oluşturulan hizmet sorumlusunun değerini belirtin
appId
. - Parola: Hizmet sorumlusunun
password
(gizli dizisini) belirtin. - Kimlik: Gibi
azuresp
kimlik bilgisi tanımlayıcısını belirtin.
Tamam seçeneğini işaretleyin.
Örnek GitHub deposunda çatal oluşturma
Tek veya çift örnek uygulama için GitHub deposunda oturum açın.
GitHub'ın sağ üst köşesinde Çatal'ı seçin.
GitHub hesabınızı seçmek ve çatal oluşturma işlemini tamamlamak için istemleri izleyin.
Jenkins İşlem Hattı Oluşturma
Bu bölümde Jenkins İşlem Hattı'nı oluşturacaksınız.
Jenkins panosunda bir İşlem Hattı oluşturun.
Çalıştırma için ortam hazırlama'yı etkinleştirin.
İşlem Hattı Tanımı> bölümünde SCM'den İşlem hattı betiği'ni seçin.
JenkinsFile örneğinde kullanmak için 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' } } }
Derleme ve dağıtma
Şimdi Jenkins işini çalıştırmanın zamanı geldi.
İlk olarak, Azure İşlevleri HTTP tetikleyicileri ve bağlamaları makalesindeki yönergeler aracılığıyla yetkilendirme anahtarını alın.
Tarayıcınızda uygulamanın URL'sini girin. Yer tutucuları uygun değerlerle değiştirin ve Java işlevi için <giriş olarak input_number> için sayısal bir değer belirtin.
https://<function_app>.azurewebsites.net/api/HttpTrigger-Java?code=<authorization_key>&number=<input_number>
Aşağıdaki örnek çıkışa benzer sonuçlar görürsünüz (burada tek sayı - 365 - test olarak kullanılmıştır):
The number 365 is Odd.
Kaynakları temizleme
Bu uygulamayı kullanmaya devam etmeyecekseniz, aşağıdaki adımla oluşturduğunuz kaynakları silin:
az group delete -y --no-wait -n <resource_group>
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin