Tworzenie i publikowanie funkcji na platformie Azure przy użyciu języków Java i Gradle

W tym artykule pokazano, jak utworzyć i opublikować projekt funkcji Java w usłudze Azure Functions za pomocą narzędzia wiersza polecenia narzędzia Gradle. Po zakończeniu kod funkcji jest uruchamiany na platformie Azure w planie hostingu bezserwerowego i jest wyzwalany przez żądanie HTTP.

Uwaga

Jeśli narzędzie Gradle nie jest preferowanym narzędziem programistycznym, zapoznaj się z naszymi podobnymi samouczkami dla deweloperów języka Java korzystających z narzędzi Maven, IntelliJ IDEA i VS Code.

Wymagania wstępne

Aby opracowywać funkcje przy użyciu języka Java, musisz mieć zainstalowane następujące składniki:

Potrzebna jest również aktywna subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Ważne

Aby wykonać wszystkie czynności opisane w tym przewodniku Szybki start, dla zmiennej środowiskowej JAVA_HOME należy ustawić lokalizację instalacji zestawu JDK.

Przygotowywanie projektu usługi Functions

Użyj następującego polecenia, aby sklonować przykładowy projekt:

git clone https://github.com/Azure-Samples/azure-functions-samples-java.git
cd azure-functions-samples-java/

Otwórz build.gradle plik i zmień element appName w poniższej sekcji na unikatową nazwę, aby uniknąć konfliktu nazw domen podczas wdrażania na platformie Azure.

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"
}

Otwórz nowy plik Function.java ze ścieżki src/main/java w edytorze tekstów i przejrzyj wygenerowany kod. Ten kod jest funkcją wyzwalaną przez protokół HTTP, która odzwierciedla treść żądania.

Lokalne uruchamianie funkcji

Uruchom następujące polecenie, aby skompilować, a następnie uruchom projekt funkcji:

gradle jar --info
gradle azureFunctionsRun

Podczas lokalnego uruchamiania projektu są wyświetlane dane wyjściowe podobne do następujących z narzędzi Azure Functions Core Tools:

...

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

Wyzwól funkcję z wiersza polecenia przy użyciu następującego polecenia cURL w nowym oknie terminalu:

curl -w "\n" http://localhost:7071/api/HttpExample --data AzureFunctions

Oczekiwane dane wyjściowe są następujące:

Hello, AzureFunctions

Uwaga

Jeśli ustawisz wartość authLevel na FUNCTION lub ADMIN, klucz funkcji nie jest wymagany podczas uruchamiania lokalnego.

Aby zatrzymać wykonywanie kodu funkcji, użyj polecenia Ctrl+C w oknie terminala.

Wdrażanie funkcji na platformie Azure

Aplikacja funkcji i powiązane zasoby są tworzone na platformie Azure podczas pierwszego wdrażania aplikacji funkcji. Przed wdrożeniem użyj polecenia az login interfejsu wiersza polecenia platformy Azure, aby zalogować się do subskrypcji platformy Azure.

az login

Napiwek

Jeśli twoje konto może uzyskać dostęp do wielu subskrypcji, użyj polecenia az account set , aby ustawić domyślną subskrypcję dla tej sesji.

Użyj następującego polecenia, aby wdrożyć projekt w nowej aplikacji funkcji.

gradle azureFunctionsDeploy

Spowoduje to utworzenie następujących zasobów na platformie Azure na podstawie wartości w pliku build.gradle:

  • Grupa zasobów. Nazwana za pomocą podanej grupy zasobów.
  • Konto magazynu. Wymagane przez funkcje. Nazwa jest generowana losowo na podstawie wymagań dotyczących nazwy konta magazynu.
  • Plan usługi App Service. Plan użycia bezserwerowego hostowanie aplikacji funkcji w określonym regionie. Nazwa jest generowana losowo.
  • Aplikacja funkcji. Aplikacja funkcji to jednostka wdrażania i wykonywania funkcji. Nazwa to nazwa _aplikacji, dołączona z losowo wygenerowaną liczbą.

Wdrożenie pakuje również pliki projektu i wdraża je w nowej aplikacji funkcji przy użyciu wdrożenia zip z włączonym trybem run-from-package.

Element authLevel dla wyzwalacza HTTP w przykładowym projekcie to ANONYMOUS, co spowoduje pominięcie uwierzytelniania. Jeśli jednak używasz innego elementu authLevel, takiego jak FUNCTION lub ADMIN, musisz uzyskać klucz funkcji w celu wywołania punktu końcowego funkcji za pośrednictwem protokołu HTTP. Najprostszym sposobem uzyskania klucza funkcji jest witryna Azure Portal.

Uzyskiwanie adresu URL wyzwalacza HTTP

Adres URL wymagany do wyzwolenia funkcji przy użyciu klucza funkcji można uzyskać w witrynie Azure Portal.

  1. Przejdź do witryny Azure Portal, zaloguj się, wpisz nazwę aplikacji funkcji w obszarze Wyszukaj w górnej części strony i naciśnij klawisz Enter.

  2. W aplikacji funkcji wybierz pozycję Funkcje, wybierz funkcję, a następnie kliknij pozycję Pobierz adres URL funkcji w prawym górnym rogu.

    Copy the function URL from the Azure portal

  3. Wybierz pozycję domyślną (klucz funkcji) i wybierz pozycję Kopiuj.

Teraz możesz użyć skopiowanego adresu URL, aby uzyskać dostęp do funkcji.

Weryfikowanie funkcji na platformie Azure

Aby zweryfikować aplikację funkcji działającą na platformie Azure przy użyciu polecenia cURL, zastąp adres URL z poniższego przykładu adresem URL skopiowany z portalu.

curl -w "\n" http://azure-functions-sample-demo.azurewebsites.net/api/HttpExample --data AzureFunctions

Spowoduje to wysłanie żądania POST do punktu końcowego AzureFunctions funkcji w treści żądania. Zostanie wyświetlona następująca odpowiedź.

Hello, AzureFunctions

Następne kroki

Utworzono projekt funkcji języka Java z funkcją wyzwalaną przez protokół HTTP, uruchomiono go na komputerze lokalnym i wdrożono na platformie Azure. Teraz możesz rozszerzyć funkcję przez...