Sandboxes

Kusto kan sandboxes uitvoeren voor specifieke stromen die moeten worden uitgevoerd in een veilige en geïsoleerde omgeving. Voorbeelden van deze stromen zijn door de gebruiker gedefinieerde scripts die worden uitgevoerd met behulp van de Python-invoegtoepassing of de R-invoegtoepassing.

Sandboxes worden lokaal uitgevoerd (wat betekent dat de verwerking dicht bij de gegevens wordt uitgevoerd), zonder extra latentie voor externe aanroepen.

Vereisten en beperkingen

Runtime

  • Een queryoperator in de sandbox kan een of meer sandboxes gebruiken voor de uitvoering ervan.
    • Een sandbox wordt slechts gebruikt voor één query en wordt verwijderd zodra die query is voltooid.
    • Wanneer een knooppunt opnieuw wordt opgestart, bijvoorbeeld als onderdeel van een service-upgrade, worden alle actieve sandboxes op het knooppunt verwijderd.
  • Elk knooppunt onderhoudt een vooraf gedefinieerd aantal sandboxes dat gereed is voor het uitvoeren van binnenkomende aanvragen.
    • Zodra een sandbox wordt gebruikt, wordt er automatisch een nieuwe beschikbaar gesteld om deze te vervangen.
  • Als er geen vooraf toegewezen sandboxes beschikbaar zijn voor een queryoperator, wordt deze beperkt totdat er nieuwe sandboxes beschikbaar zijn. Zie Fouten voor meer informatie. Nieuwe sandboxtoewijzing kan maximaal 10-15 seconden per sandbox duren, afhankelijk van de SKU en beschikbare resources op het gegevensknooppunt.

Sandbox-parameters

Sommige parameters kunnen worden beheerd met behulp van een sandbox-beleid op clusterniveau, voor elk type sandbox.

  • Aantal sandboxes per knooppunt: Het aantal sandboxes per knooppunt is beperkt.
    • Aanvragen die worden gedaan wanneer er geen beschikbare sandbox is, worden beperkt.
  • Initialiseren bij opstarten: als dit is ingesteld false op (standaard), worden sandboxes op een knooppunt vertraagd geïnitialiseerd, de eerste keer dat een query een sandbox vereist voor de uitvoering. Als dit niet is ingesteld op true, worden sandboxes geïnitialiseerd als onderdeel van het opstarten van de service.
    • Dit betekent dat de eerste uitvoering van een invoegtoepassing die gebruikmaakt van sandboxes op een knooppunt een korte opwarmperiode omvat.
  • CPU: De maximale CPU-snelheid die een sandbox kan gebruiken van de processors van de host is beperkt (standaard is 50%).
    • Wanneer de limiet is bereikt, wordt het CPU-gebruik van de sandbox beperkt, maar wordt de uitvoering voortgezet.
  • Geheugen: De maximale hoeveelheid RAM die een sandbox van het RAM-geheugen van de host kan gebruiken, is beperkt.
    • Het standaardgeheugen voor Hyper-V-technologie is 1 GB en voor verouderde sandboxes 20 GB.
    • Het bereiken van de limiet resulteert in beëindiging van de sandbox en een fout bij het uitvoeren van query's.

Sandbox-beperkingen

  • Netwerk: Een sandbox kan niet communiceren met resources op de virtuele machine (VM) of daarbuiten.
    • Een sandbox kan geen interactie hebben met een andere sandbox.

Notitie

De resources die met sandbox worden gebruikt, zijn niet alleen afhankelijk van de grootte van de gegevens die worden verwerkt als onderdeel van de aanvraag, maar ook van de logica die wordt uitgevoerd in de sandbox en de implementatie van bibliotheken die door de sandbox worden gebruikt. Voor de python invoegtoepassingen en r betekent de laatste bijvoorbeeld het door de gebruiker verstrekte script en de Python- of R-bibliotheken die tijdens runtime worden gebruikt.

Fouten

ErrorCode Status Bericht Mogelijke reden
E_SB_QUERY_THROTTLED_ERROR TooManyRequests (429) De query in de sandbox is afgebroken vanwege beperking. Opnieuw proberen na enige uitstel kan lukken Er zijn geen beschikbare sandboxes op het doelknooppunt. Nieuwe sandboxes zouden over een paar seconden beschikbaar moeten zijn
E_SB_QUERY_THROTTLED_ERROR TooManyRequests (429) Sandboxes van het type {kind} zijn nog niet geïnitialiseerd Het sandbox-beleid is onlangs gewijzigd. Nieuwe sandboxes die voldoen aan het nieuwe beleid, zijn binnen enkele seconden beschikbaar
InternalServiceError (520) De query in de sandbox is afgebroken vanwege een fout bij het initialiseren van sandboxes Een onverwachte infrastructuurfout.

VM-grootten die geneste virtualisatie ondersteunen

De volgende tabel bevat alle moderne VM-grootten die ondersteuning bieden voor Hyper-V-sandbox-technologie.

Naam Categorie
Standard_L8s_v3 geoptimaliseerd voor opslag
Standard_L16s_v3 geoptimaliseerd voor opslag
Standard_L8as_v3 geoptimaliseerd voor opslag
Standard_L16as_v3 geoptimaliseerd voor opslag
Standard_E8as_v5 geoptimaliseerd voor opslag
Standard_E16as_v5 geoptimaliseerd voor opslag
Standard_E8s_v4 geoptimaliseerd voor opslag
Standard_E16s_v4 geoptimaliseerd voor opslag
Standard_E8s_v5 geoptimaliseerd voor opslag
Standard_E16s_v5 geoptimaliseerd voor opslag
Standard_E2ads_v5 geoptimaliseerd voor rekenkracht
Standard_E4ads_v5 geoptimaliseerd voor rekenkracht
Standard_E8ads_v5 geoptimaliseerd voor rekenkracht
Standard_E16ads_v5 geoptimaliseerd voor rekenkracht
Standard_E2d_v4 geoptimaliseerd voor rekenkracht
Standard_E4d_v4 geoptimaliseerd voor rekenkracht
Standard_E8d_v4 geoptimaliseerd voor rekenkracht
Standard_E16d_v4 geoptimaliseerd voor rekenkracht
Standard_E2d_v5 geoptimaliseerd voor rekenkracht
Standard_E4d_v5 geoptimaliseerd voor rekenkracht
Standard_E8d_v5 geoptimaliseerd voor rekenkracht
Standard_E16d_v5 geoptimaliseerd voor rekenkracht
Standard_D32d_v4 geoptimaliseerd voor rekenkracht