İşlev oluşturmak ve Azure'da yayımlamak için Java ve Gradle kullanma
Bu makalede, Gradle komut satırı aracıyla Azure İşlevleri için bir Java işlev projesi oluşturma ve yayımlama gösterilmektedir. İşiniz bittiğinde işlev kodunuz Azure'da sunucusuz bir barındırma planında çalışır ve bir HTTP isteği tarafından tetikler.
Not
Gradle tercih edilen geliştirme aracınız değilse Maven, IntelliJ IDEA ve VS Code kullanan Java geliştiricilerine yönelik benzer öğreticilerimize göz atın.
Önkoşullar
Java kullanarak işlev uygulamaları geliştirebilmeniz için şunlar yüklü olmalıdır:
- Java Developer Kit, sürüm 8, 11, 17 veya 21. (Java 21 şu anda yalnızca Linux'ta önizlemede desteklenmektedir)
- Azure CLI
- Azure İşlevleri Core Tools sürüm 2.6.666 veya üzeri
- Gradle, sürüm 6.8 ve üzeri
Ayrıca etkin bir Azure aboneliğine de ihtiyacınız vardır. Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Önemli
Bu hızlı başlangıcın tamamlanabilmesi için JAVA_HOME ortam değişkeni JDK’nin yükleme konumu olarak ayarlanmalıdır.
İşlevler projesi hazırlama
Örnek projeyi kopyalamak için aşağıdaki komutu kullanın:
git clone https://github.com/Azure-Samples/azure-functions-samples-java.git
cd azure-functions-samples-java/
Azure'a dağıtım yaparken etki alanı adı çakışmasını önlemek için aşağıdaki bölümdeki öğesini açın build.gradle
ve benzersiz bir adla değiştirin appName
.
azurefunctions {
resourceGroup = 'java-functions-group'
appName = 'azure-functions-sample-demo'
pricingTier = 'Consumption'
region = 'westus'
runtime {
os = 'windows'
}
localDebug = "transport=dt_socket,server=y,suspend=n,address=5005"
}
src/main/java yolundaki yeni Function.java dosyasını bir metin düzenleyicisinde açın ve oluşturulan kodu gözden geçirin. Bu kod, isteğin gövdesini yankılayan HTTP ile tetiklenen bir işlevdir.
İşlevi yerel olarak çalıştırma
Aşağıdaki komutu çalıştırarak işlev projesini oluşturun ve çalıştırın:
gradle jar --info
gradle azureFunctionsRun
Projeyi yerel olarak çalıştırdığınızda Azure İşlevleri Çekirdek Araçları'ndan aşağıdakine benzer bir çıktı görürsünüz:
... Now listening on: http://0.0.0.0:7071 Application started. Press Ctrl+C to shut down. Http Functions: HttpExample: [GET,POST] http://localhost:7071/api/HttpExample ...
Yeni bir terminal penceresinde aşağıdaki cURL komutunu kullanarak komut satırından işlevi tetikleyin:
curl -w "\n" http://localhost:7071/api/HttpExample --data AzureFunctions
Beklenen çıkış aşağıdaki gibidir:
Hello, AzureFunctions
Not
authLevel değerini veya ADMIN
olarak FUNCTION
ayarlarsanız, yerel olarak çalışırken erişim anahtarı gerekmez.
İşlev kodunu durdurmak için terminalde Ctrl+C
komutunu kullanın.
İşlevi Azure’a dağıtma
İşlev uygulamanızı ilk dağıttığınızda Azure'da bir işlev uygulaması ve ilgili kaynaklar oluşturulur. Dağıtabilmeniz için önce az login Azure CLI komutunu kullanarak Azure aboneliğinizde oturum açın.
az login
İpucu
Hesabınız birden çok aboneliğe erişebiliyorsa, bu oturum için varsayılan aboneliği ayarlamak için az account set komutunu kullanın.
Projenizi yeni bir işlev uygulamasına dağıtmak için aşağıdaki komutu kullanın.
gradle azureFunctionsDeploy
Bu, build.gradle dosyasındaki değerlere göre Azure'da aşağıdaki kaynakları oluşturur:
- Kaynak grubu. Sağladığınız resourceGroup ile adlandırılır.
- Depolama hesabı. İşlevler tarafından gereklidir. Ad, Depolama hesabı adı gereksinimlerine göre rastgele oluşturulur.
- App Service Planı. İşlev uygulamanız için belirtilen bölgede sunucusuz Tüketim planı barındırma. Ad rastgele oluşturulur.
- İşlev uygulaması. İşlev uygulaması, işlevlerinizin dağıtım ve yürütme birimidir. Ad, rastgele oluşturulan bir numarayla eklenen appName'inizdir.
Dağıtım ayrıca proje dosyalarını paketler ve paketten çalıştırma modu etkin olarak zip dağıtımını kullanarak yeni işlev uygulamasına dağıtır.
Örnek projedeki HTTP Tetikleyicisi için authLevel, kimlik doğrulamasını atlayan şeklindedir ANONYMOUS
. Ancak, veya ADMIN
gibi FUNCTION
başka bir authLevel kullanıyorsanız, HTTP üzerinden işlev uç noktasını çağırmak için işlev anahtarını almanız gerekir. İşlev anahtarını almanın en kolay yolu Azure portalındandır.
HTTP tetikleyici URL'sini alma
İşlev anahtarıyla işlevinizi tetiklemeniz için gereken URL'yi Azure portalından alabilirsiniz.
Azure portalına gidin, oturum açın, sayfanın üst kısmındaki Arama alanına işlev uygulamanızın appName değerini yazın ve Enter tuşuna basın.
İşlev uygulamanızda İşlevler'i seçin, işlevinizi seçin ve ardından sağ üstteki İşlev Url'sini Al'a tıklayın.
Varsayılan (İşlev tuşu) seçeneğini belirleyin ve Kopyala'yı seçin.
Artık işlevinize erişmek için kopyalanan URL'yi kullanabilirsiniz.
Azure'da işlevi doğrulama
kullanarak cURL
Azure'da çalışan işlev uygulamasını doğrulamak için aşağıdaki örnekteki URL'yi portaldan kopyaladığınız URL ile değiştirin.
curl -w "\n" http://azure-functions-sample-demo.azurewebsites.net/api/HttpExample --data AzureFunctions
Bu, isteğin gövdesinde ile AzureFunctions
işlev uç noktasına bir POST isteği gönderir. Aşağıdaki yanıtı görürsünüz.
Hello, AzureFunctions
Sonraki adımlar
HTTP ile tetiklenen işlevi olan bir Java işlev projesi oluşturdunuz, bunu yerel makinenizde çalıştırdınız ve Azure’a dağıttınız. Şimdi, şu adımı uygulayarak işlevinizi genişletin...