Skip to main content

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

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

Необходимые компоненты

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

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

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

    Bash
    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 с помощью среды выполнения Python:

    Bash
    az webapp create \ --name MY_WEBAPP_NAME \ --plan MY_APP_SERVICE_PLAN \ --resource-group MY_RESOURCE_GROUP \ --runtime "python|3.8" 

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

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

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

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

  4. Добавьте параметр приложения, который называется SCM_DO_BUILD_DURING_DEPLOYMENT, и задайте значение 1.

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

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

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

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

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

Если вы настроили среду развертывания, измените значение environment на имя среды. Если вы не настроили среду , или если рабочий процесс находится в частном репозитории, и вы не используете GitHub Enterprise Cloud, удалите ключ environment.

YAML
# Этот рабочий процесс использует действия, которые не сертифицированы GitHub. # Они предоставляются сторонним поставщиком, и на них распространяются # отдельные условия обслуживания, политика конфиденциальности и поддержка # документации. # GitHub рекомендует закрепить действия в фиксации SHA. # Чтобы получить более новую версию, потребуется обновить SHA. # Вы также можете ссылаться на тег или ветвь, однако действие может измениться без предупреждения. name: Build and deploy Python app to Azure Web App env: AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's name PYTHON_VERSION: '3.8' # set this to the Python version to use on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Set up Python version uses: actions/setup-python@v5 with: python-version: ${{ env.PYTHON_VERSION }} - name: Create and start virtual environment run: | python -m venv venv source venv/bin/activate  - name: Set up dependency caching for faster installs uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip-  - name: Install dependencies run: pip install -r requirements.txt # Optional: Add a step to run tests here (PyTest, Django test suites, etc.) - name: Upload artifact for deployment jobs uses: actions/upload-artifact@v4 with: name: python-app path: | . !venv/  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@v5 with: name: python-app path: . - name: 'Deploy to Azure Web App' id: deploy-to-webapp uses: azure/webapps-deploy@85270a1854658d167ab239bce43949edb336fa7c with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }} 

Дополнительные материалы

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