Azure CDN で Azure Blob Storage の有効期限を管理するManage expiration of Azure Blob storage in Azure CDN

Azure Storage の Blob Storage サービスは、Azure ベースに元々あって Azure Content Delivery Network (CDN) と統合されたサービスの 1 つです。The Blob storage service in Azure Storage is one of several Azure-based origins integrated with Azure Content Delivery Network (CDN). パブリックにアクセス可能な BLOB コンテンツは、その有効期間 (TTL) が経過するまで、Azure CDN でキャッシュできます。Any publicly accessible blob content can be cached in Azure CDN until its time-to-live (TTL) elapses. TTL は、配信元サーバーからの HTTP 応答の Cache-Control ヘッダーによって決まります。The TTL is determined by the Cache-Control header in the HTTP response from the origin server. この記事では、Azure Storage の BLOB で Cache-Control ヘッダーを設定する方法のいくつかを示します。This article describes several ways that you can set the Cache-Control header on a blob in Azure Storage.

CDN キャッシュ規則を設定して、Azure portal からキャッシュの設定を制御することもです。You can also control cache settings from the Azure portal by setting CDN caching rules. キャッシュ規則を作成し、そのキャッシュ動作を [オーバーライド] または [キャッシュのバイパス] に設定すると、この記事で説明されている最初に示されたキャッシュ設定は無視されます。If you create a caching rule and set its caching behavior to Override or Bypass cache, the origin-provided caching settings discussed in this article are ignored. 全般的なキャッシュの概念については、「キャッシュのしくみ」をご覧ください。For information about general caching concepts, see How caching works.

ヒント

BLOB に TTL を設定しないこともできます。 この場合は、Azure Portal でキャッシュ規則を設定していない限り、Azure CDN によって既定の 7 日間の TTL が自動的に適用されます。 この既定の TTL は、一般的な Web 配信の最適化に対してのみ適用されます。 大きなファイルの最適化に対する既定の TTL は 1 日、メディア ストリーミングの最適化に対する既定の TTL は 1 年です。

その他のファイルと BLOB へのアクセスを高速化する Azure CDN のしくみについて詳しくは、「Azure Content Delivery Network (CDN) の概要」をご覧ください。

Azure Blob Storage について詳しくは、「Blob Storage の概要」をご覧ください。

CDN キャッシュ規則を使用した Cache-Control ヘッダーの設定Setting Cache-Control headers by using CDN caching rules

BLOB の Cache-Control ヘッダーを設定するための推奨される方法は、Azure Portal でのキャッシュ規則の使用です。The preferred method for setting a blob's Cache-Control header is to use caching rules in the Azure portal. CDN キャッシュ規則の詳細については、キャッシュ規則による Azure CDN キャッシュ動作の制御に関するページを参照してください。For more information about CDN caching rules, see Control Azure CDN caching behavior with caching rules.

注意

キャッシュ規則は、Azure CDN Standard from Verizon および Azure CDN Standard from Akamai プロファイルでのみ使用できます。 Azure CDN Premium from Verizon プロファイルの場合は、同様の機能に対して管理ポータルで Azure CDN ルール エンジンを使用する必要があります。

[CDN キャッシュ規則] ページに移動するには:To navigate to the CDN caching rules page:

  1. Azure Portal で、CDN プロファイルを選択してから、BLOB のエンドポイントを選択します。In the Azure portal, select a CDN profile, then select the endpoint for the blob.

  2. 左側のウィンドウの [設定] で、[キャッシュ規則] を選択します。In the left pane under Settings, select Caching rules.

    [CDN キャッシュ規則] ボタン

    [キャッシュ規則] ページが表示されます。The Caching rules page appears.

    [CDN キャッシュ] ページ

