ライフサイクル管理ポリシーを構成する
Azure Storage のライフサイクル管理にはルールベースのポリシーが用意されており、これを使用すると、最適なアクセス層に BLOB データを移行したり、データ ライフサイクルの最後にデータを期限切れにしたりすることができます。 ライフサイクル ポリシーは、ベース BLOB に対して機能するほか、オプションで、BLOB のバージョンやスナップショットに対して機能します。 ライフサイクル管理ポリシーの詳細については、「データ ライフサイクルを自動管理してコストを最適化する」を参照してください。
ライフサイクル管理ポリシーは、満たされた条件に基づいて実行する一連のアクションを定義する 1 つ以上のルールで構成されます。 ベース BLOB の場合、次のいずれかの条件をチェックすることを選択できます。
- BLOB が作成された後の日数。
- BLOB が最後に変更された後の日数。
- BLOB が最後にアクセスされた後の日数。 アクション内でこの条件を使用するには、最初に、オプションである最終アクセス時間の追跡を有効にする必要があります。
選択されている条件が true であると、管理ポリシーにより、指定されているアクションが実行されます。 たとえば、30 日間変更されていない場合に BLOB をホット層からクール層に移動するアクションを定義した場合は、その BLOB に対する最後の書き込み操作から 30 日後に、ライフサイクル管理ポリシーによって BLOB が移動されます。
BLOB のスナップショットまたはバージョンの場合、チェックされる条件は、スナップショットまたはバージョンが作成された後の日数です。
オプションであるアクセス時間の追跡を有効にする
ライフサイクル管理ポリシーを構成する前に、BLOB アクセス時間の追跡を有効にすることを選択できます。 アクセス時間の追跡が有効になっているときは、ライフサイクル管理ポリシーに、読み取りまたは書き込み操作で BLOB が最後にアクセスされた時刻に基づくアクションを含めることができます。読み取りアクセスの待機時間への影響を最小限に抑えるため、最後のアクセス時間は過去 24 時間の最初の読み取りのみで更新されます。 同じ 24 時間内のその後の読み取りでは、最終アクセス時刻は更新されません。 読み取り間で BLOB が変更された場合、最終アクセス時刻は 2 つの値のうち新しい方になります。
Azure portal で最終アクセス時刻の追跡を有効にするには、次の手順に従います。
Azure Portal のストレージ アカウントに移動します。
[データ管理] セクションで、[ライフサイクル管理] を選択します。
daysAfterLastAccessTimeGreaterThan プロパティを使用して、BLOB に対してアクションを実行する必要がある、最後のアクセスからの日数を指定します。
ポリシーを作成または管理する
ライフサイクル管理ポリシーは、Azure portal、PowerShell、Azure CLI、または Azure Resource Manager テンプレートを使用して追加、編集、削除することができます。
Azure portal を通じてポリシーを追加するには、2つの方法があります。
リスト ビュー
Azure Portal のストレージ アカウントに移動します。
[データ管理] で、 [ライフサイクル管理] を選択してライフサイクル管理ポリシーを表示または変更します。
[リスト ビュー] タブを選択します。
[ルールの追加] を選択し、 [詳細] フォームでルールに名前を付けることができます。 また、 [規則のスコープ] 、 [BLOB の種類] 、 [BLOB のサブタイプ] の各値を設定することもできます。 次の例では、BLOB をフィルター処理するスコープを設定します。 これにより、 [フィルター セット] タブが追加されます。
- [Base blobs](ベース BLOB) を選択して、ルールの条件を設定します。 次の例では、BLOB が 30 日間変更されない場合、BLOB はクール ストレージに移動されます。
[最終アクセス] オプションを使用できるのは、アクセス時間の追跡を有効にしている場合にのみです。 アクセスの追跡を有効にする方法については、「オプションであるアクセス時間の追跡を有効にする」を参照してください。
- [詳細] ページで [フィルターを使用して BLOB を制限する] を選択した場合は、 [フィルター セット] を選択して省略可能なフィルターを追加します。 次の例では、sample-container という名前のコンテナー内の、名前が log で始まる BLOB にフィルターを適用しています。
- [追加] を選択して新しいポリシーを追加します。
ライフサイクル管理ポリシーでは、BLOB の現在のバージョンの削除は、その BLOB に関連付けられている以前のバージョンまたはスナップショットが削除されるまで実行されないことにご注意ください。 ストレージ アカウント内の BLOB に以前のバージョンまたはスナップショットがある場合は、ポリシーの一部として削除アクションを指定するときに、[Blob Subtype](BLOB のサブタイプ) セクションで [基本 BLOB]、[スナップショット]、[バージョン] を選択する必要があります。
[コード ビュー]
- Azure Portal のストレージ アカウントに移動します。
- [データ管理] で、 [ライフサイクル管理] を選択してライフサイクル管理ポリシーを表示または変更します。
- [コード ビュー] タブを選択します。このタブでは、JSON でライフサイクル管理ポリシーを定義できます。
次のサンプル JSON では、BLOB の変更からの経過時間が 30 日を超えた場合に、名前が log で始まるブロック BLOB をクール層に移動するライフサイクル ポリシーを定義しています。
{
"rules": [
{
"enabled": true,
"name": "move-to-cool",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"tierToCool": {
"daysAfterModificationGreaterThan": 30
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"sample-container/log"
]
}
}
}
]
}
ライフサイクル管理ポリシーは、その全体の読み取りまたは書き込みを行う必要があります。 部分的な更新はサポートされません。
Note
各ルールには、最大 10 個の大文字と小文字を区別するプレフィックスと、最大 10 個の BLOB インデックス タグ条件を指定できます。
Note
ストレージ アカウントのファイアウォール ルールを有効にしている場合、ライフサイクル管理要求がブロックされることがあります。 信頼できる Microsoft サービスに例外を指定することで、このような要求のブロックを解除できます。 詳細については、ファイアウォールと仮想ネットワークの構成に関する記事の、例外についてのセクションを参照してください。
注意
暗号化スコープを使用する BLOB の層をライフサイクル管理ポリシーで変更することはできません。
注意
ライフサイクル管理ポリシーの削除アクションは、不変コンテナー内の BLOB では機能しません。 不変ポリシーを使用すると、オブジェクトを作成および読み取ることはできますが、変更または削除することはできません。 詳細については、「不変ストレージを使用してビジネスに不可欠な BLOB データを保存する」を参照してください。