# Học xong khoá Claude with Amazon Bedrock, đừng vội hứa với khách AWS

> Phần nền tảng dùng được ngay, nhưng tool phía server, MCP connector và batch không chạy y hệt trên Bedrock.

Bản gốc: https://fdetimes.net/vi/sach-khoa-hoc/khoa-claude-with-amazon-bedrock-anthropic-academy/

Anthropic không làm khoá này cho người mới. Trang giới thiệu của **Claude with Amazon Bedrock** trên Anthropic Academy (anthropic.skilljar.com/claude-in-amazon-bedrock) nói rõ khoá ra đời trong một chương trình accreditation lập riêng cho AWS, và là đợt đào tạo đầu tiên kiểu này dành cho nhân viên AWS.

Tức là khoá được thiết kế trước hết cho người làm ở AWS.

Nhưng có một cái bẫy. Ngay tài liệu của Anthropic cũng thừa nhận gọi Claude qua Bedrock hơi khác gọi Claude API trực tiếp. Đọc khoá này mà không biết khác ở đâu, bạn dễ hứa với khách một tính năng mà môi trường của họ không có.

## Ai nên học, và học theo thứ tự nào?

Trang khoá yêu cầu bạn thạo Python và hiểu cơ bản về các dịch vụ AWS cùng Amazon Bedrock. Nếu chưa từng mở console AWS, đừng bắt đầu ở đây. Academy, nay nằm ở academy.claude.com, quảng bá các khoá miễn phí do đội giáo dục của Anthropic làm, nên bạn có thể học phần nền về Claude ở đó trước.

Trang khoá không ghi ngày phát hành; dòng bản quyền 2026 ở chân trang chỉ là năm của trang, không cho biết khoá ra mắt lúc nào.

Vì không rõ khoá được soạn khi nào, nội dung có thể bám theo tài liệu Bedrock legacy, trong khi Anthropic đã có những đường tích hợp mới hơn.

Thứ tự hợp lý: học khoá để nắm cách gọi qua boto3, tool use, agent, MCP và prompt caching.

Sau đó đọc trang "Claude on Amazon Bedrock" của Anthropic và hướng dẫn Messages API trong Bedrock User Guide của AWS để biết phần nào không chạy y hệt.

## Tool có trong bài giảng chưa chắc có trong tài khoản khách

Trong khoá, tool use, agent và MCP là kiến thức Claude dùng chung. Trên tích hợp Bedrock legacy (InvokeModel/Converse), tài liệu Anthropic liệt kê nhiều thứ không có: tool phía server như code execution, web search, web fetch; hạ tầng agent như Agent Skills, MCP connector, programmatic tool calling; và các endpoint Message Batches, Models, Admin, Usage and Cost.

Thử hình dung một khách bảo hiểm muốn agent đọc hồ sơ, tra cứu web và chạy code tính toán. Trên Claude API, tra cứu web và chạy code có sẵn dưới dạng tool phía server, dù bạn vẫn phải thiết kế agent và kiểm thử cẩn thận.

Trên Bedrock legacy, bạn phải tự viết tool phía client cho hai phần đó, còn xử lý hàng loạt phải đi theo cơ chế của Bedrock, nên ước lượng công việc có thể lệch hẳn.

Prompt caching cũng vậy. Bedrock có caching, nhưng không có chế độ tự động bằng trường `cache_control` ở cấp cao nhất. Bạn phải đặt cache breakpoint tường minh.

**Điểm mấu chốt:** Học một tính năng của Claude chưa đủ; phải biết nền tảng của khách có hỗ trợ nó không.

## Model ID và vùng chạy là quyết định kiến trúc

Model mới trên Bedrock thường phải gọi qua inference profile (cross-region inference) chứ không qua model ID gốc. Đây là chi tiết vận hành riêng của AWS, nên hãy kiểm tra nó đầu tiên khi chuyển demo sang tài khoản của khách.

Vùng chạy cũng không chỉ là chuyện kỹ thuật. Khách cần data residency sẽ phải dùng endpoint theo vùng, và tài liệu Anthropic ghi endpoint theo vùng đắt hơn 10 phần trăm so với endpoint global. Nếu khách là ngân hàng bắt buộc dữ liệu ở một vùng, hãy đưa con số này vào đề xuất ngay từ đầu, đừng để đến lúc nhận hoá đơn.

