> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# DigitalOcean

> Kết nối DigitalOcean để agent kiểm kê Droplet, ứng dụng, cơ sở dữ liệu và Kubernetes, xem xét mức độ phơi nhiễm mạng và đọc thông tin thanh toán.

Kết nối DigitalOcean để CloudThinker có thể kiểm kê Droplet, ứng dụng App Platform, cơ sở dữ liệu được quản lý, cluster Kubernetes và volume của bạn, xem xét firewall và load balancer về mức độ phơi nhiễm, và trả lời câu hỏi về số dư và hóa đơn. Kết nối dùng một personal access token của DigitalOcean và chỉ đọc, ngoại trừ việc có thể tạo hoặc xóa một VPC trống sau khi bạn xác nhận. Đó là thao tác ghi duy nhất, được giữ lại vì VPC trống không tốn chi phí và có thể xóa đi. Phần lớn team không cần quyền này.

***

## Điều kiện tiên quyết

* Một tài khoản DigitalOcean trong team sở hữu các tài nguyên bạn muốn điều tra.
* Quyền tạo personal access token cho team đó.
* Một workspace CloudThinker mà bạn có thể thêm kết nối.

***

## Thiết lập

**1. Tạo personal access token**

> [!WARNING]
>
> Token thuộc về team đang được chọn khi bạn tạo token. Trong DigitalOcean Control Panel, hãy chuyển sang team sở hữu tài nguyên bằng bộ chuyển team (góc trên bên trái) trước.

