Databricks 샌드박스 퀵스타트

Important

이 기능은 베타 버전으로 제공됩니다. 작업 공간에서 이 기능 미리보기를 활성화하려면 작업 공간 Previews 페이지에서 Databricks 샌드박스 설정에 선택하세요. Azure Databricks 미리 보기 관리를 참조하세요.

Databricks Sandbox는 격리된 서버리스 환경에서 코드를 실행하므로 에이전트가 자신이 작성한 코드를 안전하게 실행할 수 있습니다. 에이전트에서, Python 코드에서, 또는 터미널에서 샌드박스를 사용할 수 있습니다. 다음 경로들은 각각 독립적으로 작동하므로, 본인의 작업 방식에 맞는 것을 선택하세요:

컴퓨트 크기, 저장 공간 및 제한 사항을 포함한 Databricks Sandbox 개요는 Databricks Sandbox를 참조하세요.

Requirements

  • 작업 영역은 지원되는 지역에 있어야 합니다. 지역 가용성이 제한된 기능을참조하세요.
  • SDK를 사용하려면 Python 3.10 이상이 필요합니다.
  • Databricks CLI를 사용하려면 Databricks CLI를 설치하고 databricks auth login로 인증합니다.

기존 에이전트에게 안전하게 코드를 실행할 수 있는 샌드박스 도구를 제공하세요

에이전트를 Agent Bricks CLI로 빌드하고, 에이전트가 자체 환경이 아닌 외부에서 자신이 작성한 코드(예: Python 데이터 분석)를 실행하도록 하려는 경우 이 경로를 사용하세요.

샌드박스를 먼저 만드는 게 아니에요. 샌드박스 도구는 에이전트를 Azure Databricks가 관리하는 system.ai.sandbox 서비스에 연결해주며, 이 서비스는 에이전트의 코드를 샌드박스에서 실행합니다. 샌드박스가 접근할 수 있는 데이터와 쓰기 가능 여부만 설정합니다.

도구를 추가하려면, 샌드박스가 접근할 수 있는 데이터를 제한하는 하나 이상의 범위를 지정하여 agentbricks tools add sandbox을 실행하세요:

# Read one table.
agentbricks tools add sandbox --scope table:samples.nyctaxi.trips

# Read a volume and a workspace folder.
agentbricks tools add sandbox --scope volume:main.default.reports --scope workspace:/Workspace/Shared/data

# Allow writes to a volume.
agentbricks tools add sandbox --scope volume:main.default.output --permission read_write

이 명령어는 프로젝트의 agent.toml에 해당 도구를 기록하고, 에이전트는 런타임에 system.ai.sandbox MCP 서비스를 통해 샌드박스를 호출합니다. 기본적으로 샌드박스는 요청을 보낸 사용자의 권한으로 실행됩니다. 대신 앱의 서비스 주체를 사용하려면 --auth app을 추가하세요. agentbricks deploy로 배포하면 Agent Bricks는 --auth app를 사용하는 도구의 범위가 지정된 리소스에 대한 액세스 권한을 앱의 서비스 주체에 부여합니다.

Python SDK를 사용해 샌드박스를 만드세요

샌드박스를 만들고 자신의 Python 코드(예: 애플리케이션이나 자체 샌드박스를 관리하는 커스텀 에이전트)에서 명령을 실행하고 싶을 때 이 경로를 사용하세요. Python용 Databricks SDK는 코드에서 샌드박스를 작업하는 데 권장되는 방법입니다.

  1. SDK 설치 또는 업그레이드:

    pip install --upgrade databricks-sdk
    
  2. 샌드박스 만들기:

    from databricks.sdk import WorkspaceClient
    from databricks.sdk.service.sandbox import Sandbox
    
    w = WorkspaceClient()
    
    created = w.sandbox.create_sandbox(
        sandbox=Sandbox(),
        sandbox_id="my-sandbox",
    )
    print(created.name)   # "sandboxes/my-sandbox"
    
  3. 샌드박스에서 명령을 실행하세요. 명령어는 셸 없이 직접 실행되므로, 셸 명령을 실행하려면 /bin/bash -c를 호출하세요:

    from google.protobuf.duration_pb2 import Duration
    
    resp = w.sandbox.execute_command_sync(
        "sandboxes/my-sandbox",
        "/bin/bash",
        args=["-c", "echo hello world && whoami"],
        execution_timeout=Duration(seconds=30),
    )
    print(resp.exit_code)   # 0
    print(resp.stdout)      # "hello world\nsandbox-agent\n"
    
  4. 끝나면 샌드박스를 삭제하세요. 샌드박스를 삭제하면 홈 디렉터리가 제거되고 청구가 중단됩니다:

    w.sandbox.delete_sandbox("sandboxes/my-sandbox")
    

샌드박스를 조회하고, 나열하며, 업데이트하고, 중지하고, 재시작하려면 'SDK를 사용하여 샌드박스 생성 및 관리'를 참고하세요.

Databricks CLI를 사용해 샌드박스를 생성하세요

터미널에서 샌드박스에서 대화형으로 작업하려고 할 때 이 경로를 사용하세요. SSH로 샌드박스에 연결해 로컬 머신을 활성화하지 않고 더 긴 에이전트 작업을 실행하세요. 예를 들어, Databricks CLI에서 코딩 에이전트를 구동하거나, 데스크톱 IDE를 연결하거나 Cursor, Claude, Codex와 같은 에이전트 하네스를 연결할 수 있습니다.

샌드박스를 만들고 연결하려면 다음을 실행하세요:

databricks sandbox create      # create your sandbox
databricks sandbox register    # optional: register SSH keys
databricks sandbox ssh         # SSH to your default sandbox

연결하면 샌드박스 내 Databricks CLI가 설치되어 샌드박스가 실행되는 작업 공간에 인증된 상태가 됩니다. 작업 공간에 Unity Gateway가 설정되어 있다면, Azure Databricks는 Claude, Codex와 같은 일반적인 코딩 도구도 처음 연결할 때 Unity Gateway를 사용하도록 설정해 줍니다. 자세한 내용은 Create a Custom Model Service 를 참조하세요. 샌드박스에서 Git을 사용하려면 Git 자격 증명을 설정하세요. Databricks에 Git 공급자 연결을 참조하세요.

모든 명령어에 대해 databricks sandbox -h를 실행하거나, sandbox 명령어 그룹을(를) 참조하세요.

추가 리소스