## Những bẫy vận hành nằm trong tài liệu AWS

Khoá dạy gọi qua boto3, nhưng AWS khuyên dùng Converse API khi triển khai messages thay vì InvokeModel thô. Bạn sẽ gặp cả hai trong code của khách, nên cần đọc được cả hai.

Bẫy đáng nhớ nhất: client AWS SDK mặc định timeout sau 1 phút, trong khi một lần suy luận dài có thể kéo tới 60 phút. Hệ quả trực tiếp là với cấu hình mặc định, request nào chạy quá 1 phút sẽ không chờ được tới kết quả; AWS khuyên tăng read timeout.

Đoạn code dưới đây minh hoạ cùng một lời gọi trước và sau khi chuyển sang Bedrock. Các ID trong code chỉ để minh hoạ; khi làm thật, bạn lấy giá trị từ tài khoản AWS của khách.

```python
# Trước: gọi thẳng Claude API
import anthropic

client = anthropic.Anthropic()
resp = client.messages.create(
    model="<model-id>",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Tóm tắt hồ sơ này"}],
)

# Sau: gọi qua Bedrock bằng Converse API
import boto3
from botocore.config import Config

bedrock = boto3.client(
    "bedrock-runtime",
    config=Config(read_timeout=3600),  # nâng từ mặc định 1 phút lên 60 phút
)
resp = bedrock.converse(
    modelId="<inference-profile-id>",  # inference profile, không phải model ID gốc
    messages=[{"role": "user", "content": [{"text": "Tóm tắt hồ sơ này"}]}],
    inferenceConfig={"maxTokens": 1024},
)
```

Ba dòng đáng chú ý là `Config(read_timeout=...)`, `modelId` trỏ tới inference profile và cấu trúc `content` dạng danh sách của Converse. Hãy đặt cả ba vào template dự án ngay từ ngày đầu.

Anthropic còn chỉ ra hai đường khác: endpoint Messages API mới "Claude in Amazon Bedrock", và "Claude Platform on AWS" do Anthropic vận hành, tính phí qua AWS Marketplace và thường có tính năng mới ngay trong ngày. Trang tài liệu legacy mang nhãn "Opus 4.6 and earlier". Trước khi chốt kiến trúc, hỏi khách họ đang dùng đường nào.

## Biến khoá học thành lợi thế khi đi xin việc

Trên CV, tên một khoá học ít thuyết phục bằng một việc bạn đã làm thật. Một dòng kiểu "chuyển ứng dụng Claude từ API trực tiếp sang Bedrock qua Converse API, dùng inference profile, cấu hình read timeout cho suy luận dài, thay tool phía server bằng tool phía client" cho thấy bạn đã chạm vào chỗ khó.

Nếu vị trí bạn ứng tuyển phục vụ khách chạy trên AWS, hãy mang đúng ví dụ này vào buổi phỏng vấn và kể lại từng chỗ phải sửa.

Khoá này dạy bạn nói cùng ngôn ngữ với đội AWS của khách. Trang tài liệu về những khác biệt mới là thứ giữ cho bạn không hứa sai trong buổi họp đầu tiên.

**Thử ngay tuần này:**

- Lấy một demo Claude bạn đã viết bằng Claude API, chuyển sang Bedrock qua Converse API và inference profile, ghi lại mọi chỗ phải sửa.
- Viết một trang checklist năm cột cho khách AWS: tính năng khách muốn, có trên Bedrock hay không, cách thay thế, vùng chạy, timeout.
- Gọi thử một request suy luận dài với read timeout mặc định rồi với timeout đã tăng, để tự thấy lỗi xuất hiện thế nào.

## Nguồn

- [Claude with Amazon Bedrock – Anthropic Academy](https://anthropic.skilljar.com/claude-in-amazon-bedrock)

- [Claude Academy](https://academy.claude.com/)

- [Claude on Amazon Bedrock (Opus 4.6 and earlier)](https://platform.claude.com/docs/en/build-with-claude/claude-on-amazon-bedrock-legacy)

- [Anthropic Claude Messages API – Amazon Bedrock User Guide](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-anthropic-claude-messages.html)
