儲存任務指派的模擬執行

什麼是模擬跑?

模擬執行會模擬儲存體工作指派的執行過程,但不會實際對您的 Blob 執行任何作業。 當你建立模擬執行時,Azure 儲存體 Actions 會像實際執行一樣掃描並評估你的 blob 與任務條件,但不會執行任何操作。 取而代之的是,它會產生一份詳細報告,顯示哪些 blob 符合條件,以及 會 執行哪些操作。

當你想要執行以下操作時,模擬執行會很有用:

  • 在大規模執行任務前,特別是當操作不可逆(例如刪除或不可變政策)時,先預覽其影響
  • 在您帳號中的全套 blob 上確認條件,而不只是針對少量預覽版樣本。
  • 產生可審計的報告 ,顯示哪些 blob 會受影響,且不做任何更改。
  • 透過了解將鎖定多少個blobs以及會啟動多少操作來估算成本。

Note

模擬執行會掃描並評估範圍內的所有 Blob 物件,就像實際執行一樣。 唯一的差別是它不會對這些斑點執行任何操作。 由於模擬執行不會執行操作,因此通常比實際執行更快。

模擬跑的運作方式

建立一個模擬跑作為儲存任務分配,觸發器類型設為 MockRun。 與其他指派類型一樣,模擬執行會以特定的儲存體帳戶為目標,使用選用的前綴篩選條件來限定 Blob 的範圍,並在指定的匯出容器中產生執行報告。

當模擬跑執行時:

  1. Azure 儲存體 Actions 會列舉出所有符合指派的範圍和前綴篩選條件的 Blob 物件。
  2. 它會根據儲存任務的條件評估每個斑點。
  3. 對於相符的 Blob,它會記錄原本會執行的作業,但它不會實際執行任何作業。
  4. 它會產生一份詳細報告,列出匹配的 blob 及其模擬操作。

模擬執行與條件預覽

模擬跑和條件預覽功能都能幫助你在執行前驗證任務條件,但它們有不同的目的:

能力 條件預覽 模擬跑
範圍 樣本有限(最多可達 5,000 個斑點) 完整範圍 - 指派範圍內的所有 Blob
所示操作 No 是的——顯示會執行哪些操作
報告產生 No 是的——可下載的 CSV 報告
執行模型 同步且即時的結果 非同步,像真實作業一樣執行
帳單 免費 針對任務執行個體及已掃描的物件收費(不收取操作費用)
應用案例 在撰寫條件時快速檢查 生產執行前的完整驗證

在撰寫任務條件時使用條件預覽,然後在啟用正式執行前,先用模擬跑進行最後驗證。

模擬運行生命週期與狀態

模擬執行與一次性指派遵循相同的生命週期。

Important

你無法重新開始已完成的模擬跑。 若要執行另一場相同配置的模擬模擬,必須建立新指派或複製現有的指派。

並發行為

在同一個儲存體帳戶上,一次只能執行一個執行作業,不論是模擬或實際執行。 此並行模型與真實任務執行的模型相符:

  • 如果 實際執行正在進行,系統會將新的模擬執行排入佇列,直到實際執行完成。
  • 若模擬執行正在進行,系統會將新的實際工作執行排入佇列,或如果是排程的執行,則會跳過。
  • 如果另一個 模擬執行正在進行,系統會將新的模擬執行排入佇列。

此模型確保穩定性並防止目標儲存帳號上的資源爭用。

模擬跑報告

模擬跑結束後,流程會寫一份詳細報告到你在分配建立時指定的報告匯出容器。 你可以存取 CSV 格式的報告。

你也可以直接在 Azure 入口網站的作業模擬跑結果頁面查看跑步摘要。 摘要包含列出的物件數量、符合條件的物件數量,以及程序將執行的操作。

 Azure入口網站模擬跑結果頁面截圖,包含模擬摘要指標和下載報告按鈕。

報告專欄:

Column Description
容器 Blob 所在的容器。
Blob Blob 的名稱。
將執行的手術 模擬運算,前綴為 (mock) — 例如 (mock) DeleteBlob或 (mock) SetBlobImmutability 。
匹配條件區塊 哪個條件阻擋相符的 Blob (例如,IF或ELSE)。

CSV 輸出範例:

容器 Blob 將執行的手術 匹配條件區塊
testContainer1 output1.log (嘲笑)刪除Blob IF
測試容器2 output2.log (嘲笑)刪除Blob IF
testContainer1 financials1.csv (模擬) SetBlobImmutability ELSE
測試容器2 financials2.csv (模擬) SetBlobImmutability ELSE

此過程也會在報告旁邊產生 一個摘要 JSON 檔案。 此檔案包含彙整指標:

{
  "completionTime": "2024-10-21T17:46:59",
  "destination": "taskoutput",
  "endpoint": "https://contoso1storage1.blob.core.windows.net",
  "fileFormat": "csv",
  "fileSchema": [
    "Container",
    "Blob",
    "Operation to be performed",
    "Result",
    "Matched condition block"
  ],
  "files": [
    "<link to the reporting file>"
  ],
  "objectsListed": 1100,
  "objectsToBeOperated": 240,
  "operationType": "BlobOperation",
  "runId": "mockrun-assignment-2024-10-21T17:30:13.9121342Z",
  "startTime": "2024-10-21T17:37:12",
  "status": "succeeded"
}

摘要中的重點欄位:

  • objectsListed:模擬執行期間掃描的 Blob 物件總數。
  • objectsToBeOperated:符合條件且已執行操作的blob數量。
  • 狀態:模擬跑的結果(succeeded 或 failed)。

從模擬執行轉為正式執行

在查看模擬跑報告並確認結果符合預期後,你可以將作業從模擬跑轉為真正的跑關:

  1. 移至 Azure 入口網站中的指派。
  2. 編輯指派,並將觸發類型從 模擬跑 改為 跑一次 或 重複跑。
  3. 儲存已更新的指派。

透過這個流程,你可以從驗證直接到執行,而不必從頭重建指派。

定價

模擬執行的計費方式與實際的工作指派執行類似,但有一個關鍵差異:操作計量不會計費,因為實際上不會對 Blob 執行任何操作。

計費計量器 適用於模擬執行嗎?
任務執行個體(每次執行) ✅ 是
目標物件(每百萬掃描物件) ✅ 是
執行操作數(每百萬次操作) ❌ 不(永遠是0美元)

在掃描期間,使用標準 Blob 儲存體 API 列出及讀取 Blob 屬性的費用仍會套用。

Tip

因為模擬執行不包含操作計量費用,所以比實際執行便宜得多。 利用模擬執行作為一種具成本效益的方式,在承諾完整執行前驗證你的任務設定。

權限

與儲存任務相關的管理身份必須在目標儲存帳號上擁有相應的角色,才能執行模擬執行。 建議的角色是使用 Storage Actions Blob Data Operator (如果您計劃使用相同指派轉換至實際執行)。 系統指派和使用者指派的受控識別都支援模擬執行。

如果目標儲存帳號有網路限制,請確保帳號的網路設定中啟用了允許受信任的Microsoft 服務選項。

另請參閱