Создание и публикация функции в Azure с помощью Java и Gradle
В этой статье описано, как создать и опубликовать проект функции Java в службе "Функции Azure" с помощью программы командной строки Gradle. После завершения этого руководства код функции будет выполняться в Azure в бессерверном плане потребления с активацией по HTTP-запросу.
Примечание.
Если вы не хотите использовать Gradle в качестве средства разработки, ознакомьтесь с аналогичными руководствами для разработчиков Java по использованию Maven, IntelliJ IDEA и VS Code.
Необходимые компоненты
Для разработки функций с помощью Java, должны быть установлены следующие компоненты:
- Пакет разработчиков Java, версия 8, 11, 17 или 21. (в настоящее время Java 21 поддерживается только в предварительной версии в Linux)
- Azure CLI
- Azure Functions Core Tools 2.6.666 или более поздней версии.
- Gradle 6.8 или более поздней версии
Вам также потребуется действующая подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Внимание
Переменной среде JAVA_HOME необходимо присвоить расположение установки JDK, чтобы завершить выполнение заданий этого краткого руководства.
Подготовка проекта Функций Azure
Используйте следующую команду, чтобы клонировать пример проекта:
git clone https://github.com/Azure-Samples/azure-functions-samples-java.git
cd azure-functions-samples-java/
Откройте build.gradle
и измените appName
в следующем разделе на уникальное имя, чтобы избежать конфликта доменных имен при развертывании в 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"
}
Откройте в текстовом редакторе новый файл Function.java из папки src/main/java и изучите созданный код. Этот код содержит активируемую по HTTP-запросу функцию, которая возвращает текст запроса.
Локальное выполнение функции
Выполните следующую команду, чтобы собрать и запустить проект функции:
gradle jar --info
gradle azureFunctionsRun
При локальном выполнении проекта вы увидите следующие выходные данные 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 ...
В новом окне терминала активируйте функцию из командной строки с помощью указанной ниже команды cURL.
curl -w "\n" http://localhost:7071/api/HttpExample --data AzureFunctions
Ожидаемый результат должен выглядеть так, как показано ниже.
Hello, AzureFunctions
Примечание.
Если задано значение authLevel FUNCTION
или ADMIN
ключ доступа не требуется при локальном запуске.
Используйте Ctrl+C
в терминале, чтобы остановить код функции.
Развертывание функции для Azure
Приложение-функция и связанные ресурсы создаются в Azure при первом развертывании приложения-функции. Перед развертыванием выполните команду az login в Azure CLI, чтобы войти в подписку Azure.
az login
Совет
Если ваша учетная запись имеет доступ к нескольким подпискам, задайте подписку по умолчанию для текущего сеанса с помощью команды az account set.
Используйте следующую команду, чтобы развернуть проект в виде нового приложения-функции.
gradle azureFunctionsDeploy
На основе значений в файле build.gradle в Azure создаются указанные ниже ресурсы.
- Группа ресурсов. Ей присваивается имя, которое вы указали в параметре resourceGroup.
- учетной записи хранения. Требуется для Функций Azure. Это имя создается случайным образом на основе требований к именованию учетных записей хранения.
- плана службы приложений. Бессерверное размещение плана потребления для приложения-функции в регионе, который указан в параметре region. Это имя создается случайным образом.
- Приложение-функция. Приложение-функция представляет собой минимальную единицу развертывания и выполнения для ваших функций. Ему присваивается имя из параметра appName, к которому добавляется случайное число.
Развертывание также упаковывает файлы проекта и развертывает их в новом приложении-функции из ZIP-файла с включенным режимом выполнения из пакета.
В примере проекта для параметра authLevel для триггера HTTP задано значение ANONYMOUS
, что позволяет пропустить проверку подлинности. Но при использовании других значений authLevel, например FUNCTION
или ADMIN
, необходимо получить ключ функции для вызова конечной точки функции по протоколу HTTP. Ключ функции проще всего получить на портале Azure.
Получение URL-адреса триггера HTTP
Вы можете получить URL-адрес для активации функции (вместе с ключом функции) на портале Azure.
Перейдите на портал Azure, войдите в систему, введите имя приложения-функции в поле Поиск в верхней части страницы и нажмите клавишу ВВОД.
В приложении-функции нажмите Функции, выберите созданную функцию и щелкните Получить URL-адрес функции в правом верхнем углу.
Выберите вариант по умолчанию (функциональная клавиша) и нажмите Копировать.
Теперь скопированный URL-адрес можно использовать для доступа к функции.
Проверка функции в Azure
Чтобы проверить работу приложения-функции в Azure с помощью cURL
, замените URL из приведенного ниже примера реальным URL-адресом, который вы скопировали с портала.
curl -w "\n" http://azure-functions-sample-demo.azurewebsites.net/api/HttpExample --data AzureFunctions
Это действие отправляет запрос POST в конечную точку функции с добавлением AzureFunctions
в текст запроса. Вы увидите следующий ответ:
Hello, AzureFunctions
Следующие шаги
Итак, вы создали проект с функцией Java, активируемой по HTTP-запросу, запустили ее на своем локальном компьютере и развернули в Azure. Теперь расширьте свою функцию путем...