4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Tips: heroku deploy時にCloudflareのキャッシュをpurgeする

4
Posted at

これは何

herokuで運営しているサービスでCloudflareを使っている場合、デプロイ後にキャッシュをpurgeする必要がある場合は多いと思います。
キャッシュを削除したい際に、毎回手動でやるのではなく、APIを用いてheroku deploy時に自動でpurgeされるようにする方法を記事にしたものです。

削除APIを実行するためのシェルスクリプトを用意するスクリプトを用意する

はじめにCloudflareのAPIを用いた削除用のスクリプトを用意します。
トークンなどの発行方法は

が参考になると思います。

作成するシェルスクリプトは以下のようなものです。

purge.sh
curl -s -X DELETE "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/purge_cache" \
-H "X-Auth-Email: ${EMAIL}" \
-H "X-Auth-Key: ${API_KEY}" \
-H "Content-Type: application/json" \
--data '{"purge_everything":true}'

今回は全てのキャッシュを削除する設定にしています。
特定のファイルのキャッシュのみ削除する場合は

を参照してスクリプトを変更してみてください。

herokuデプロイ時に作成したスクリプトを実行する

herokuではrelease phaseという機能を用いることで、デプロイ時に実行するコマンドを指定することができます。これを用いて作成したスクリプトをデプロイ時に実行するようにします。

release時に実行するコマンドはレポジトリのrootディレクトリにProcfileを配置し、そのProcfileを用いることで設定することができます。

release: bash purge.sh

これによって、herokuデプロイ時に自動でCloudflareのキャッシュをpurgeすることができるようになります。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?