Azure Storage のバージョン管理

Azure Storage では、複数のバージョンがサポートされています。 ストレージ サービスに対して要求を行うには、要求が匿名でない限り、その操作に使用するバージョンを指定する必要があります。

Azure Storage サービスの現在のバージョンは 2024-11-04 であり、可能な限り使用することをお勧めします。 サポートされているその他のすべてのバージョンの一覧と、各バージョンの使用については、「以前の Azure Storage サービスバージョンを参照してください。

2024-11-04 サービス バージョンには、次の機能が含まれています。

  • files サービス内のすべてのデータ プレーン API に対するトークン ベースの認証のサポート。 詳細については、「Authorize with Microsoft Entra ID」を参照してください。
  • Premium ファイル共有アカウントでの有料バーストのサポート。 この機能は、共有 の作成と 共有プロパティの設定 API を使用して有効にすることができます。
  • ファイル サービスでファイルのアクセス許可を取得および設定するときのバイナリ形式のサポート。 詳細については、「アクセス許可の作成 とアクセス許可の取得 する」を参照してください。

要求でサービスのバージョンを指定する

要求に使用するストレージ サービスのバージョンを指定する方法は、その要求の承認方法に関連します。 次のセクションでは、承認オプションと、それぞれのサービス バージョンを指定する方法について説明します。

  • Microsoft Entraからの OAuth 2.0 トークンを使用する要求: Microsoft Entra ID を使用して要求を承認するには、2017-11-09 以降のサービス バージョンで要求に x-ms-version ヘッダーを渡します。 詳細については、「Authorize with Microsoft Entra IDで OAuth トークンを使用してストレージ操作を呼び出す 」を参照してください。

  • 共有キーまたは共有キー ライトを使用する要求: 共有キーまたは共有キー ライトを使用して要求を承認するには、要求に対して x-ms-version ヘッダーを渡します。 Azure Blob Storage の場合は、[Blob Service プロパティの設定]を呼び出して、すべての要求 既定のバージョンを指定できます。

  • Shared Access Signature (SAS)を使用する要求: 共有アクセス署名に 2 つのバージョン管理オプションを指定できます。 省略可能な api-version ヘッダーは、API 操作の実行に使用するサービス バージョンを示します。 必須の SignedVersion (sv) パラメーターは、SAS で行われた要求の承認に使用するサービス のバージョンを指定します。 api-version ヘッダーが指定されていない場合、SignedVersion (sv) パラメーターの値は、API 操作の実行に使用するバージョンも示します。

  • 匿名アクセスを使用する要求: Blob Storage に対する匿名アクセスの場合、バージョンは渡されません。 要求に使用するバージョンを決定するためのヒューリスティックについては、次のセクションで説明します。

Microsoft Entra ID、共有キー、または共有キー Lite を使用して要求を承認する

Microsoft Entra ID、共有キー、または共有キー ライトを使用して要求を承認するには、要求の x-ms-version ヘッダーを指定します。 x-ms-version 要求ヘッダー値は、YYYY-MM-DD 形式で指定する必要があります。 例えば:

Request Headers:  
x-ms-version: 2020-04-08

次の規則では、これらの要求を評価して、要求の処理に使用するバージョンを決定する方法について説明します。

  • 要求に有効な x-ms-version ヘッダーがある場合、ストレージ サービスは指定されたバージョンを使用します。 共有アクセス署名を使用しない Azure Table Storage と Azure Queue Storage に対するすべての要求では、x-ms-version ヘッダーを指定する必要があります。 次の段落で説明するように、既定のバージョンが設定されていない限り、共有アクセス署名を使用しない Blob Storage に対するすべての要求で、x-ms-version ヘッダーを指定する必要があります。

  • Blob Storage への要求に x-ms-version ヘッダーがないが、アカウント所有者が Blob Service プロパティの設定 操作を使用して既定のバージョンを設定した場合、指定した既定のバージョンが要求のバージョンとして使用されます。

Shared Access Signature を使用して要求を承認する

バージョン 2014-02-14 以降を使用して生成される Shared Access Signature (SAS) では、2 つのバージョン管理オプションがサポートされています。

  • api-version クエリ パラメーターは、SAS を使用して行われた要求の処理に使用する REST プロトコルのバージョンを定義します。

  • SignedVersion (sv) クエリ パラメーターは、承認に使用する SAS バージョンを定義します。

