Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.
В настоящее время GitHub AE находится в ограниченном выпуске.

Развертывание Java в Службе приложений Azure

Проект Java можно развернуть для Службы приложений Azure в рамках рабочих процессов непрерывного развертывания (CD).

Введение

Это руководство объясняет, как использовать GitHub Actions для создания и развертывания проекта Java в Службе приложений Azure.

Предварительные требования

Перед созданием рабочего процесса GitHub Actions сначала нужно выполнить следующие действия по настройке:

  1. Создать план Службы приложений Azure.

    Например, можно использовать Azure CLI для создания нового плана Службы приложений:

    Shell
    az appservice plan create \
       --resource-group MY_RESOURCE_GROUP \
       --name MY_APP_SERVICE_PLAN \
       --is-linux

    В приведенной выше команде замените MY_RESOURCE_GROUP на существующую группу ресурсов Azure, а MY_APP_SERVICE_PLAN — на новое имя плана Службы приложений.

    Дополнительные сведения об использовании Azure CLI см. в документации по Azure:

    • Сведения о проверке подлинности см. в разделе Вход с помощью Azure CLI.
    • Сведения о создании группы ресурсов см. в разделе, посвященном команде az group.
  2. Создание веб-приложения.

    Например, можно использовать Azure CLI для создания веб-приложения Службы приложений Azure с помощью среды выполнения Java:

    Shell
    az webapp create \
        --name MY_WEBAPP_NAME \
        --plan MY_APP_SERVICE_PLAN \
        --resource-group MY_RESOURCE_GROUP \
        --runtime "JAVA|11-java11"

    В приведенной выше команде замените параметры собственными значениями, где MY_WEBAPP_NAME — это новое имя для веб-приложения.

  3. Настройте профиль публикации Azure и создайте секрет AZURE_WEBAPP_PUBLISH_PROFILE.

    Создайте учетные данные развертывания Azure с помощью профиля публикации. Дополнительные сведения см. в разделе Создание учетных данных развертывания в документации по Azure.

    В репозитории GitHub создайте секрет AZURE_WEBAPP_PUBLISH_PROFILE, содержащий сведения из профиля публикации. Дополнительные сведения о создании секретов см. в разделе Зашифрованные секреты.

  4. При необходимости настройте среду развертывания. Среды используются для описания общего целевого объекта развертывания, такого как production, staging или development. Когда рабочий процесс GitHub Actions выполняет развертывание в среде, эта среда отображается на главной странице репозитория. Среды можно использовать, чтобы требовать утверждения для продолжения задания, ограничить, какие ветви могут активировать рабочий процесс или ограничить доступ к секретам. Дополнительные сведения о создании сред см. в разделе Использование сред для развертывания.

Создание рабочего процесса

Выполнив предварительные требования, можно приступить к созданию рабочего процесса.

В следующем примере рабочего процесса показано, как создать и развернуть проект Java в Службе приложений Azure при отправке в ветвь main.

Убедитесь, что в ключе env рабочего процесса в качестве имени созданного веб-приложения задано значение AZURE_WEBAPP_NAME. Если вы хотите использовать версию Java, отличную от 11, измените JAVA_VERSION.

Если вы настроили среду развертывания, измените значение environment на имя среды. Если вы не настроили среду , удалите ключ environment.

YAML
# Этот рабочий процесс использует действия, которые не сертифицированы GitHub.
# Они предоставляются сторонним поставщиком, и на них распространяются
# отдельные условия обслуживания, политика конфиденциальности и поддержка
# документации.

# GitHub рекомендует закрепить действия в фиксации SHA.
# Чтобы получить более новую версию, потребуется обновить SHA.
# Вы также можете ссылаться на тег или ветвь, однако действие может измениться без предупреждения.

name: Build and deploy JAR app to Azure Web App

env:
  AZURE_WEBAPP_NAME: MY_WEBAPP_NAME   # set this to your application's name
  JAVA_VERSION: '11'                  # set this to the Java version to use

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Set up Java version
        uses: actions/setup-java@v3
        with:
          java-version: ${{ env.JAVA_VERSION }}
          cache: 'maven'

      - name: Build with Maven
        run: mvn clean install

      - name: Upload artifact for deployment job
        uses: actions/upload-artifact@v3
        with:
          name: java-app
          path: '${{ github.workspace }}/target/*.jar'

  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v3
        with:
          name: java-app

      - name: Deploy to Azure Web App
        id: deploy-to-webapp
        uses: azure/webapps-deploy@05ac4e98bfa0f856e6669624239291c73ca27698
        with:
          app-name: ${{ env.AZURE_WEBAPP_NAME }}
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
          package: '*.jar'

Дополнительные ресурсы

Следующие ресурсы также содержат полезные сведения на эти темы:

  • Исходный начальный рабочий процесс см. в azure-webapps-java-jar.yml из репозитория starter-workflows GitHub Actions.
  • Действие, используемое для развертывания веб-приложения, является официальным действием Azure/webapps-deploy Azure.
  • Дополнительные примеры рабочих процессов GitHub Actions, которые развертываются в Azure, см. в репозитории actions-workflow-samples.