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 を使用して要求を行うときに承認に使用されます。
si
、sr
、sp
、sig
、st
、se
、tn
、spk
、srk
、epk
、erk
などの承認パラメーターはすべて、指定されたバージョンを使用して解釈されます。
rscc
、rscd
、rsce
、rscl
、rsct
などの REST プロトコル パラメーターは、api-version
パラメーター ヘッダーで提供されているバージョンを使用して適用されます。
api-version
ヘッダーが指定されていない場合は、SignedVersion
に提供されるサービス バージョンが使用されます。
次の表では、SignedVersion
パラメーターがバージョン 2014-02-14 以降に設定されている場合に、承認と REST プロトコルの呼び出しにサービスによって使用されるバージョン管理スキームについて説明します。
api-version パラメーター |
承認に使用されるバージョン | プロトコルの動作に使用されるバージョン |
---|---|---|
指定されていません |
sv パラメーターで指定されたバージョン |
sv パラメーターで指定されたバージョン |
XXXX-XX-XX 形式の有効なストレージ サービスのバージョン |
sv パラメーターで指定されたバージョン |
有効なストレージ サービスバージョン XXXX-XX-XX |
例 1
次の要求のサンプル呼び出しでは、
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
次の要求の例では、
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 Storage アカウントの場合
Blob Storage アカウントに対する匿名要求で
既知の問題
このセクションでは、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 バージョンを使用して、問題が解決するかどうかを確認することをお勧めします。 問題が解決しない場合、または推奨事項が実現できない場合は、サポート チケット
関連項目
- Storage Services REST
- バージョン管理のベスト プラクティス
- .NET クライアント ライブラリバージョンの プロトコル バージョンのサポート