SignedVersion クエリ パラメーターは、クライアントが SAS を使用して要求を行うときに承認に使用されます。 sisrspsigstsetnspksrkepkerk などの承認パラメーターはすべて、指定されたバージョンを使用して解釈されます。

rsccrscdrscersclrsct などの REST プロトコル パラメーターは、api-version パラメーター ヘッダーで提供されているバージョンを使用して適用されます。 api-version ヘッダーが指定されていない場合は、SignedVersion に提供されるサービス バージョンが使用されます。

パラメーターは、サービス SASの作成に関するページで説明されているように、承認ヘッダーの文字列からサインイン 一部ではありません。

次の表では、SignedVersion パラメーターがバージョン 2014-02-14 以降に設定されている場合に、承認と REST プロトコルの呼び出しにサービスによって使用されるバージョン管理スキームについて説明します。

api-version パラメーター 承認に使用されるバージョン プロトコルの動作に使用されるバージョン
指定されていません sv パラメーターで指定されたバージョン sv パラメーターで指定されたバージョン
XXXX-XX-XX 形式の有効なストレージ サービスのバージョン sv パラメーターで指定されたバージョン 有効なストレージ サービスバージョン XXXX-XX-XX

例 1

次の要求のサンプル呼び出しでは、 パラメーターを指定せずに、を使用して BLOB を一覧表示 します。

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&sv=2015-04-05&si=readpolicy&sig=a39 %2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d

この場合、サービスは、バージョン 2015-04-05 を使用して要求を認証および承認し、バージョン 2015-04-05 を使用して操作を実行します。

例 2

次の要求の例では、 パラメーターを使用して BLOB を一覧表示 呼び出します。

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&sv=2015-04-05&si=readpolicy&sig=a39 %2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d&api-version=2012-02-12

ここでは、サービスはバージョン 2015-04-05 を使用して要求を承認し、バージョン 2012-02-12 を使用して操作を実行します。

手記

.NET Storage クライアント ライブラリは、REST プロトコルのバージョン (api-version パラメーター内) を、そのベースとなるバージョンに常に設定します。

匿名アクセスによる要求

匿名アクセスを介して行われた要求の処理方法は、対象となるストレージ アカウントの種類によって異なります。

汎用ストレージ アカウントの場合

汎用ストレージ アカウントに対する匿名要求で ヘッダーが指定されておらず、[Blob Service プロパティの設定]を使用してサービスの既定 のバージョンが設定されていない場合、サービスは可能な限り早いバージョンを使用して要求を処理します。 ただし、バージョン 2009-09-19 以降を使用して実行された Set Container ACL 操作でコンテナーが公開された場合、要求はバージョン 2009-09-19 を使用して処理されます。

Blob Storage アカウントの場合

Blob Storage アカウントに対する匿名要求で ヘッダーが指定されておらず、[Blob Service プロパティの設定]を使用してサービスの既定のバージョン 設定されていない場合、サービスは可能な限り早いバージョンを使用して要求を処理します。 Blob Storage アカウントの場合、可能な限り早いバージョンは 2014-02-14 です。

既知の問題

このセクションでは、Azure Storage REST API の既知の問題について詳しく説明します。

InvalidHeaderValue エラー メッセージ

まれなシナリオでは、REST API を直接呼び出すアプリケーションが InvalidHeaderValue エラー メッセージを受け取る可能性があります。 エラーは次の例のようになります。

HTTP/1.1 400 The value for one of the HTTP headers is not in the correct format.
Content-Length: 328
Content-Type: application/xml
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: <REMOVED>
Date: Fri, 19 May 2023 17:10:33 GMT
 
<?xml version="1.0" encoding="utf-8"?><Error><Code>InvalidHeaderValue</Code><Message>The value for one of the HTTP headers is not in the correct format.
RequestId:<REMOVED>
Time:2023-05-19T17:10:34.2972651Z</Message><HeaderName>x-ms-version</HeaderName><HeaderValue>yyyy-mm-dd</HeaderValue></Error> 

以前の REST API バージョンを使用して、問題が解決するかどうかを確認することをお勧めします。 問題が解決しない場合、または推奨事項が実現できない場合は、サポート チケット 開いて、その他のオプションについて説明してください。

関連項目