focaccia
microCMSを更新した時に、WebhookでVercelに自動デプロイする方法。注意すべき点も解説!

microCMSを更新した時に、WebhookでVercelに自動デプロイする方法。注意すべき点も解説!

渡邊陽平
渡邊陽平

「microCMSでコンテンツを更新したのに、サイトに反映されていない!」

これは、microCMSなどのヘッドレスCMSを使っている際によくあることです。Next.jsなどのフレームワークを使っている場合、サイトを更新するには、Vercel側でデプロイ(再ビルド)を実行する必要があります。

これを自動化するためには、Webhook(ウェブフック)という仕組みを使います。

本記事では、Webhookを使って「microCMSでコンテンツを更新した時に、Vercelに自動デプロイする」ための設定手順と、運用でハマらないための注意点を解説します。

システム開発・Webサービス開発はフォカッチャにお任せください!無料相談受付中!

Vercel側でDeploy Hooksを作成

前提として、VercelとGitHubの連携は済んでいる状態とします。

まずは、Vercelの管理画面で、Deploy Hooks(デプロイフック)を作成します。Deploy Hooks とは「デプロイを実行するためのURL」のことで、具体的には、「このURLにアクセスするとデプロイが実行される」というものです。

Vercelの管理画面で対象のプロジェクトを開き、左下のSettingsを押してください。

左側に、Gitというメニューがありますので、こちらを押し、Deploy Hooksのところまでスクロールしてください。

Nameには、このデプロイフックの名前を入力します。(今回は、本番環境にデプロイする想定なので、 Production Deploy Hookと入力してみました。)

Branchには、デプロイするGitブランチ名を入力します。本番環境であれば、一般的にはmainになるかと思います。

入力できたら、 Create Hookボタンを押します。すると、以下の画面のように、デプロイフックが作成されます。

URLが発行されていることがわかるかと思います。このURLにアクセスすると、 mainブランチのソースがデプロイされる、ということになります。

Copyボタンを押して、URLをコピーしておきましょう。

これで、Vercel側の設定は完了です。

microCMS側でWebhookを設定

次に、microCMS 側での設定を行います。

microCMSの管理画面にて、左側メニューから対象のコンテンツ(API)を選択します。今回は、「ブログ記事を更新したらVercelデプロイ」にしようと思うので、「ブログ」を選択します。

右上に「API設定」ボタンがありますので、こちらを押します。

API設定のセクションにてWebhookを選択し、 追加ボタンを押します。

「サービスの選択」というダイアログが表示されますので、Vercelを選択してください。

設定画面が表示されますので、「基本設定」のセクションにて、先ほどVercel側でコピーしたURLを貼り付けます。(その上の「Webhookの名前」は空欄でOKですが、管理のために入力することも可能です。)

「通知タイミングの設定」のセクションでは、「何をした時にWebhookを実行するか」を選択することができます。今回は特にいじらずデフォルトのままにしておきますが、適宜設定をしておきましょう。

これで、microCMS 側での設定も完了です。

動作確認

ここまでの設定ができたら、動作確認をしましょう。

microCMS側で何らかのコンテンツ(今回はブログ)を更新し、公開ボタンを押します。その後、Vercelの管理画面にてDeploymentsタブを確認します。

ステータスが「Building」のデプロイが作成されていれば、無事に動いていることになります。デプロイが完了すれば、サイト上に更新が反映されているはずです。

これで、すべての手順が完了です!

注意すべき点

Webhook連携で便利にはなりましたが、実は注意すべきポイントがいくつかあるので、解説します。

1. 反映までにはタイムラグがある

Webhookが飛んでからVercelのビルドが完了するまで、サイトの規模によりますが数分かかることがあります。microCMSのコンテンツ更新担当者が、公開ボタンを押した直後にサイトを見て「変わっていない」と不安になる可能性があるため、事前に共有しておくと安心でしょう。

2. Vercelの無料プランには、1日あたりのビルド回数に上限がある

Vercelの無料プラン(Hobby)では、1日あたりのビルド回数が100回までと制限されています。そのため、頻繁に更新を繰り返すと制限に達する可能性があります。下書き保存の時はビルドしないようにするなどの対策が必要です。

参考:https://vercel.com/docs/limits

3. デプロイがエラーになると反映されない

Vercel側のデプロイが何らかの理由でエラーになってしまった場合、当然ではありますがサイトは更新されません。そのため、microCMSのコンテンツを更新した後は、念のためサイトを直接確認したり、デプロイエラーに気付けるような通知の仕組みを作っておくと安全です。

まとめ

microCMSとVercelをWebhookで連携することで、エンジニア以外でも簡単にサイト更新ができるようになります。ぜひ試してみてください!

システム開発・Webサービス開発はフォカッチャにお任せください!無料相談受付中!
この記事を書いた人
渡邊陽平
渡邊 陽平
株式会社フォカッチャ代表。九州大学卒業後、都内の音楽関連企業にてWebエンジニアとして勤務。独立後、個人事業主を経て株式会社フォカッチャを設立。音楽業界や中小企業・スタートアップ向けにWebシステム開発を行っています。