Cloudflareのキャッシュをコマンドから手っ取り早くパージする (APIトークン利用)


株式会社シンプルウェイ Advent Calendar 2020 の7日目です。

参加人数少ないのでカレンダーに穴があきそう。。。


Cloudflare便利ですね。無料でキャッシュつきリバースプロキシが使えるなんて素敵です。

Cloudflareでキャッシュを活用する目的は、負荷対策だったり転送量対策だったりするので、キャッシュ対象のファイル範囲が広かったり時間が長かったりと、大概キャッシュを強めに設定すると思います。

ところで、キャッシュを強めにするとコンテンツを更新したときに反映されるまでのタイムラグが気になります。管理画面からキャッシュパージすればすぐに反映させることは可能ですが、いちいちログインするのが面倒です。

そんなときにはAPIを使ってコマンド一発でキャッシュ削除しちゃいましょう。

APIトークンの準備

APIの実行はトークンを利用することとし、トークンには特定サイトのキャッシュパージのみ実行できる権限にしておきます。万が一トークンが漏洩しても影響を最小限にできます。

まずCloudflareのAPIダッシュボードにアクセスします。

「トークンを作成する」ボタンを選択します。

「カスタム トークン」セクションの「始める」ボタンを選択します。

画像のようにAPIトークンの権限を設定します。

確認画面で「トークンを作成する」ボタンを選択します。

発行されたトークンをメモしておきます。

ゾーンIDの確認

次にサイトのゾーンIDを確認します。

サイト設定のダッシュボード画面右下に表示されているゾーンIDをメモしておきます。

パージコマンド

おもむろに下記コマンドを実行します。

curl -X POST "https://api.cloudflare.com/client/v4/zones/[ゾーンID]/purge_cache" -H "Authorization: Bearer [APIトークン]" -H "Content-Type: application/json" --data '{"purge_everything":true}' 

[ゾーンID] と [APIトークン] は上でメモした値に置き換えてください。

JSONがレスポンスされるので、その中に "success": true が含まれていれば成功です。