共用方式為


記憶體工作條件

記憶體工作包含一組條件和作業。 本文說明條件的 JSON 格式。 如果您打算使用 Azure 入口網站 以外的工具來建立記憶體工作,請瞭解該格式很重要(例如:Azure PowerShell 或 Azure CLI)。 本文也會列出可用來撰寫條件子句的屬性和運算符。

本文著重於 條件。 若要深入瞭解作業,請參閱記憶體工作作業

條件格式

一個或多個 子句集合的條件。 每個子句都包含 屬性運算元。 當儲存體工作執行時,它會使用運算子來比較屬性與值,以判斷目標物件是否符合子句。 在 子句中 ,運算符 一律會先出現,後面接著 屬性,然後再 顯示 值。 下圖顯示每個元素在表達式中的位置。

顯示具有運算子、屬性和值之簡單條件格式的圖表。

下列子句只允許Microsoft Word 文件的作業。 這個子句會以擴展名 .docx結尾的所有文件為目標。 因此,運算子為 endsWith、屬性為 Name,且值為 .docx

{
   "condition": "[[[endsWith(Name, '.docx')]]"
}

您也可以在條件子句中的 運算子之前套用 not 運算符。 not 運算子是一個特殊運算子,可以放在任何運算子之前,以得到該子句的相反結果。 下列條款允許在任何不是 Microsoft Word 文件的 Blob 上進行操作。

{
   "condition": "[[not(endsWith(Name, '*.docx'))]]"
}

如需運算子和屬性名稱的完整清單,請參閱 本文的支持運算符 和支援 的屬性 一節。

條件中的多個子句

條件可以包含以逗號分隔的多個子句,以及字串 andor。 字串 and 會以符合條件中所有子句中準則的對象為目標,而 or 以符合條件中任一子句中準則的對象為目標。 下圖顯示 和 and 字串的位置or以及兩個 子句。

顯示包含兩個子句之條件格式的圖表。

下列 JSON 顯示包含兩個子句的條件。 由於此 and 表達式中使用字串,因此這兩個子句都必須評估為 true ,才能在對象上執行作業。

{
"condition": "[[and(endsWith(Name, '.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))]]"
}

條件群組

Grouped 子句會以與子句其餘部分分開的單一單位運作。 群組子句類似於將括號放在數學方程式或邏輯表達式周圍。 群組 and 中第一個子句的 或 or 字串會套用至整個群組。

下圖顯示兩個子句群組在一起。

此圖顯示條件的格式,其中包含群組在一起的兩個子句。

下列條件只允許Microsoft Word 檔案的作業,其中 readyForLegalHold 檔的標籤設定為的值 Yes。 即使其他兩個條件不成立,作業也會在大於 100 個字節的物件上執行。

{
"condition": "[[or(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes')), greater(Content-Length, '100'))]]"
}

您可以將 not 運算子套用至群組,以測試子句群組的相反結果。 下列條件僅允許在非 Microsoft Word 文件的 Blob 上執行作業,且其中 Blob 的標籤設定為 readyForLegalHold。 即使其他兩個條件不成立,作業也會在大於 100 個字節的物件上執行。

{
"condition": "[[or(not(and(endsWith(Name, '*.docx'), equals(Tags.Value[readyForLegalHold], 'Yes'))), greater(Content-Length, '100'))]]"
}

Azure 入口網站 中的程式代碼檢視

您可以在 Azure 入口網站 中使用可視化編輯器,為您產生條件的 JSON。 您可以使用編輯器來定義條件,然後開啟 [程序代碼 ] 索引標籤以取得 JSON 表達式。當建立複雜的條件集時,此方法很有用,因為 JSON 表達式可能會變得龐大、難以手動建立。 下圖顯示可視化編輯器中的 [ 程序代碼 ] 索引標籤。

在視覺化設計工具的[程序代碼] 索引標籤中顯示的條件 JSON 螢幕快照。

若要深入瞭解可視化編輯器,請參閱 定義記憶體工作條件和作業

條件預覽

您可以檢視受您所定義條件影響的 Blob 清單。 如此一來,您可以在將問題套用至生產數據之前找出問題並優化條件。 預覽不會變更目標記憶體帳戶中的物件,因此可以安全地套用至測試生產數據。

雖然條件預覽可在 PowerShell、Azure CLI 和 SDK 環境中取得,但預覽條件效果最簡單的方式是在 Azure 入口網站中使用 [ 預覽條件 ] 視窗。 您可以在定義條件並指派儲存工作時開啟此視窗。

若要預覽條件的效果,您必須指定目標訂用帳戶、記憶體帳戶和容器。 因為最多只能顯示 5,000 個 Blob,因此您也可以指定前綴來篩選清單。

備註

您無法在 Blob 名稱的前綴中使用通配符。

下圖顯示 Azure 入口網站中預覽結果的範例。

Azure 入口網站中記憶體工作預覽視窗的螢幕快照。

預覽結果會出現在數據表中,其中顯示符合條件的物件,以及不符合條件的物件。 您可以依出現在資料表中的欄位排序。

如果條件是指目標記憶體帳戶中不存在的屬性,則會出現錯誤。 例如,具有階層命名空間的帳戶無法使用 Blob 索引標籤。 如果條件中的 子句參考 Blob 索引標籤,則會出現驗證錯誤。

支援的屬性

下表顯示可用來撰寫條件之每個子句的屬性。 子句可以包含字串、布爾值、數值和日期和時間屬性。

繩子 日期和時間 3 數值 布林值
AccessTier1 訪問層級變更時間 內容長度 已刪除
後設資料.值 建立時間 標籤計數 當前版本
名稱 刪除時間
BlobType2 最後存取時間
Container.Metadata.Value[Name] Last-Modified
容器.名稱
Container.Metadata.Value[Name]
容器.名稱
Tags.Value[Name] (標籤.值[名稱])
版本ID

1 允許的值為 HotCoolArchive

2 允許的值為 BlockBlobPageBlobAppendBlob

3 可以設定為特定時間或從 物件動態取得的元數據值。 請參閱 參考物件元數據的值。

支援的運算子

下表顯示您可以在 子句中使用的運算元,以評估每個屬性類型的值。

繩子 日期和時間 數值 布林值
包含 等於 等於 等於
更大 更大
等於 greaterOrEquals greaterOrEquals
結尾為 較少的 較少的
長度 小於或等於 小於或等於
以...開始 加到時間
比對

not 運算子是特殊的運算符,您可以在此數據表中出現的任何運算子之前放置,以提供條件子句的相反結果,也稱為負結果。

另請參閱