Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Important
Bu özellik Beta sürümündedir. Bu özelliği çalışma alanında önizlemeyi etkinleştirmek için, çalışma alanı önizlemeleri sayfasında Databricks Sandbox ayarını seçin. Bkz. Azure Databricks önizlemelerini yönetme.
Databricks şu anda bu özelliğin kullanımı için ücret talep etmiyor. Ancak, Beta'daki özelliklerin maliyeti ve fiyatlandırması değişebilir.
Python için Databricks SDK, sandbox oluşturmak, komutları çalıştırmak ve yaşam döngülerini yönetmek için bir sandbox istemcisi içerir. Bu sayfa bu işlemleri anlatıyor. Databricks Sandbox'a genel bir bakış için bakınız: Databricks Sandbox.
SDK’yı yükleyin
Python için Databricks SDK'yı kurun veya yükseltin; bu SDK kum havuz istemcisini içerir:
pip install --upgrade databricks-sdk
WorkspaceClient Oluştur
Tüm kum kutusu işlemleri bir WorkspaceClient üzerinden gerçekleştirilir. Ortamınızdan çözümlenen kimlik bilgilerini, bir yapılandırma profilini veya açıkça belirtilmiş bir ana bilgisayar ve belirteci kullanarak bir WorkspaceClient oluşturun:
from databricks.sdk import WorkspaceClient
# Resolve credentials from the environment or the default config profile:
w = WorkspaceClient()
# Or select a specific ~/.databrickscfg profile:
w = WorkspaceClient(profile="my-workspace")
# Or pass the host and token explicitly:
w = WorkspaceClient(host="https://<workspace>.cloud.databricks.com", token="dapi...")
SDK'nın yapılandırması ve doğrulaması hakkında daha fazla bilgi için Databricks SDK for Python sayfasına bakınız.
Bir kum havuzu oluşturun
ID ile bir sandbox oluşturun. İsteğe bağlı olarak, etkinlik olmadan sandbox’un ne kadar süre çalışır durumda kalacağını denetleyen etkinliksizlik zaman aşımı süresi gibi hesaplama yapılandırmasını ayarlayabilirsiniz:
from google.protobuf.duration_pb2 import Duration
from databricks.sdk.service.sandbox import ComputeSpec, Sandbox, SandboxSpec
created = w.sandbox.create_sandbox(
sandbox=Sandbox(
spec=SandboxSpec(compute=ComputeSpec(inactivity_timeout=Duration(seconds=900))),
),
sandbox_id="my-sandbox",
)
print(created.name) # "sandboxes/my-sandbox"
Sandbox'ları alın ve listeleyin
Tek bir kum havuzunu isimle alın veya tüm kum kutularını listeleyin:
sandbox = w.sandbox.get_sandbox("sandboxes/my-sandbox")
print(sandbox.status.state) # SandboxState.SANDBOX_STATE_RUNNING
for sandbox in w.sandbox.list_sandboxes():
print(sandbox.name, sandbox.status.state if sandbox.status else None)
Bir kum havuzunda bir komut çalıştır
Bir kum havuzunda bir komut çalıştırın ve çıktısını okuyun. İlk argüman sandbox adıdır, ardından çalıştırılacak program ve argümanları gelir. Bu, kabuk olmadan doğrudan bir exec'tir; bu nedenle bir kabuk komutu çalıştırmak için /bin/bash -c çağırın. Herhangi bir ortam değişkenini şu içinden envsgeçirin:
from google.protobuf.duration_pb2 import Duration
resp = w.sandbox.execute_command_sync(
"sandboxes/my-sandbox",
"/bin/bash",
args=["-c", "echo hello world && whoami"],
envs={"MY_VAR": "value"},
execution_timeout=Duration(seconds=30),
)
print(resp.status) # ExecuteCommandStatus.EXECUTE_COMMAND_STATUS_COMPLETED
print(resp.exit_code) # 0
print(resp.stdout) # "hello world\nsandbox-agent\n"
print(resp.stderr)
print(resp.truncated) # True if the output was truncated
Sandbox meta verilerini güncelleme
Bir kum kutusunun gösterim adını ve hareketsizlik süresini güncelleyebilirsiniz. Sadece aşağıdaki alan yolları kabul edilir. Diğer tüm yollar INVALID_PARAMETER_VALUE döndürür:
display_namespec.compute.inactivity_timeout
from databricks.sdk.common.types.fieldmask import FieldMask
from databricks.sdk.service.sandbox import ComputeSpec, Sandbox, SandboxSpec
from google.protobuf.duration_pb2 import Duration
# Rename the sandbox
w.sandbox.update_sandbox(
name="sandboxes/my-sandbox",
sandbox=Sandbox(display_name="renamed sandbox"),
update_mask=FieldMask(["display_name"]),
)
# Extend the inactivity timeout
w.sandbox.update_sandbox(
name="sandboxes/my-sandbox",
sandbox=Sandbox(spec=SandboxSpec(compute=ComputeSpec(inactivity_timeout=Duration(seconds=1800)))),
update_mask=FieldMask(["spec.compute.inactivity_timeout"]),
)
Bir sandbox'ı durdurup yeniden başlat
Ana dizininizi korurken işlem kaynaklarını serbest bırakmak için bir sandbox’u durdurun:
w.sandbox.stop_sandbox("sandboxes/my-sandbox") # Moves to SANDBOX_STATE_STOPPED
Çalışmaya devam etmek için sandbox'a tekrar başlayın:
w.sandbox.start_sandbox("sandboxes/my-sandbox") # Moves to SANDBOX_STATE_RUNNING
Bir kum kutusunu sil
İşiniz bitince Sandbox'ı silin. Bir sandbox'u silmek, ana dizinini kaldırır ve sandbox için faturalanmayı durdurur:
w.sandbox.delete_sandbox("sandboxes/my-sandbox")