IDCFのCDNサービスにおいてfastly APIを使ってGzip圧縮設定を有効化する方法です。
まとめてしまうと次の2つのURLで実現できますがそこに至るまで試行錯誤紆余曲折だったので記録しておきます。
※IDCF互換方式のAPIはここでは触れません
APIs - API Docs | IDCFクラウド
Gzip | Fastly Developer Hub
事前準備
- CDN管理画面(ダッシュボード)の基本設定から、対象サービスのID(22桁くらいの英数字)を覚えておきます
- 管理画面左のメニュー "API" からFastlyとアカウント連携し、APIキー(43桁くらいの英数記号)を取得します
手順
- 対象サービスの現行バージョンを「クローン」します
- コンソールからcurlを使ってAPIを叩きます
※ 以下の例ではcssとjsを圧縮対象としています
※ エラー文言的なjsonが返ってこなければ成功です。
$ curl -X POST https://cdn.idcfcloud.com/api/v1/service/{対象サービスID}/version/{クローンしたバージョン番号}/gzip \
-H 'X-IDCF-CDN-APIKEY: {APIキー}' \
-H 'Accept: application/json' \
-d '{"name":"gzip-config-name-sample", "extensions":"css js", "content_types":"text/css application/x-javascript"}'
- クローンした新しいバージョンを「有効」にします
- どこか外部のGZIP圧縮確認サイトなどで圧縮が効いているか確認できたら完了です
蛇足
- 新バージョンのVCLには vcl_fetch ブロックに圧縮設定のコードが追加されます。
このコードがあれば動くのか、と別サービスにコピペしてみましたが効果はありませんでした。残念… - 設定できたはずなのにGZIP圧縮確認サイトで失敗する、というときはキャッシュが効いてる可能性があります。ソフトパージして再度確認しましょう。