ストレージ タスクの条件
ストレージ タスクには、一連の条件と操作が含まれています。 この記事では、条件の JSON 形式について説明します。 Azure portal 以外のツール (Azure PowerShell、Azure CLI など) でストレージ タスクを作成する予定の場合は、その形式を理解することが重要です。 また、この記事では条件の句を作成するのに使用できるプロパティと演算子の一覧も示します。
この記事では、条件に重点を置いて説明します。 操作の詳細については、「ストレージ タスクの操作」を参照してください。
重要
Azure Storage Actions は現在プレビュー段階であり、こちらのリージョンで使用できます。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
条件の形式
条件とは、1 つまたは複数の "句" のコレクションを指します。 各句には、"プロパティ"、"値"、および "演算子" が含まれています。 ストレージ タスクが実行されると、演算子を使用してプロパティと値を比較し、ターゲット オブジェクトによって句が条件を満たされているかどうかを判断します。 句は常に演算子で始まり、その後にプロパティ、さらに値が続きます。 次の図は、式の各要素の配置を示します。
次の句は、Microsoft Word ドキュメントに対してのみ操作が許可されます。 この句はファイル拡張子 .docx
で終わるすべてのドキュメントを対象とします。 そのため、演算子は endsWith
、プロパティは Name
、値は .docx
です。
{
"condition": "[[[endsWith(Name, '.docx')]]"
}
演算子とプロパティの名前の全一覧については、この記事の「サポートされている演算子」と「サポートされているプロパティ」のセクションを参照してください。
1 つの条件に複数の句
カンマと文字列 and
または or
のどちらかで区切ることで、1 つの条件に複数の句を指定できます。 文字列 and
は条件内のすべての句の条件を満たすオブジェクトを対象とする一方で、or
は条件内のいずれかの句の条件を満たすオブジェクトを対象とします。 次の画像は、文字列 and
と or
とともに 2 つの句の位置を示します。
次の JSON は、2 つの句が指定された条件を示します。 この式では文字列 and
が使用されているため、オブジェクトに対して操作が実行されるには、両方の句が true
に評価される必要があります。
{
"condition": "[[and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))]]"
}
条件のグループ
グループ化された句は、句の残りの部分とは別の 1 つのユニットとして動作します。 句のグループ化は、数学の方程式や論理式の一部をかっこで囲むのと似ています。 グループ内の最初の句の文字列 and
または or
は、グループ全体に適用されます。
次の画像は、グループ化された 2 つの句を示しています。
次の条件は、ドキュメントの readyForLegalHold
タグが値 Yes
に設定された Microsoft Word ドキュメントに対してのみ操作が許可されます。 また、他の 2 つの条件が当てはまらない場合でも、100 バイトを超えるオブジェクトに対しては操作が実行されます。
{
"condition": "[[[or(and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes')), greater(Content-Length, '100'))]]"
}
Azure portal のコード ビュー
Azure portal で利用できるビジュアル エディターで、条件の JSON を生成できます。 エディターを使って条件を定義し、[コード] タブを開くことで JSON 式を取得できます。JSON 式は大きくて扱いにくく、手動で作成するのが困難になることがあるため、この方法は複雑な条件セットを作成する場合に役立ちます。 次の画像は、ビジュアル エディターの [コード] タブを示します。
ビジュアル エディターの詳細については、「ストレージ タスクの条件と操作を定義する」を参照してください。
サポートされるプロパティ
次の表に、条件の各句の作成に使用できるプロパティを示します。 句には文字列、ブール値、数値、日付と時間のプロパティが含まれる場合があります。
String | 日付と時刻3 | 数値 | Boolean |
---|---|---|---|
AccessTier1 | AccessTierChangeTime | Content-Length | 削除済み |
Metadata.Value | 作成時刻 | TagCount | IsCurrentVersion |
Name | DeletedTime | ||
BlobType2 | LastAccessTime | ||
Container.Metadata.Value[Name] | 更新日時 | ||
Container.Name | |||
Container.Metadata.Value[Name] | |||
Container.Name | |||
Tags.Value[Name] | |||
VersionId |
1 使用できる値は Hot
、Cool
、または Archive
です。
2 使用できる値は BlockBlob
、PageBlob
、または AppendBlob
です
3 特定の時刻またはオブジェクトから動的に取得されるメタデータ値に設定できます。 「オブジェクト メタデータから値を参照する」を参照してください。
サポートされている演算子
次の表に、プロパティの各型の値を評価するために句で使用できる演算子を示します。
String | 日付と時刻 | 数値 | Boolean |
---|---|---|---|
contains | equals | equals | equals |
空 | greater | greater | not |
equals | greaterOrEquals | greaterOrEquals | |
endsWith | less | less | |
length | lessOrEquals | lessOrEquals | |
startsWith | addToTime | ||
一致 |