このページでは、Cloud CDN のキャッシュ コンテンツを無効にする方法について説明します。
たとえば、/images/file.jpg にあるファイルがキャッシュに保存され、これを無効にする必要がある場合、そのファイルだけを対象とするか、それとも対象範囲を広げるかによって、無効にする方法が異なります。いずれの場合も、すべてのホスト名で無効にすることも、1 つのホスト名だけで無効にすることもできます。
キャッシュの無効化の詳細については、キャッシュ無効化の概要をご覧ください。
始める前に
無効化は、Google Cloud CLI または Google Cloud コンソールで行うことができます。
Google Cloud CLI には、次の 2 つの方法でアクセスできます。
- Google Cloud CLI をインストールするには、 - apt-getを使用したインストールの手順をご覧ください。これまで Google Cloud CLI を使用したことがない場合は、最初に- gcloud initを実行して認証します。
- Cloud Shell を使用します。これは - gcloudに付属しており、すでにインストールされています。
必要な権限を持つカスタムロールを作成するには、カスタムロールの作成と管理をご覧ください。
事前定義ロールを追加するには、IAM クイックスタートを使用します。
1 つのファイルのみを無効にする
コンソール
- Google Cloud コンソールで、[Cloud CDN] ページに移動します。 
- 送信元をクリックします。 
- [キャッシュの無効化] タブをクリックします。 
- [関連付けられているロードバランサ] で、ロードバランサを選択します。 
- [無効にするオブジェクトの指定] で、次の操作を行います。 - すべてのホスト名のパスを無効にする場合を除き、[ホスト] でホスト名を指定します。
- [パス] でパスとファイル名を指定します(例: /images/file.jpg)。
 
