通过 Deploy Hooks,你可以使用源仓库提交之外的事件源触发部署。每个事件源可获取自己的唯一 URL,该 URL 将接收 HTTP POST 请求以启动新部署。此功能允许你将 Pages 与新的或现有的工作流集成。例如,你可以:
- 无头 CMS 内容变更时自动部署新构建
- 实现完全自定义的 CI/CD 流水线,仅在所需条件下部署
- 安排 CRON 触发器,在固定时间线更新网站
要创建 Deploy Hook:
-
在 Cloudflare 仪表板中,前往 Workers & Pages 页面。
Go to Workers & Pages ↗ -
选择你的 Pages 项目。
-
前往 Settings(设置) > Builds(构建),选择 Add deploy hook(添加部署钩子) 开始配置。
配置 Deploy Hook 时,必须输入两个关键参数:
- Deploy hook name: Deploy Hook 的唯一标识符(例如
contentful-site) - Branch to build: Deploy Hook 应构建的仓库分支
配置完成后,Deploy Hook 的唯一 URL 即可使用。你将看到 URL 以及可复制的 POST 请求代码片段。
每次向 Deploy Hook 发送请求时,都会触发新构建。查看部署日志的 Source 列,了解哪些部署由 Deploy Hook 触发。
Deploy Hooks 与你的项目唯一关联,使用时无需额外身份验证。虽然这提供了完全的灵活性,但请务必像保护任何专有信息或应用密钥一样保护这些 URL。
若怀疑 Deploy Hook 被未授权使用,应删除该 Deploy Hook 并生成新的替代。
每个 CMS 提供商不同,与 Pages Deploy Hooks 的集成方式也各异。以下部分包含若干流行 CMS 平台的分步说明。
Contentful 通过 Webhooks(Webhook) 功能支持与 Cloudflare Pages 集成。在 Contentful 项目设置中,前往 Webhooks(Webhook),创建新 Webhook,在 URL 字段中粘贴唯一的 Deploy Hook URL。可选地,你可以指定 Contentful Webhook 应转发的事件。默认情况下,Contentful 会在所有项目活动时触发 Pages 部署,这可能过于频繁。你可以筛选特定事件,如 Create、Publish 等。
你可以通过创建新的 Custom Integration(自定义集成) 配置 Ghost 网站触发 Pages 部署。在 Ghost 网站设置中,在 Integrations(集成) 页面创建新的 Custom Integration。
创建的每个自定义集成可附加多个 webhook。选择 Add webhook(添加 webhook),将 Site changed (rebuild)(站点已更改(重新构建)) 作为 Event(事件),然后将唯一的 Deploy Hook URL 粘贴为 Target URL(目标 URL) 值。创建此 webhook 后,Ghost 网站变更时 Cloudflare Pages 应用将重新部署。
在 Sanity 项目的 Settings 页面,找到 Webhooks(Webhook) 部分,添加 Deploy Hook URL,如下所示。默认情况下,Webhook 会为 Sanity 项目内的所有数据集触发 Pages Deploy Hook。你可以使用 Dataset(数据集) 字段将通知筛选到单个数据集(如 production):
你可以通过安装免费的 WP Webhooks 插件配置 WordPress 触发 Pages Deploy Hook。该插件包含多个触发器,如 Send Data on New Post(新文章时发送数据)、Send Data on Post Update(文章更新时发送数据) 和 Send Data on Post Deletion(文章删除时发送数据),均允许 WordPress 数据变更时触发新的 Pages 部署。在插件设置侧边栏选择触发器,然后 Add Webhook URL ↗,粘贴唯一的 Deploy Hook URL。
在 Strapi Admin Panel 中,你可以设置和配置 webhook 以增强与 Cloudflare Pages 的体验。在 Strapi Admin Panel 中:
- 前往 Settings(设置)。
- 选择 Webhooks(Webhook)。
- 选择 Add New Webhook(添加新 Webhook)。
- 在 Name 表单字段中,为新 webhook 指定唯一名称。
- 在 URL 表单字段中,粘贴唯一的 Cloudflare Deploy Hook URL。
在 Strapi Admin Panel 中,你可以根据事件配置 webhook 触发。你可以调整这些设置,在创建、更新或删除 Strapi 条目或媒体资源时自动创建 Cloudflare Pages 站点的新部署。
请确保将 webhook 配置添加到为 Cloudflare 站点提供支持的 production ↗ Strapi 应用。
你可以在 Storyblok 中设置和配置 deploy hook 以触发事件。在 Storyblok 空间中,前往 Settings(设置),向下滚动到 Webhooks(Webhook)。将 deploy hook 粘贴到 Story published & unpublished(故事已发布和未发布) 字段,然后选择 Save(保存)。