Sau đó mở [trang Tokens](https://cloud.digitalocean.com/account/api/tokens) và nhấn **Generate New Token**. Điền:

| Trường | Giá trị |
| - | - |
| **Token name** | `cloudthinker` |
| **Expiration** | Một thời hạn cố định, chẳng hạn 90 ngày |
| **Scopes** | **Read Only**, hoặc **Custom Scopes** với danh sách trong [Quyền yêu cầu](#quyền-yêu-cầu) |

Sao chép token ngay. DigitalOcean chỉ hiển thị token một lần.

**2. Thêm kết nối trong CloudThinker**

Trong sidebar, nhấn **More → Workspace settings → Connections**. Trên tab **Builtin Connections**, tìm **DigitalOcean**, dán token vào **API token** và nhấn **Connect**. CloudThinker đọc tài khoản của bạn để kiểm tra token.

**Trạng thái thành công:** thẻ DigitalOcean hiển thị trạng thái **Connected**.

**3. Chạy prompt xác minh**

Chạy [prompt xác minh](#xác-minh-kết-nối) trong một cuộc chat mới.

**Trạng thái thành công:** CloudThinker trả về trạng thái tài khoản và giới hạn tài nguyên, chẳng hạn tài khoản có thể tạo bao nhiêu Droplet.

***

## Chi tiết kết nối

| Trường | Khóa môi trường | Nội dung cần nhập |
| - | - | - |
| **API token** | `DIGITALOCEAN_API_TOKEN` | Một personal access token có quyền đọc các tài nguyên mà CloudThinker cần kiểm tra |

***

## Quyền yêu cầu

**Read Only** là lựa chọn đơn giản nhất. Quyền này đủ cho mọi thao tác đọc của kết nối. Để thu hẹp quyền truy cập, chọn **Custom Scopes** và chọn từ bảng này.

| Scope | Cho phép gì |
| - | - |
| `account:read` | Trạng thái và giới hạn tài khoản. **Bắt buộc**: CloudThinker đọc tài khoản để kiểm tra token. |
| `billing:read` | Số dư, lịch sử thanh toán và hóa đơn |
| `droplet:read` | Danh sách và chi tiết Droplet |
| `app:read` | Ứng dụng App Platform và trạng thái triển khai |
| `database:read` | Cluster cơ sở dữ liệu được quản lý |
| `kubernetes:read` | Cluster Kubernetes và node pool |
| `vpc:read`, `firewall:read`, `load_balancer:read` | Kiểm kê mạng và xem xét mức độ phơi nhiễm |
| `regions:read` | Tình trạng khả dụng của region |
| `monitoring:read`, `uptime:read` | Chính sách cảnh báo và uptime check |
| `block_storage:read` | Block volume |
| `vpc:create`, `vpc:delete` | Tùy chọn. Cho phép CloudThinker tạo và xóa VPC trống. |

> [!TIP]
>
> Bỏ `vpc:create` và `vpc:delete` thì token không thể ghi gì. DigitalOcean không cho phép chỉnh sửa scope sau này, nên thay đổi quyền truy cập đồng nghĩa với việc tạo token mới và cập nhật kết nối.

***

## Khả năng của agent

| Khả năng | CloudThinker đọc hoặc làm gì |
| - | - |
| **Tài khoản và thanh toán** | Trạng thái và giới hạn tài khoản, số dư hiện tại, lịch sử thanh toán, tóm tắt hóa đơn |
| **Droplet** | Danh sách Droplet và chi tiết từng Droplet |
| **App Platform** | Ứng dụng, chi tiết ứng dụng và trạng thái triển khai đang hoạt động |
| **Cơ sở dữ liệu** | Cluster được quản lý kèm engine, phiên bản, region, kích thước, node và trạng thái |
| **Kubernetes** | Cluster, chi tiết cluster và node pool |
| **Mạng** | VPC, firewall, load balancer và tình trạng khả dụng của region |
| **Giám sát** | Chính sách cảnh báo, uptime check và trạng thái uptime check |
| **Lưu trữ** | Block volume |
| **Vòng đời VPC** | Tạo hoặc xóa một VPC trống. Mỗi thao tác đều đi qua Approvals của bạn trước khi chạy. Với token **Read Only**, DigitalOcean từ chối yêu cầu với lỗi quyền. |

Những gì kết nối này không làm: không bao giờ trả về thông tin xác thực Kubernetes (kubeconfig) hoặc chuỗi kết nối cơ sở dữ liệu, và không bao phủ Spaces, Functions, bản ghi DNS hoặc Container Registry. Để làm việc bên trong một cluster, hãy thêm [kết nối Kubernetes](https://docs.cloudthinker.io/vi/guide/connections/kubernetes.md).

Mọi thay đổi do agent thực hiện đều đi qua [Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md) của workspace trước. Ở chế độ mặc định **Auto · Rules + AI · Ask me**, AI judgment có thể cho một thay đổi an toàn chạy mà không cần hỏi. Allow Rule cũng vậy, sau khi CloudThinker bật [Rule enforcement](https://docs.cloudthinker.io/vi/guide/approvals/rules.md#khắc-phục-sự-cố) cho workspace của bạn. Chọn **Manual** nếu bạn muốn tự phê duyệt mọi thay đổi.

Nếu muốn lần nào cũng được hỏi, hãy chọn **Manual** làm [Approval mode](https://docs.cloudthinker.io/vi/guide/approvals/approval-mode.md) để mọi thay đổi đều phải có người phê duyệt. Khi CloudThinker bật [Rule enforcement](https://docs.cloudthinker.io/vi/guide/approvals/rules.md#khắc-phục-sự-cố) cho workspace của bạn, một [Rule](https://docs.cloudthinker.io/vi/guide/approvals/rules.md) **Ask first** có thể chỉ áp dụng việc hỏi trước cho riêng kết nối này.

Danh sách được đọc từng trang một. Khi CloudThinker nói "20 Droplet", nghĩa là đã đọc 20 và sẽ cho bạn biết nếu còn nhiều hơn. Hãy yêu cầu danh sách đầy đủ khi bạn cần con số chính xác.

### Xác minh kết nối

```text theme={null}
Check the DigitalOcean connection and summarize my account status and limits
```

### Ví dụ prompt

```text theme={null}
List my DigitalOcean Droplets, apps, and databases as a table with region and status
Review my DigitalOcean firewalls and load balancers and flag anything open to the internet
Show my DigitalOcean balance and last three invoices
```

***

## Khắc phục sự cố

> **DigitalOcean API token is invalid or expired**
>
> DigitalOcean đã từ chối token. Tạo token mới trên trang Tokens. Sau đó mở kết nối, nhấn biểu tượng chỉnh sửa trên instance, nhấn **Replace…** trong **Edit Instance**, dán token và nhấn **Save and test**.

> **DigitalOcean API token needs account:read permission**
>
> Token hoạt động nhưng thiếu scope mà CloudThinker dùng để kiểm tra. Tạo token mới có `account:read`, rồi cập nhật kết nối.

> **Thiếu các tài nguyên mong đợi**
>
> Scope của token không bao phủ loại tài nguyên đó, hoặc tài nguyên thuộc về team khác. Tạo token từ team sở hữu với các scope bạn cần.

> **DigitalOcean API rate limit reached**
>
> DigitalOcean đang giới hạn tốc độ yêu cầu. Chờ rồi thử lại, và hỏi về từng loại tài nguyên một để mỗi lượt chạy thực hiện ít lệnh gọi hơn.

> **Account verification timed out or is temporarily unavailable**
>
> DigitalOcean không phản hồi kịp thời. Thử lại **Connect**. Nếu vẫn thất bại, hãy kiểm tra [trang trạng thái của DigitalOcean](https://status.digitalocean.com) trước khi tạo token mới.

> **Thay đổi VPC không bao giờ chạy**
>
> Mỗi thao tác tạo hoặc xóa VPC đều đi qua Approvals của bạn riêng biệt, và phê duyệt một thao tác tạo không bao phủ thao tác xóa. Nếu có yêu cầu đang chờ bạn, hãy trả lời trong chat. Câu trả lời "không" là quyết định cuối cùng cho yêu cầu đó.

***

## Bảo mật

* **Quyền tối thiểu** — chỉ cấp các quyền mà agent cần cho trường hợp sử dụng của bạn; bắt đầu với quyền chỉ đọc và mở rộng sau.
* **Chỉ đọc theo mặc định** — sử dụng thông tin xác thực chỉ đọc trừ khi bạn muốn agent thực hiện thay đổi qua kết nối này.
* **Xoay vòng thông tin xác thực** — xoay vòng khóa và token theo lịch trình thông thường của bạn; CloudThinker sẽ lấy giá trị mới khi bạn cập nhật kết nối.
* **Thu hồi khi bàn giao** — xóa thông tin xác thực tại nhà cung cấp khi bạn xóa một kết nối hoặc khi đồng nghiệp rời nhóm.

- **Token là ranh giới:** CloudThinker không thể làm nhiều hơn những gì scope của token cho phép, nên một token chỉ đọc khiến thao tác ghi không thể thực hiện tại DigitalOcean.
- **Đặt thời hạn:** token DigitalOcean không tự xoay vòng. Chọn thời hạn khi tạo token và xoay vòng theo lịch đó.

***

## Liên quan

> **[Kết nối Kubernetes](https://docs.cloudthinker.io/vi/guide/connections/kubernetes.md)**
>
> Kết nối trực tiếp một cluster DOKS để điều tra ở cấp workload

> **[Tổng quan kết nối](https://docs.cloudthinker.io/vi/guide/connections/overview.md)**
>
> Xem mọi nền tảng bạn có thể kết nối và cách kết nối hoạt động


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.