0Pricing
Azure Fundamentals · Урок

Создание плана App Service и веб-приложения

Подготовьте план App Service, разберитесь с уровнями SKU и разверните веб-приложение из ZIP-файла или репозитория GitHub с помощью непрерывного развертывания.

«Создание плана App Service и веб-приложения» — бесплатный урок Azure Fundamentals на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Azure Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Azure Fundamentals содержит 4 уроков всего.

Что такое Azure App Service

Azure App Service — это полностью управляемая платформа как услуга (PaaS) для размещения веб-приложений, REST API и мобильных серверных частей. Вы развертываете свой код, а Azure берет на себя исправление ОС, балансировку нагрузки и автоматическое масштабирование базовой инфраструктуры. App Service поддерживает .NET, Node.js, Python, Java, PHP, Ruby и пользовательские контейнеры, что делает его одним из самых универсальных вычислительных сервисов Azure.

План App Service: единица тарификации

План App Service определяет регион, ОС (Windows или Linux) и вычислительные ресурсы (CPU, RAM), выделенные Вашим приложениям. Вы платите за план, а не за отдельные приложения — несколько приложений могут совместно использовать один план без дополнительной платы. Уровень SKU плана определяет такие возможности, как количество слотов развертывания, поддержка автоматического масштабирования и интеграции с VNet.

# Create an App Service Plan (Linux, Standard S1 tier)
az appservice plan create \
  --name MyAppServicePlan \
  --resource-group MyRG \
  --location eastus \
  --sku S1 \
  --is-linux

Уровни SKU планов App Service

Планы App Service доступны на нескольких уровнях с возрастающими возможностями и стоимостью. Free (F1) и Shared (D1) работают на общей инфраструктуре и предназначены только для разработки. Basic (B1-B3) предоставляет выделенные вычислительные ресурсы без автоматического масштабирования и слотов. Standard (S1-S3) добавляет автоматическое масштабирование и 5 слотов развертывания. Premium (P1-P3v3) предлагает больше вычислительных ресурсов и интеграцию с VNet. Isolated (I1-I3) работает в частной выделенной среде.

# App Service Plan tiers (ordered by capability)
# Free:     F1  — shared, 60 min/day compute
# Shared:   D1  — shared, custom domain support
# Basic:    B1, B2, B3 — dedicated, no autoscale
# Standard: S1, S2, S3 — autoscale, 5 slots
# Premium:  P1v3, P2v3, P3v3 — VNet integration
# Isolated: I1v2, I2v2 — App Service Environment (ASE)

Создание Web App

Web App — это отдельное приложение, размещенное в плане App Service. Каждое веб-приложение получает уникальное имя узла по умолчанию в формате <appname>.azurewebsites.net. При создании приложения указывается стек среды выполнения, например NODE:18-lts или DOTNET:7.0, хотя позднее его можно изменить без повторного развертывания.

# Create a Node.js Web App on the Linux plan
az webapp create \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --plan MyAppServicePlan \
  --runtime 'NODE:18-lts'

# Access the app
# https://MyUniqueWebApp.azurewebsites.net

Развертывание кода в App Service

App Service поддерживает несколько способов развертывания. Развертывание ZIP — самый простой способ: упакуйте приложение и отправьте ZIP-файл. Развертывание через Git подключается к репозиторию Git и выполняет сборку после отправки изменений. GitHub Actions и Azure Pipelines являются рекомендуемыми интеграциями CI/CD. Также можно развернуть образ контейнера Docker из Azure Container Registry или любого общедоступного реестра.

# Deploy a ZIP package
zip -r app.zip . --exclude '.git/*' --exclude 'node_modules/*'
az webapp deploy \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --src-path app.zip

# Configure deployment from GitHub
az webapp deployment source config \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --repo-url https://github.com/myorg/myrepo \
  --branch main \
  --manual-integration

Параметры приложения и переменные среды

App Service предоставляет параметры приложения в виде переменных среды для кода приложения. Это рекомендуемый способ передавать конфигурацию, например строки подключения к базе данных, ключи API и флаги функций, не встраивая их в код. Параметры шифруются при хранении; для них можно использовать секреты Azure Key Vault с помощью строки ссылки на Key Vault, что устраняет необходимость хранить секреты на портале.

# Set application settings
az webapp config appsettings set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --settings \
    NODE_ENV=production \
    DATABASE_URL='@Microsoft.KeyVault(SecretUri=https://mykv.vault.azure.net/secrets/dburl/)'

# View current settings
az webapp config appsettings list \
  --name MyUniqueWebApp \
  --resource-group MyRG

Always On и проверки работоспособности

