Metadata-Version: 2.1
Name: eci-as-sandbox
Version: 0.1.0
Summary: ECI-backed sandbox manager with an Agent interface.
License: Apache-2.0
Requires-Python: >=3.9
Requires-Dist: alibabacloud-eci20180808>=2.0.8
Requires-Dist: python-dotenv>=1.0.0
Description-Content-Type: text/markdown

# eci-as-sandbox

ECI-backed sandbox manager with an AgentBay-style interface. This package wraps
`alibabacloud-eci20180808` and exposes a lightweight API for managing
container-group sandboxes.

## Install

```bash
pdm add eci-as-sandbox
```

## Environment

Set standard Alibaba Cloud credentials:

```bash
set ALIBABA_CLOUD_ACCESS_KEY_ID=...
set ALIBABA_CLOUD_ACCESS_KEY_SECRET=...
set ALIBABA_CLOUD_REGION_ID=cn-shanghai
```

Optional overrides:

```bash
set ECI_SANDBOX_ENDPOINT=eci.cn-shanghai.aliyuncs.com
set ECI_SANDBOX_TIMEOUT_MS=60000
set ECI_SANDBOX_VSWITCH_ID=vsw-xxx
set ECI_SANDBOX_SECURITY_GROUP_ID=sg-xxx
set ECI_SANDBOX_AUTO_CREATE_EIP=true
set ECI_SANDBOX_EIP_BANDWIDTH=5
set ECI_SANDBOX_EIP_INSTANCE_ID=eip-xxx
set ECI_SANDBOX_IMAGE=registry.cn-shanghai.aliyuncs.com/eci_open/nginx:latest
```

## Quick start

```python
from eci_as_sandbox import EciSandbox

client = EciSandbox()
result = client.create(
    image="registry.cn-hangzhou.aliyuncs.com/eci_open/nginx:latest",
    name="sandbox-demo",
    cpu=1.0,
    memory=2.0,
    v_switch_id="vsw-xxx",
    security_group_id="sg-xxx",
)

if result.success:
    sandbox = result.sandbox
    info = sandbox.info()
    print(info.data.status)
    sandbox.delete()
```
