共用方式為


沙箱

Kusto 可以針對必須在安全且隔離的環境中執行的特定流程執行沙盒。 這些流程的範例是使用 Python 外掛程式R 外掛程式執行的使用者定義指令碼。

沙箱會在本機執行 (表示,處理會接近數據) ,遠端呼叫不會有額外的延遲。

先決條件和限制

執行階段

  • 沙箱查詢運算子的執行可能會使用一或多個沙箱。
    • 沙箱僅用於單一查詢,而且會在該查詢完成之後處置。
    • 當節點重新啟動時 (例如服務升級的一部分),其上所有執行中的沙箱都會被處置。
  • 每個節點都會維持預先定義的沙箱數目,以備妥供執行傳入要求。
    • 使用一個沙箱之後,會自動提供新的沙箱來取代。
  • 如果沒有預先配置的沙箱可供查詢運算子使用,則會進行節流,直到有新的沙箱可用為止。 如需詳細資訊,請參閱錯誤。 根據資料節點上的 SKU 和可用資源,新的沙箱配置最多可能需要每個沙箱10-15 秒。

沙盒參數

您可以針對每種沙盒類型,使用叢集層級 沙盒原則來控制部分參數。

  • 每個節點的沙箱數目:每個節點的沙箱數目有限。
    • 當沒有任何可用的沙箱時,提出的要求將會受到節流。
  • 啟動時初始化: 如果設定為 false (預設) ,則沙盒會在節點上延遲初始化,第一次查詢需要沙箱才能執行。 否則,如果設定為 true,沙箱會初始化為服務啟動的一部分。
    • 這表示會在節點上使用沙箱的外掛程式第一次執行時將包含短暫的準備期間。
  • CPU:沙箱可以取用其主機處理器的 CPU 比率上限有限 (預設為 50%)。
    • 達到限制時,沙箱的 CPU 使用會受到節流,但會繼續執行。
  • 記憶: 沙箱可以取用其主機 RAM 的最大 RAM 數量有限。
    • Hyper-V 技術的預設記憶體為 1 GB,而舊版沙盒則為 20 GB。
    • 達到限制會導致沙箱終止,且查詢執行錯誤。

沙箱限制

  • 網路:沙箱無法與虛擬機器 (VM) 上或外部的任何資源進行互動。
    • 沙箱無法與另一個沙箱互動。

注意

搭配沙箱使用的資源,不僅取決於在要求中處理的資料大小,也會根據在沙箱中執行的邏輯,以及其所使用程式庫的實作。 例如,針對 pythonr 外掛程式,後者表示使用者提供的指令碼,以及其在執行階段取用的 Python 或 R 程式庫。

錯誤

錯誤碼 狀態 訊息 可能的原因
E_SB_QUERY_THROTTLED_ERROR TooManyRequests (429) 沙箱查詢因為節流而中止。 部分輪詢後重試可能會成功 目標節點上沒有可用的沙箱。 新沙箱應該會在幾秒鐘內變成可用
E_SB_QUERY_THROTTLED_ERROR TooManyRequests (429) 類型 '{kind}' 的沙箱尚未初始化 沙箱原則最近已變更。 遵守新原則的新沙箱會在幾秒鐘內變成可用
InternalServiceError (520) 沙箱查詢因為初始化沙箱失敗而中止 非預期的基礎結構失敗。

支援巢狀虛擬化的 VM 大小

下表列出支援 Hyper-V 沙盒技術的所有新式 VM 大小。

名稱 類別
Standard_L8s_v3 儲存體最佳化
Standard_L16s_v3 儲存體最佳化
Standard_L8as_v3 儲存體最佳化
Standard_L16as_v3 儲存體最佳化
Standard_E8as_v5 儲存體最佳化
Standard_E16as_v5 儲存體最佳化
Standard_E8s_v4 儲存體最佳化
Standard_E16s_v4 儲存體最佳化
Standard_E8s_v5 儲存體最佳化
Standard_E16s_v5 儲存體最佳化
Standard_E2ads_v5 計算最佳化
Standard_E4ads_v5 計算最佳化
Standard_E8ads_v5 計算最佳化
Standard_E16ads_v5 計算最佳化
Standard_E2d_v4 計算最佳化
Standard_E4d_v4 計算最佳化
Standard_E8d_v4 計算最佳化
Standard_E16d_v4 計算最佳化
Standard_E2d_v5 計算最佳化
Standard_E4d_v5 計算最佳化
Standard_E8d_v5 計算最佳化
Standard_E16d_v5 計算最佳化
Standard_D32d_v4 計算最佳化