Развертывание Strapi в Azure App Service обеспечивает масштабируемую и безопасную платформу для размещения headless CMS. Ниже приведен обзор процесса, включая преимущества, шаги настройки и советы по устранению неполадок.
Преимущества развертывания Strapi в службе приложений Azure
- Автоматическое масштабирование : приложения служб Azure динамически регулируют ресурсы в зависимости от рабочей нагрузки, обеспечивая высокую доступность во время пиков трафика .
- Непрерывное развертывание : интеграция с Azure DevOps поддерживает автоматические обновления и непрерывное улучшение.
- Простая интеграция : экосистема Azure обеспечивает простое подключение к таким службам, как база данных Azure для MySQL или PostgreSQL, хранилище Azure и инструменты мониторинга .
- Повышенная безопасность : такие функции, как поддержка HTTPS, интеграция с пользовательскими доменами и встроенные механизмы аутентификации, защищают ваше приложение и данные .
- Мониторинг и аналитика : такие инструменты, как Application Insights, предоставляют метрики для мониторинга производительности и устранения неполадок .
Действия по развертыванию Strapi в службе приложений Azure
1. Подготовка ресурсов
Используйте портал Azure для создания следующих объектов:
- Группа ресурсов : организуйте все связанные ресурсы в одну группу.
- Веб-приложение :
- Публикация: Code
- Стек выполнения: Node.js (например, Node 16 LTS или Node 20 LTS)
- Операционная система: Linux (предпочтительно для лучшей совместимости)
- План обслуживания приложений: выберите план на основе ожидаемой рабочей нагрузки .
- База данных :
- Используйте базу данных Azure для MySQL или PostgreSQL.
- Настройте публичный доступ и настройте учетные данные .
- Учетная запись хранения : для управления контентом, таким как изображения и файлы .
2. Настройка приложения Strapi
- Убедитесь
server.js
, что точка входа для вашего приложения содержит следующее содержимое:const strapi = require("strapi"); strapi().start();
- Измените
/config/server.js
для доступа к переменным среды дляHOST
иPORT
:
host: process.env.HOST, port: process.env.PORT || 3000,
3. Развертывание кода
Вы можете развернуть свое приложение Strapi одним из следующих способов:
а. Развертывание ZIP-архива
- Установите зависимости локально (
npm install
илиyarn install
). - Создайте zip-архив вашего приложения.
- Используйте портал Azure или CLI для загрузки ZIP-файла в ваше веб-приложение.
б) Интеграция с GitHub
- Загрузите свой код Strapi в репозиторий GitHub.
- Подключите репозиторий через Центр развертывания в Azure.
- Настройте конвейеры сборки, которые устанавливают зависимости, собирают приложение (
yarn build
) и развертывают его.
в) Конвейеры Azure DevOps
Создайте конвейеры для сборки и развертывания:
- Задачи построения конвейера:
yarn install set NODE_ENV=PRODUCTION yarn build rm -rf .cache .git
- Задача развертывания конвейера:
- task: AzureRmWebAppDeployment@4 inputs: azureSubscription: 'YourSubscription' appType: 'webAppLinux' WebAppName: 'YourAppName'
4. Подключить базу данных
Обновите конфигурацию Strapi для подключения к базе данных с использованием переменных среды:
module.exports = { database: { client: 'mysql', // or 'postgres' connection: { host: process.env.DB_HOST, port: process.env.DB_PORT, database: process.env.DB_NAME, user: process.env.DB_USER, password: process.env.DB_PASS, }, }, };
5. Проверка развертывания
Получите доступ к своему приложению через его URL (например, https://your-app-name.azurewebsites.net
). Обратите внимание, что может потребоваться до 15 минут, чтобы URL стал активным после развертывания .
Советы по устранению неполадок
- Если развернутый сайт пуст:
- Проверьте журналы в Службе приложений > Центр развертывания > Журналы .
- Обеспечьте надлежащие разрешения для доступа к базе данных .
- Избегайте записи в
wwwroot
, так как в некоторых конфигурациях он доступен только для чтения (например, «Запуск из пакета») . - Если развертывание не удалось, но журналы показывают успешное выполнение, подождите перед повторным развертыванием или обновлением страницы .
Выполнив эти шаги, вы сможете успешно развернуть Strapi в службе приложений Azure, используя ее возможности масштабируемости, безопасности и интеграции.