- [無効にする] をクリックします。 
gcloud
gcloud compute url-maps invalidate-cdn-cache コマンドを使用します。
無効化するファイルを 1 つだけ指定するには、--path フラグを使用してファイル名を指定します。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/images/file.jpg"
URL_MAP_NAME は、URL マップの名前に置き換えます。URL マップを一覧表示するには、gcloud compute url-maps list コマンドを使用します。
1 つのホストのみを無効にするには、--host フラグを追加します(例: --host host1.com)。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/images/file.jpg"
デフォルトでは、Google Cloud CLI は無効化が完了するまで待機します。バックグラウンドで無効化を行うには、コマンドラインに --async を追加します。
API
urlMaps.invalidateCache メソッドを使用します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache
次のように置き換えます。
- PROJECT_ID: Google Cloud コンソール プロジェクト ID
- URL_MAP_NAME: URL マップの名前
無効化するファイルを指定するには、次のサンプル JSON リクエスト本文を使用します。
{
  "path": "/images/file.jpg"
}
1 つのホストのみを無効にするには、次のサンプル JSON リクエスト本文を使用します。
{
  "host": "host1.com",
  "path": "/images/file.jpg"
}
ディレクトリ全体を無効にする
コンソール
- Google Cloud コンソールで、[Cloud CDN] ページに移動します。 
- 送信元をクリックします。 
- [キャッシュの無効化] タブをクリックします。 
- [関連付けられているロードバランサ] で、ロードバランサを選択します。 
- [無効にするオブジェクトの指定] で、次の操作を行います。 - すべてのホスト名のパスを無効にする場合を除き、[ホスト] でホスト名を指定します。
- [パス] でパスとワイルドカード(*)を指定します(例: /images/*)。
 
- [無効にする] をクリックします。 
gcloud
gcloud compute url-maps invalidate-cdn-cache コマンドを使用します。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/images/*"
URL_MAP_NAME は、URL マップの名前に置き換えます。
1 つのホストのみを無効にするには、--host フラグを追加します(例: --host host1.com)。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/images/*"
API
urlMaps.invalidateCache メソッドを使用します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache
次のように置き換えます。
- PROJECT_ID: Google Cloud コンソール プロジェクト ID
- URL_MAP_NAME: URL マップの名前
無効化するディレクトリを指定するには、次のサンプル JSON リクエスト本文を使用します。
{
  "path": "/images/*"
}
1 つのホストのディレクトリのみを無効にするには、次のサンプル JSON リクエスト本文を使用します。
{
  "host": "host1.com",
  "path": "/images/*"
}
キャッシュタグによる無効化
コンソール
- Google Cloud コンソールで、[Cloud CDN] ページに移動します。 
- 送信元をクリックします。 
- [キャッシュの無効化] タブをクリックします。 
- [関連付けられているロードバランサ] で、ロードバランサを選択します。 
- [無効にするオブジェクトの指定] の [キャッシュタグ] で、無効にするタグを 1 つ以上指定します。タグを区切るには、スペースまたはカンマを使用します。 
- [無効にする] をクリックします。 
gcloud
gcloud beta compute url-maps invalidate-cdn-cache コマンドを使用します。
gcloud beta compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --tags=TAGS
次のように置き換えます。
- URL_MAP_NAME: URL マップの名前
- TAGS: タグまたはカンマ区切りのタグリスト。リストの代わりに、このフラグを最大 10 回指定することもできます。
たとえば、バックエンド レスポンスに UUID4 や他の形式の GUID などの不透明なユーザー ID を含む Cache-Tag ヘッダーが含まれている場合は、tag フラグを使用して、特定のユーザーを対象としたすべてのコンテンツを無効にできます。また、1 つのホスト(ステージング環境など)のコンテンツのみを無効にするには、--host フラグを追加します。
gcloud beta compute url-maps invalidate-cdn-cache url_map_1 \
    --tags="1115b8f4-f804-4861-9629-8cb9aecdeeb3" \
    --host="host1.com"
API
urlMaps.invalidateCache メソッドを使用します。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache
次のように置き換えます。
- PROJECT_ID: Google Cloud コンソール プロジェクト ID
- URL_MAP_NAME: URL マップの名前
無効化を目的にキャッシュタグを指定するには、次のサンプル JSON リクエスト本文を使用します。
{
  "cacheTags": [
    "tag1",
    "tag2"
  ]
}
単一のタグまたはカンマ区切りのタグリストを指定できます。
キャッシュタグで 1 つのホストのみを無効にするには、次のサンプル JSON リクエスト本文を使用します。
{
  "host": "host1.com",
  "path": "tag1,tag2"
}
すべて無効にする
すべてを無効にすることはできますが、リスクが伴う可能性があります。続行する前に、要件を慎重に評価してください。
コンソール
- Google Cloud コンソールで、[Cloud CDN] ページに移動します。 
- 送信元をクリックします。 
- [キャッシュの無効化] タブをクリックします。 
- [関連付けられているロードバランサ] で、ロードバランサを選択します。 
- [無効にするオブジェクトの指定] で、次の操作を行います。 - すべてのホスト名のパスを無効にする場合を除き、[ホスト] でホスト名を指定します。
- [パス] には、アスタリスクを使用します(例: /*)。
 
- [無効にする] をクリックし、[確認] をクリックして、Cloud CDN ですべてを無効にすることを示します。 
gcloud
gcloud compute url-maps invalidate-cdn-cache コマンドを使用します。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/*"
次のように置き換えます。
- URL_MAP_NAME: URL マップの名前
- /*: 無効にする URL パス。ホスト名は含まれません。パスには明示的なファイル名またはワイルドカード(*)を使用できます。
1 つのホストのみを無効にするには、--host フラグを追加します(例: --host host1.com)。
gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/*"
API
urlMaps.invalidateCache メソッドを使用します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache
次のように置き換えます。
- PROJECT_ID: Google Cloud コンソール プロジェクト ID
- URL_MAP_NAME: URL マップの名前
無効にする URL パスを指定するには、次のサンプル JSON リクエスト本文を使用します。
{
  "path": "/*"
}
1 つのホストの URL パスのみを無効にするには、次のサンプル JSON リクエスト本文を使用します。
{
  "host": "host1.com",
  "path": "/*"
}
無効化リクエストのステータスを確認する
Cloud CDN は、無効化ごとに 2 つのログ行を出力します。1 つは無効化が承認された時点、もう 1 つは無効化が完了した時点で出力されます。最初の行にはホストとパスの情報が含まれています。
無効化リクエストのステータスを確認する際、または最近送信されたリクエストの確定リストを見つける際には、Cloud Logging または Cloud Monitoring を使用します。
コンソール
- Google Cloud コンソールで、[Cloud CDN] ページに移動します。 
- 送信元をクリックします。 
- [キャッシュの無効化] タブをクリックします。 
- 無効化リクエストのステータスと結果を確認するには、[Cloud Logging に移動] をクリックします。 
gcloud
次のサンプル コマンドでは、Logging を使用しています。
gcloud logging read 'protoPayload.methodName="v1.compute.urlMaps.invalidateCache"' \
    --limit=10
次のサンプルクエリでは、Monitoring を使用しています。
protoPayload.serviceName="compute.googleapis.com" protoPayload.methodName="v1.compute.urlMaps.invalidateCache"
次のステップ
- Cloud CDN がキャッシュからレスポンスを配信しているかどうかを確認するには、ログの表示をご覧ください。
- キャッシュに保存可能なコンテンツと保存できないコンテンツについては、キャッシュの概要をご覧ください。