Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Хотя многие службы Azure имеют подключаемые модули Jenkins, большинство этих подключаемых модулей завершили поддержку с 29 февраля 2024 года. Azure CLI — это рекомендуемый в настоящее время способ интеграции Jenkins с службами Azure. Для получения дополнительной информации см. статью плагины Jenkins для Azure.
Функции Azure — это бессерверная служба вычислений. С помощью Функций Azure можно запускать код по запросу без подготовки или управления инфраструктурой. В этом руководстве показано, как развернуть функцию Java в Функциях Azure с помощью подключаемого модуля "Функции Azure".
Предпосылки
- Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
- Сервер Jenkins: если у вас нет установленного сервера Jenkins, см. статью "Создание сервера Jenkins в Azure".
Просмотр исходного кода
Исходный код, используемый для этого руководства, находится в репозитории GitHub Visual Studio Китайского.
Создание функции Java
Чтобы создать функцию Java с использованием среды выполнения Java, используйте портал Azure или Azure CLI.
Ниже показано, как создать функцию Java с помощью Azure CLI:
Создайте группу ресурсов, замените <resource_group> на имя вашей группы ресурсов.
az group create --name <resource_group> --location eastusСоздайте учетную запись хранения Azure, заменив заполнители соответствующими значениями.
az storage account create --name <storage_account> --location eastus --resource-group <resource_group> --sku Standard_LRSСоздайте тестовое функциональное приложение, заменив заполнители соответствующими значениями.
az functionapp create --resource-group <resource_group> --runtime java --consumption-plan-location eastus --name <function_app> --storage-account <storage_account> --functions-version 2
Подготовка сервера Jenkins
Ниже описано, как подготовить сервер Jenkins:
Разверните сервер Jenkins в Azure. Если у вас еще нет экземпляра сервера Jenkins, статья о создании сервера Jenkins в Azure поможет вам выполнить процесс.
Войдите в экземпляр Jenkins с помощью SSH.
В экземпляре Jenkins установите Az CLI версии 2.0.67 или более поздней.
Установите maven с помощью следующей команды:
sudo apt install -y mavenВ экземпляре Jenkins установите средства Azure Functions Core, выполнив следующие команды в командной строке терминала:
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-3Jenkins нужен сервисный принципал Azure для аутентификации и доступа к ресурсам Azure. Пошаговые инструкции см. в статье "Развертывание в службе приложений Azure ".
Убедитесь, что плагин «Учетные данные» установлен.
В меню выберите "Управление Jenkins".
В разделе "Конфигурация системы" выберите "Управление подключаемым модулем".
Выберите вкладку "Установленная".
В поле фильтра введите
credentials.Убедитесь, что плагин Учетные данные установлен. Если нет, его необходимо установить на вкладке "Доступно ".
В меню выберите "Управление Jenkins".
В разделе "Безопасность" выберите "Управление учетными данными".
В разделе "Учетные данные" выберите (global).
В меню выберите "Добавить учетные данные".
Введите следующие значения для служебного принципала Microsoft Azure:
- Тип: выберите значение: имя пользователя с паролем.
-
Имя пользователя: укажите
appIdсозданный принципал службы. -
Пароль: укажите
password(секрет) субъекта-службы. -
Идентификатор: укажите идентификатор учетных данных, например
azuresp.
Нажмите ОК.
Создайте форк образца репозитория GitHub
Войдите в репозиторий GitHub для нечетного или даже примера приложения.
В правом верхнем углу на GitHub выберите Fork.
Следуйте инструкциям, чтобы выбрать учетную запись GitHub и закончить создание форка.
Создание конвейера Jenkins
В этом разделе описано, как создать конвейер Jenkins.
На панели мониторинга Jenkins создайте конвейер.
Активируйте подготовку среды для запуска.
В разделе "Определение конвейера" выберите сценарий конвейера>из SCM.
Введите URL-адрес форка вашего репозитория на GitHub и путь сценария ("doc/resources/jenkins/JenkinsFile"), чтобы использовать в примере JenkinsFile.
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' } } }
Сборка и развертывание
Теперь пришло время запустить задание Jenkins.
Сначала получите ключ авторизации с помощью инструкций, приведенных в статье "Триггеры и привязки функций Azure ".
В браузере введите URL-адрес приложения. Замените заполнители соответствующими значениями и укажите числовое значение для <input_number> в качестве входных данных для функции Java.
https://<function_app>.azurewebsites.net/api/HttpTrigger-Java?code=<authorization_key>&number=<input_number>Вы увидите результаты, аналогичные следующему примеру выходных данных (где нечетное число — 365 — использовалось в качестве теста):
The number 365 is Odd.
Очистите ресурсы
Если вы не собираетесь продолжать использовать это приложение, удалите ресурсы, созданные на следующем шаге:
az group delete -y --no-wait -n <resource_group>