İş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:

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 ADMINolarak FUNCTION ayarlarsanız, yerel olarak çalıştırılırken işlev anahtarı gerekli değildir.

İş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 hesap 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 ADMINgibi 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.

  1. 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.

  2. İşlev uygulamanızda İşlevler'i seçin, işlevinizi seçin ve ardından sağ üstteki İşlev Url'sini Al'a tıklayın.

    Copy the function URL from the Azure portal

  3. 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 cURLAzure'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...