С Cloudflare Pages развертывание приложений Jamstack стало проще, чем когда-либо — интеграция с GitHub и простой git push развертывает ваш сайт за считанные минуты. Однако одним из ограничений Pages было то, что запуск развертывания на вашем сайте происходит только в рамках фиксации на GitHub. Мы начали думать о том, как пользователи, которые постоянно создают контент на своем сайте — наши блоггеры и писатели — могут не всегда редактировать свою копию напрямую через код, а, возможно, через другую службу. Безголовые системы управления контентом (CMS) — простое решение этой проблемы, позволяющее пользователям сохранять свой внутренний контент через интерфейс редактирования в качестве службы для такого приложения, как Pages.
Это заставило нас задуматься: а что, если бы мы могли запускать развертывание на основе обновлений, сделанных в других местах, а не только через GitHub? Сегодня мы с гордостью объявляем о новом способе подключения вашего приложения Pages к вашим автономным CMS и базам данных: представляем Deploy Hooks для Pages.
Что такое безголовая CMS?
Безголовые CMS, такие как Contentful, Ghost и Sanity.io, позволяют оптимизировать форматирование контента для любого типа интерфейса. С помощью подобных инструментов вы можете использовать «несвязанную» модель управления контентом, в которой все, на чем вам нужно сосредоточиться, — это писать контент в интерфейсе редактирования CMS, а все остальное делать API!
Звучит здорово! В чем подвох?
Мы начали думать о последствиях для тех из вас, кто интегрируется с этими безголовыми инструментами, и о том, как может выглядеть ваш рабочий процесс в отношении Pages. Вы могли бы создать, например, приложение своего блога на Pages, но обновлять весь свой контент прямо на вашей автономной CMS и можете вносить изменения в свой контент три-четыре раза в день. Итак, как именно данные из вашей CMS отображаются на вашем сайте Pages и синхронизируются? Войдите в Deploy Hooks!
Что такое хуки развертывания?
Хуки развертывания — это URL-адреса, созданные на страницах, которые принимают HTTP-запрос POST для запуска новых развертываний за пределами области действия команды git. Вместо того, чтобы вручную повторно развертывать ваш сайт с помощью другого git push, каждый раз, когда вы обновляете контент в выбранной автономной CMS, Deploy Hook автоматически отправляет обновление в режиме реального времени на Pages. На стороне страниц после получения этих обновлений будет запущена новая сборка сайта, которая будет включать любые обнаруженные новые данные или контент. Это так просто!

Как я могу создать ловушку развертывания?
Чтобы настроить обработчик развертывания, перейдите к Развернуть хуки в настройках проекта Pages. В этом разделе есть два входных параметра, необходимых для правильной настройки обработчика развертывания и получения вашего URL:
- Имя перехватчика развертывания: Вы можете назвать свой обработчик развертывания чем-то вроде «Contentful» или «Мой блог», чтобы определить, какой источник отслеживает обработчик развертывания. Уникальное имя для каждого крючка развертывания также поможет вам различать хуки в том случае, если вы создаете несколько хуков развертывания для своего сайта Pages.
- Ветвь для сборки: Вы можете указать, какая ветвь будет создана и развернута при запросе URL-адреса с помощью Deploy Hook. Это особенно полезно, если вы хотите сначала внести изменения, а не отправлять их прямо в производственную ветку.

Как я могу использовать Deploy Hook с моей автономной CMS?
Вы можете поместить уникальный URL-адрес, указанный на панели управления, практически в любую службу, которая принимает URL-адрес Deploy Hook. В автономной CMS вы можете создать и настроить новый веб-перехватчик и, в зависимости от инструмента, иногда выбрать, какие события вы хотите инициировать развертывания. После того, как вы настроили этот веб-перехватчик, вы можете вставить URL-адрес перехватчика развертывания, предоставленный Pages, чтобы подключить выбранную CMS к проекту Pages. После этого все готово к обновлению контента в вашем безголовом инструменте.
Что еще я могу делать с помощью Deploy Hook?
После создания ловушки развертывания Pages также предоставляет вам фрагмент HTTP-запроса POST с вашим URL-адресом, который выглядит примерно так:
curl -X POST "https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/ 66c5dd3a-989f-4ba7-a6e2-6d2695524d7”
Каждый раз, когда вы выполняете фрагмент, вы запускаете новую сборку на своем сайте Pages. Помимо использования этого фрагмента для принудительного развертывания в командной строке, вы также можете настроить конвейер CI / CD и запускать развертывание только при определенных условиях. Например, вы хотите выполнить развертывание только в том случае, если в определенных каталогах были изменения, и только после прохождения обширного набора тестов. Кроме того, этот фрагмент полезен для планирования триггера CRON для запуска сборок на определенной временной шкале или ритме. Подробнее о том, как использовать хуки развертывания Pages, читайте в нашей документации.
Попробуйте сами!
Звучит весело? Попробуйте сами, используя наше руководство «Как создать блог с помощью Nuxt.js и Sanity.io на страницах Cloudflare» или создайте свой собственный. Нам не терпится увидеть, что вы создаете на Pages с помощью Deploy Hooks!
PS — набираем!
Хотите помочь нам сформировать будущее разработки в Интернете? Присоединиться к нашей команде!