Share via


サンドボックス

Kusto では、セキュリティで保護された分離環境で実行する必要がある特定のフローに対してサンドボックスを実行することができます。 そのようなフローの例が、Python プラグインまたは R プラグインを利用して実行されるユーザー定義のスクリプトです。

サンドボックスはローカルで実行され (つまり、処理はデータの近くで実行されます)、リモート呼び出しの待機時間は長くありません。

前提条件と制限事項

ランタイム

  • サンドボックス化されたクエリ演算子では、その実行に 1 つ以上のサンドボックスを使用できます。
    • サンドボックスは 1 つのクエリにのみ使用され、クエリが完了すると破棄されます。
    • (たとえば、サービスのアップグレードの一環として) ノードが再起動されると、そのノード上で実行されているサンドボックスはすべて破棄されます。
  • 各ノードでは、着信要求を実行する準備が整っているサンドボックスを、事前に定義された数だけ保持します。
    • 1 つのサンドボックスが使用されると、それに代わる新しいサンドボックスが自動的に使用可能になります。
  • クエリ演算子用に使用できる事前割り当て済みのサンドボックスがない場合は、新しいサンドボックスが使用可能になるまで調整されます。 詳細については、「エラー」を参照してください。 新しいサンドボックスの割り当てには、SKU とデータ ノード上の使用可能なリソースに応じて、サンドボックスあたり最大 10 秒から 15 秒かかる場合があります。

サンドボックスのパラメーター

一部のパラメーターは、サンドボックスの種類ごとに、クラスター レベルのサンドボックス ポリシーを使って制御できます。

  • ノードあたりのサンドボックスの数: ノードあたりのサンドボックスの数は制限されています。
    • 使用可能なサンドボックスがないときに行われた要求は調整されます。
  • 起動時に初期化する: を (既定値) に false 設定すると、サンドボックスはノードで遅延初期化されます。クエリで実行にサンドボックスが初めて必要な場合。 それ以外の場合、 に true設定すると、サンドボックスはサービスのスタートアップの一部として初期化されます。
    • これは、ノードでサンドボックスを使用するプラグインの最初の実行には、短いウォームアップ期間が含まれることを意味します。
  • CPU: サンドボックスがホストのプロセッサで使用できる CPU の最大速度は制限されています (既定値は 50%)。
    • この制限に達すると、サンドボックスの CPU 使用率が調整されますが、実行は続行されます。
  • メモリ: サンドボックスがホストの RAM を消費できる RAM の最大量は限られています。
    • Hyper-V テクノロジの既定のメモリは 1 GB、レガシ サンドボックスの場合は 20 GB です。
    • この制限に達すると、サンドボックスは終了し、クエリ実行エラーが発生します。

サンドボックスの制限事項

  • ネットワーク: サンドボックスは、仮想マシン (VM) 上またはその外部にあるリソースと対話することはできません。
    • サンドボックスは、別のサンドボックスと対話することはできません。

Note

サンドボックスで使用されるリソースは、要求の一部として処理されるデータのサイズだけでなく、サンドボックスで実行されるロジックと、サンドボックスによって使用されるライブラリの実装にも依存します。 たとえば、python プラグインと r プラグインの場合、後者は、ユーザー指定のスクリプトと、実行時に使用する Python または R ライブラリを意味します。

エラー

ErrorCode Status Message 考えられる理由
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 コンピューティング最適化