【その2】Shifter を使って WordPress サイトを静的化、データをダウンロードして別サーバーで公開!

前回は、手動でデータをダウンロード・公開していましたが、Webhook を使って自動化できます!

Webhook ってなに??

Webhookとは、あるアプリケーションにイベント(きっかけ)が発生すると、指定されたアプリケーションに向けて「お知らせ」を送る仕組みです。次に処理を行なってほしい走者にバトンを渡すイメージです。

Shifter Webhooks の場合

Shifter は、新しいアーティファクトが完了(デプロイが完了)すると、指定されたアプリケーションに向けて、「お知らせ」を送ります。
「お知らせ」の中身は、サイトID、アーティファクトID、データをダウンロードするための URL になります。

公式ドキュメント:Shifter Outgoing Webhooks at Generate

今回やること

Shifter で作った静的サイトを別サーバー(Netlify)に公開します。

Shifter でサイトを作成・更新し、静的ファイルを生成する。(手動)
静的ファイルの生成が終了すると、サーバー(Netlify)に「お知らせ(サイトID、アーティファクトID、ダウンロードURL)」が送られる。(ここWebhook!!自動)
「お知らせ」を受けた Netlify がダウンロードURLからデータをダウンロード・展開して公開。(自動)

これで、Shifter でデプロイするだけで、別サーバーにデータが公開されます。

必要なアカウント

  • Shifter (Tier 2 以上のプランが必要です)
  • GitHub
  • Netlify

やってみましょう!

「お知らせ」を受けた Netlify にしてほしいことを設定する

Netlify に Shifter からのデータを公開するための設定は、すでに公式の Shifter GitHubリポジトリにありますので、これを使います。

Github にログイン後、下記URL にアクセスして、Fork (自分の Github アカウントに複製)します。

ログインしてなかったら、この画面の後にログインの画面が表示されます。

↓このまま特に変更することはなく「Create fork」をクリックします。

特に変更の必要もなく、次へごー。

↓はい、これで 自分の Github アカウントに複製できましたー!

このフォークしたプログラムに、なにが記載されているのかと言いますと、「お知らせ」を受け取った後に Netlify がやることが命令として記載されています。

  1. Webhook で送信されたダウンロード URL からデータをダウンロード。
  2. ファイルを展開。
  3. 指定のディレクトリに公開。

次に、 Netlifyにサイトを作成して、Git(命令) と連携させます。

Netlify にログインして、「Add new site」 をクリックし、サイトを作成します。

ダークモード使ってるから黒いだけです…

↓[GitHub]を指定して、認証を許可します。

ぽちっとな。

↓認証すると、Git のレポジトリがリスト表示されます。

ここに、先ほど複製したレポジトリがない場合は、リンクをクリックして該当のレポジトリを追加します。

↓Git の設定画面が開くので、ここで「webhook-artifact-created」を選択。

↓表示されました!これを選択します!!

↓特に変更することはないと思いますが、枠のところはこんな感じです。

最後に「Deploy site」をクリックします。

↓エラーが表示されますが、これは正しいエラーです。

慌てなくてOK!!

設定が終わり「Deploy site」をクリックしたことで、Netlify がデプロイを開始します。
ですが、まだ Shifter から「お知らせ(ダウンロードURL)」を受け取っていません。
なので今はエラーで問題ありません。次に進みましょう!

最後に Webhook URL を Shifter に設定して、仕組みを完了しましょう。

Webhook URL とは?

これは「お知らせ」をどこに送るかを指定するものです。

「お知らせ」を受け取る側の Netlify の管理画面で設定・取得します。

先ほど作ったサイトの設定画面を開きます。

↓サイドバー「Build & deploy」を選択して、画面をスクロール。
「Build hooks」の「Add build hook」をクリックします。

画面の下の方にある、「Add build hook」をクリック!

↓「Build hook name」にわかりやすい名前をつけます。そして「Save」。

↓「Webhook URL」が発行されますので、これをコピーしておきます。

Shifter の管理画面に戻って Webhook を設定します!

その前に、確認しましょう

Shifter Webhooks を使うためには、プランはTier 2以上を選択する必要があります。

サイドバー設定のサイト設定ページで「公開サイトへの自動デプロイ」をオフにしてください。

オフにしていないと、Shifter 上でサイトが公開されてしまいます。

↑ここでーす!

では、Shifter Webhooks の設定をします。
「開発環境」>「Webhooks」の画面にある「新しい Webhooks を追加する」をクリック。

↓イベントタイプ、メソッド、URL(Netlify で取得してコピーした Webhook URL)を入力します。

↓追加されると、リストとして表示されます。

作った Webhooks は、右の三点リンクの「Disable」から一時停止にすることもできます。

これで、準備はオッケーです!できました!

デプロイして Webhook の実行を確認してみましょう!

では、Shifter でサイトを更新して、管理画面から「デプロイする」をクリックしましょう。

ビルド中となっています。

待ちます…

ぼんやり待っててもいいんですが、ここはちょっと時間がかかるので、このまま放置しとくのがいいかも。
デプロイが完了するとメールでお知らせが届きますので、それから確認してみましょう。

Webhook の確認の仕方

↓デプロイが完了すると、Webhook が実行され、Shifter の管理画面に履歴が表示されます。

ちゃんと表示されています。

公開は、Netlify 側で確認をしましょう

↓「Deploys」のところ!Published となっていますね!!!

公開が成功しています!

↓サイト表示も確認してみましょうー!見えてますねー!

横着して、アイキャッチ画像設定するの忘れてた…

ちょっと長かったですが、一度やってしまえばあとは楽々運用ができるので、やった価値ありです!

補足情報

公式ドキュメント:Webhook を手動で再実行できるようになりました

↓こちらの記事にも、今回と同じ内容が記載されています。こっちの方がすっきりしてるかも(好みで参照してくださいw

この記事を書いた人

yotigory

Web制作会社でマークアップやってます。やってみよう!という感覚で工作したりカメラとったりコミュニティ活動したりしてます。みんなでワイワイ飲んだりするのが好きです♪
気分でフラリとおでかけします。