グローバル キャッシュ規則を使用して BLOB ストレージ サービスの Cache-Control ヘッダーを設定するには:To set a Blob storage service's Cache-Control headers by using global caching rules:

  1. [グローバル キャッシュ規則] で、[クエリ文字列のキャッシュ動作][クエリ文字列を無視] に設定し、[キャッシュ動作][オーバーライド] に設定します。Under Global caching rules, set Query string caching behavior to Ignore query strings and set Caching behavior to Override.

  2. [キャッシュの有効期間] として、[Seconds] (秒) ボックスに「3600」と入力するか、または [時間] ボックスに「1」と入力します。For Cache expiration duration, enter 3600 in the Seconds box or 1 in the Hours box.

    CDN グローバル キャッシュ規則の例

    このグローバル キャッシュ規則は 1 時間のキャッシュ有効期間を設定し、エンドポイントへのすべての要求に影響を与えます。This global caching rule sets a cache duration of one hour and affects all requests to the endpoint. これは、エンドポイントで指定された配信元サーバーによって送信されるすべての Cache-Control または Expires HTTP ヘッダーをオーバーライドします。It overrides any Cache-Control or Expires HTTP headers that are sent by the origin server specified by the endpoint.

  3. [保存] を選択します。Select Save.

カスタム キャッシュ規則を使用して BLOB ファイルの Cache-Control ヘッダーを設定するには:To set a blob file's Cache-Control headers by using custom caching rules:

  1. [Custom caching rules] (カスタム キャッシュ規則) で、次の 2 つの一致条件を作成します。Under Custom caching rules, create two match conditions:

    A.A. 最初の一致条件では、[一致条件][パス] に設定し、[一致する値] として /blobcontainer1/* を入力します。For the first match condition, set Match condition to Path and enter /blobcontainer1/* for Match value. [キャッシュ動作][オーバーライド] に設定し、[時間] ボックスに「4」と入力します。Set Caching behavior to Override and enter 4 in the Hours box.

    B.B. 2 番目の一致条件では、[一致条件][パス] に設定し、[一致する値] として /blobcontainer1/blob1.txt を入力します。For the second match condition, set Match condition to Path and enter /blobcontainer1/blob1.txt for Match value. [キャッシュ動作][オーバーライド] に設定し、[時間] ボックスに「2」と入力します。Set Caching behavior to Override and enter 2 in the Hours box.

    CDN カスタム キャッシュ規則の例

    最初のカスタム キャッシュ規則は、エンドポイントで指定された配信元サーバー上の /blobcontainer1 フォルダー内のすべての BLOB ファイルに対して 4 時間のキャッシュ有効期間を設定します。The first custom caching rule sets a cache duration of four hours for any blob files in the /blobcontainer1 folder on the origin server specified by your endpoint. 2 番目の規則は blob1.txt BLOB ファイルについてのみ最初の規則をオーバーライドし、そのファイルに対して 2 時間のキャッシュ有効期間を設定します。The second rule overrides the first rule for the blob1.txt blob file only and sets a cache duration of two hours for it.

  2. [保存] を選択します。Select Save.

Azure PowerShell を使った Cache-Control ヘッダーの設定Setting Cache-Control headers by using Azure PowerShell

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

Azure PowerShell は、Azure の各種サービスを管理する最も簡単で最も強力な方法の 1 つです。Azure PowerShell is one of the quickest and most powerful ways to administer your Azure services. Get-AzStorageBlob コマンドレットを使用して BLOB への参照を取得し、.ICloudBlob.Properties.CacheControl プロパティを設定します。Use the Get-AzStorageBlob cmdlet to get a reference to the blob, then set the .ICloudBlob.Properties.CacheControl property.

例: For example:

# Create a storage context
$context = New-AzStorageContext -StorageAccountName "<storage account name>" -StorageAccountKey "<storage account key>"

# Get a reference to the blob
$blob = Get-AzStorageBlob -Context $context -Container "<container name>" -Blob "<blob name>"

# Set the CacheControl property to expire in 1 hour (3600 seconds)
$blob.ICloudBlob.Properties.CacheControl = "max-age=3600"

# Send the update to the cloud
$blob.ICloudBlob.SetProperties()

ヒント

PowerShell は、CDN プロファイルとエンドポイントの管理に使用することもできます。

.NET を使った Cache-Control ヘッダーの設定Setting Cache-Control headers by using .NET

.NET コードを使用して BLOB の Cache-Control ヘッダーを指定するには、.NET 用の Azure Storage クライアント ライブラリを使用して CloudBlob.Properties.CacheControl プロパティを設定します。To specify a blob's Cache-Control header by using .NET code, use the Azure Storage Client Library for .NET to set the CloudBlob.Properties.CacheControl property.

例: For example:

class Program
{
    const string connectionString = "<storage connection string>";
    static void Main()
    {
        // Retrieve storage account information from connection string
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);

        // Create a blob client for interacting with the blob service.
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

        // Create a reference to the container
        CloudBlobContainer <container name> = blobClient.GetContainerReference("<container name>");

        // Create a reference to the blob
        CloudBlob <blob name> = container.GetBlobReference("<blob name>");

        // Set the CacheControl property to expire in 1 hour (3600 seconds)
        blob.Properties.CacheControl = "max-age=3600";

        // Update the blob's properties in the cloud
        blob.SetProperties();
    }
}

ヒント

Azure Blob Storage Samples for .NET 」(.NET 用 Azure Blob Storage のサンプル) には、他にも多くの使用可能な .NET コード サンプルがあります。

他の方法を使った Cache-Control ヘッダーの設定Setting Cache-Control headers by using other methods

Azure ストレージ エクスプローラーAzure Storage Explorer

Azure Storage Explorer を使うと、CacheControl のようなプロパティなどの Blob Storage リソースを表示して編集できます。With Azure Storage Explorer, you can view and edit your blob storage resources, including properties such as the CacheControl property.

Azure Storage Explorer で BLOB の CacheControl プロパティを更新するには、以下の操作を行います。To update the CacheControl property of a blob with Azure Storage Explorer:

  1. BLOB を選択し、コンテキスト メニューから [プロパティ] を選択します。Select a blob, then select Properties from the context menu.
  2. 下にスクロールして CacheControl プロパティを表示させます。Scroll down to the CacheControl property.
  3. 値を入力してから、[保存] を選択します。Enter a value, then select Save.

Azure Storage Explorer のプロパティ

Azure コマンド ライン インターフェイスAzure Command-Line Interface

Azure コマンド ライン インターフェイス (CLI) では、コマンド ラインから Azure BLOB リソースを管理することができます。With the Azure Command-Line Interface (CLI), you can manage Azure blob resources from the command line. Azure CLI で BLOB をアップロードするときにキャッシュ制御ヘッダーを設定するには、-p スイッチを使って cacheControl プロパティを設定します。To set the cache-control header when you upload a blob with the Azure CLI, set the cacheControl property by using the -p switch. 次の例では、TTL を 1 時間 (3,600 秒) に設定する方法を示します。The following example shows how to set the TTL to one hour (3600 seconds):

azure storage blob upload -c <connectionstring> -p cacheControl="max-age=3600" .\<blob name> <container name> <blob name>

Azure ストレージ サービス REST APIAzure storage services REST API

Azure ストレージ サービス REST API を使うと、要求で次の操作を使って x-ms-blob-cache-control プロパティを明示的に設定できます。You can use the Azure storage services REST API to explicitly set the x-ms-blob-cache-control property by using the following operations on a request:

Cache-Control ヘッダーのテストTesting the Cache-Control header

BLOB の TTL 設定を簡単に確認できます。You can easily verify the TTL settings of your blobs. ブラウザーの開発者ツールを使って、BLOB に Cache-Control 応答ヘッダーが含まれているかどうかをテストします。With your browser's developer tools, test that your blob includes the Cache-Control response header. WgetPostmanFiddler などのツールを使って応答ヘッダーを確認することもできます。You can also use a tool such as Wget, Postman, or Fiddler to examine the response headers.

次の手順Next Steps