Создание плана 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 MyRGAlways 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 — локальная установка не требуется.
Все уроки этого курса
- Создание плана App Service и веб-приложения
- Слоты развертывания и переключение
- Автомасштабирование и пользовательские домены
- Аутентификация и сетевое взаимодействие App Service