По умолчанию App Service выгружает приложение после периода бездействия. Включите Always On (уровень Standard или выше), чтобы приложение постоянно оставалось загруженным; это важно для фоновых заданий и API, которым необходим быстрый отклик после холодного запуска. Функция проверки работоспособности отправляет запрос по указанному Вами URL и удаляет нездоровые экземпляры из балансировщика нагрузки, обеспечивая автоматическую замену экземпляров.

# Enable Always On
az webapp config set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --always-on true

# Configure health check endpoint
az webapp config set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --generic-configurations '{"healthCheckPath": "/health"}'

Журналы и диагностика App Service

App Service предоставляет встроенное ведение журналов для журналов приложения (stdout/stderr из Вашего кода), журналов веб-сервера (журналов HTTP-доступа) и журналов развертывания. Вы можете просматривать журналы в реальном времени с помощью Azure CLI или включить хранение журналов в Blob Storage. Включите Application Insights для распределенной трассировки и мониторинга производительности на протяжении всего жизненного цикла запроса.

# Enable application logging to file system
az webapp log config \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --application-logging filesystem \
  --level information

# Tail logs in real time
az webapp log tail \
  --name MyUniqueWebApp \
  --resource-group MyRG

Ручное масштабирование App Service

Вы можете выполнить масштабирование App Service вверх (перейти на более производительный SKU с большим объёмом CPU/RAM) или наружу (добавить дополнительные экземпляры). Ручное масштабирование наружу немедленно увеличивает количество экземпляров и доступно начиная с уровня Basic. Переход на более высокий уровень позволяет использовать дополнительные возможности, такие как слоты развертывания и интеграция с VNet, без прерывания работы службы — во время изменения SKU приложение ненадолго перезапускается.

# Scale out: increase instance count to 3
az appservice plan update \
  --name MyAppServicePlan \
  --resource-group MyRG \
  --number-of-workers 3

# Scale up: upgrade from S1 to P2v3
az appservice plan update \
  --name MyAppServicePlan \
  --resource-group MyRG \
  --sku P2V3

Мониторинг на портале Azure

Панель обзора App Service отображает графики в реальном времени для запросов, времени ответа, входящего и исходящего трафика данных, а также частоты ошибок. Панель диагностики и устранения проблем запускает автоматические средства обнаружения распространённых неполадок. На вкладке метрик можно закреплять пользовательские диаграммы и настраивать правила оповещений. Интеграция с Application Insights обеспечивает сквозную трассировку запросов и карты зависимостей во всём стеке приложения.

# View recent HTTP metrics via CLI
az monitor metrics list \
  --resource '/subscriptions/<sub>/resourceGroups/MyRG/providers/Microsoft.Web/sites/MyUniqueWebApp' \
  --metric 'Requests,Http5xx,AverageResponseTime' \
  --interval PT1M \
  --start-time 2025-01-01T00:00:00Z \
  --end-time 2025-01-01T01:00:00Z

Стратегии ценообразования App Service

Оптимизируйте расходы на App Service, объединяя несколько приложений в одном плане, если их требования к ресурсам совместимы, используя бесплатный уровень для сред разработки и тестирования, а также применяя резервирования Azure (с обязательством на 1 или 3 года) для предсказуемых рабочих нагрузок в Production — это позволяет сэкономить до 55%. Автомасштабирование (рассматривается на следующем уроке) помогает не платить за простаивающие экземпляры в непиковые часы.

Быстрая проверка

Проверьте, насколько хорошо Вы усвоили концепции Microsoft Azure Fundamentals (AZ-900) из этого урока.

Итоги урока

В этом уроке Вы узнали, что план App Service определяет уровень вычислительных ресурсов и единицу тарификации для веб-приложений, код можно развертывать через ZIP, Git или конвейеры CI/CD, а параметры приложения передают конфигурацию в виде переменных среды, не требуя встраивать секреты в код. Далее мы рассмотрим слоты развертывания для выпусков без простоя.

Часто задаваемые вопросы

Урок «Создание плана App Service и веб-приложения» бесплатный?

Да — полный текст урока «Создание плана App Service и веб-приложения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Azure Fundamentals, подпишись на CoddyKit PRO. Курс Azure Fundamentals содержит 4 уроков всего.

Чему я научусь в уроке «Создание плана App Service и веб-приложения»?

Подготовьте план App Service, разберитесь с уровнями SKU и разверните веб-приложение из ZIP-файла или репозитория GitHub с помощью непрерывного развертывания. Ты практикуешь Azure Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Azure Fundamentals?

Предыдущий опыт не требуется. Azure Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Создание плана App Service и веб-приложения»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Azure Fundamentals?

Да. Каждый урок Azure Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание плана App Service и веб-приложения
  2. Слоты развертывания и переключение
  3. Автомасштабирование и пользовательские домены
  4. Аутентификация и сетевое взаимодействие App Service
← Назад к Azure Fundamentals