サンドボックス
適用対象: ✅Azure データ エクスプローラー
Kusto では、セキュリティで保護された分離環境で実行する必要がある特定のフローに対してサンドボックスを実行することができます。 そのようなフローの例が、Python プラグインまたは R プラグインを利用して実行されるユーザー定義のスクリプトです。
サンドボックスはローカルで実行され (つまり、処理はデータの近くで実行されます)、リモート呼び出しの待機時間は長くありません。
前提条件と制限事項
- サンドボックスは、入れ子になった仮想化をサポートする VM サイズで実行する必要がありますHyper-V テクノロジを使用して実装され制限はありません。
- サンドボックスを実行するためのイメージはすべてのクラスター ノードにデプロイされ、実行するには専用の SSD 領域が必要です。
- 推定サイズは 10 ~ 20 GB です。
- これはクラスターのデータ容量に影響し、クラスターのコストに影響を与える可能性があります。
Runtime
- サンドボックス化されたクエリ演算子では、その実行に 1 つ以上のサンドボックスを使用できます。
- サンドボックスは 1 つのクエリにのみ使用され、そのクエリが完了すると破棄されます。
- (たとえば、サービスのアップグレードの一環として) ノードが再起動されると、そのノード上で実行されているサンドボックスはすべて破棄されます。
- 各ノードでは、着信要求を実行する準備が整っているサンドボックスを、事前に定義された数だけ保持します。
- 1 つのサンドボックスが使用されると、それに代わる新しいサンドボックスが自動的に使用可能になります。
- クエリ演算子用に使用できる事前割り当て済みのサンドボックスがない場合は、新しいサンドボックスが使用可能になるまで調整されます。 詳細については、「エラー」を参照してください。 新しいサンドボックスの割り当てには、SKU とデータ ノード上の使用可能なリソースに応じて、サンドボックスあたり最大 10 秒から 15 秒かかる場合があります。
サンドボックスのパラメーター
一部のパラメーターは、サンドボックスの種類ごとに、クラスター レベルのサンドボックス ポリシーを使って制御できます。
- ノードあたりのサンドボックスの数: ノードあたりのサンドボックスの数は制限されています。
- 使用可能なサンドボックスがないときに行われた要求は調整されます。
- 起動時に初期化:
false
(既定) に設定されている場合、サンドボックスはノードで遅延初期化されます。クエリで実行するためにサンドボックスが初めて必要になります。 それ以外の場合、true
に設定すると、サンドボックスはサービスの起動の一部として初期化されます。- これは、ノードでサンドボックスを使用するプラグインの最初の実行には、短いウォームアップ期間が含まれることを意味します。
- CPU: サンドボックスがホストのプロセッサで使用できる CPU の最大速度は制限されています (既定値は
50%
)。- この制限に達すると、サンドボックスの CPU 使用率が調整されますが、実行は続行されます。
- Memory: サンドボックスがホストの RAM を消費できる RAM の最大量は限られています。
- Hyper-V テクノロジの既定のメモリは 1 GB、レガシ サンドボックスの場合は 20 GB です。
- この制限に達すると、サンドボックスは終了し、クエリ実行エラーが発生します。
サンドボックスの制限事項
- ネットワーク: サンドボックスは、仮想マシン (VM) 上またはその外部にあるリソースと対話することはできません。
- サンドボックスは、別のサンドボックスと対話することはできません。
Note
サンドボックスで使用されるリソースは、要求の一部として処理されるデータのサイズだけでなく、サンドボックスで実行されるロジックと、サンドボックスによって使用されるライブラリの実装にも依存します。
たとえば、python
プラグインと r
プラグインの場合、後者は、ユーザー指定のスクリプトと、実行時に使用する Python または R ライブラリを意味します。
エラー
ErrorCode | 状態 | メッセージ | 考えられる理由 |
---|---|---|---|
E_SB_QUERY_THROTTLED_ERROR | TooManyRequests (429) | The sandboxed query was aborted because of throttling. (サンドボックス化されたクエリは、調整によって中止されました。) Retrying after some backoff might succeed (バックオフ後に再試行すると成功する可能性があります) | ターゲット ノードに使用可能なサンドボックスがありません。 新しいサンドボックスが数秒で使用可能になります |
E_SB_QUERY_THROTTLED_ERROR | TooManyRequests (429) | Sandboxes of kind '{kind}' haven't yet been initialized (種類が '{kind}' のサンドボックスはまだ初期化されていません) | サンドボックス ポリシーが最近変更されました。 新しいポリシーに従った新しいサンドボックスが数秒で使用可能になります |
InternalServiceError (520) | The sandboxed query was aborted due to a failure in initializing sandboxes (サンドボックスの初期化でエラーが発生したため、サンドボックス化されたクエリが中止されました) | 予期しないインフラストラクチャ エラーです。 |
入れ子になった仮想化をサポートする 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 | コンピューティング最適化 |