AWS DynamoDB MCP Server

chính thức

Máy chủ MCP trải nghiệm nhà phát triển chính thức cho Amazon DynamoDB. Máy chủ này cung cấp hướng dẫn thiết kế chuyên gia DynamoDB và hỗ trợ mô hình hóa dữ liệu.

Tài liệu

AWS DynamoDB MCP Server

Máy chủ MCP trải nghiệm dành cho nhà phát triển chính thức cho Amazon DynamoDB. Máy chủ này cung cấp hướng dẫn thiết kế chuyên gia DynamoDB và hỗ trợ mô hình hóa dữ liệu.

[!IMPORTANT] AI tạo sinh có thể mắc lỗi. Bạn nên cân nhắc xem xét tất cả đầu ra do mô hình AI và trợ lý lập trình tác nhân bạn chọn tạo ra. Xem Chính sách AI có trách nhiệm của AWS.

Công cụ khả dụng

Máy chủ MCP DynamoDB cung cấp tám công cụ để mô hình hóa dữ liệu, xác thực, phân tích chi phí và tạo mã:

  • dynamodb_data_modeling - Truy xuất lời nhắc Chuyên gia Mô hình hóa Dữ liệu DynamoDB hoàn chỉnh với các mẫu thiết kế cấp doanh nghiệp, chiến lược tối ưu hóa chi phí và triết lý thiết kế đa bảng. Hướng dẫn qua quá trình thu thập yêu cầu, phân tích mẫu truy cập và thiết kế lược đồ.

    Ví dụ lệnh gọi: "Thiết kế mô hình dữ liệu cho ứng dụng thương mại điện tử của tôi bằng máy chủ MCP mô hình hóa dữ liệu DynamoDB"

  • dynamodb_data_model_validation - Xác thực mô hình dữ liệu DynamoDB của bạn bằng cách tải dynamodb_data_model.json, thiết lập DynamoDB Local, tạo bảng với dữ liệu kiểm thử và thực thi tất cả các mẫu truy cập đã xác định. Lưu kết quả xác thực chi tiết vào dynamodb_model_validation.json.

    Ví dụ lệnh gọi: "Xác thực mô hình dữ liệu DynamoDB của tôi"

  • source_db_analyzer - Phân tích cơ sở dữ liệu hiện có (MySQL, PostgreSQL, SQL Server, Oracle) để trích xuất cấu trúc lược đồ, mẫu truy cập và tạo tệp phân tích có dấu thời gian để sử dụng với dynamodb_data_modeling. Hỗ trợ cả truy cập dựa trên RDS Data API và truy cập dựa trên kết nối cho MySQL.

    Ví dụ lệnh gọi: "Phân tích cơ sở dữ liệu MySQL của tôi và giúp tôi thiết kế mô hình dữ liệu DynamoDB"

  • generate_resources - Tạo các tài nguyên khác nhau từ tệp JSON mô hình dữ liệu DynamoDB (dynamodb_data_model.json). Hiện chỉ hỗ trợ loại tài nguyên cdk. Truyền cdk làm tham số resource_type sẽ tạo ứng dụng CDK để triển khai bảng DynamoDB. Ứng dụng CDK đọc dynamodb_data_model.json để tạo bảng với cấu hình phù hợp.

    Ví dụ lệnh gọi: "Tạo tài nguyên để triển khai mô hình dữ liệu DynamoDB của tôi bằng CDK"

  • dynamodb_data_model_schema_converter - Chuyển đổi mô hình dữ liệu của bạn (dynamodb_data_model.md) thành tệp schema.json có cấu trúc đại diện cho các bảng, chỉ mục, thực thể, trường và mẫu truy cập DynamoDB. Định dạng máy đọc được này được sử dụng để tạo mã và có thể mở rộng cho các mục đích khác như tạo tài liệu hoặc cung cấp cơ sở hạ tầng. Tự động xác thực lược đồ với tối đa 8 lần lặp để đảm bảo tính chính xác.

    Ví dụ lệnh gọi: "Chuyển đổi mô hình dữ liệu của tôi thành schema.json để tạo mã"

  • dynamodb_data_model_schema_validator - Xác thực tệp schema.json để tương thích tạo mã. Kiểm tra loại trường, thao tác, ánh xạ GSI, ID mẫu và cung cấp thông báo lỗi chi tiết kèm đề xuất sửa lỗi. Đảm bảo lược đồ của bạn sẵn sàng cho công cụ generate_data_access_layer.

    Ví dụ lệnh gọi: "Xác thực tệp schema.json của tôi tại /path/to/schema.json"

  • generate_data_access_layer - Tạo mã Python an toàn kiểu từ schema.json bao gồm các lớp thực thể với xác thực trường, lớp kho lưu trữ với thao tác CRUD, các mẫu truy cập được triển khai đầy đủ và ví dụ sử dụng tùy chọn. Mã được tạo sử dụng Pydantic để xác thực và boto3 cho các thao tác DynamoDB.

    Ví dụ lệnh gọi: "Tạo mã Python từ schema.json của tôi"

  • compute_performances_and_costs - Tính toán đơn vị dung lượng DynamoDB (RCU/WCU) và chi phí hàng tháng từ các mẫu truy cập. Phân tích tất cả các thao tác DynamoDB (GetItem, Query, Scan, PutItem, UpdateItem, DeleteItem, BatchGetItem, BatchWriteItem, TransactGetItems, TransactWriteItems), theo dõi các lần ghi bổ sung GSI và tính toán chi phí lưu trữ. Thêm báo cáo chi phí toàn diện vào dynamodb_data_model.md.

    Ví dụ lệnh gọi: "Tính toán chi phí và hiệu suất cho mô hình dữ liệu DynamoDB của tôi"

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

  1. Cài đặt uv từ Astral hoặc README GitHub
  2. Cài đặt Python bằng uv python install 3.10
  3. Thiết lập thông tin xác thực AWS với quyền truy cập vào các dịch vụ AWS

Cài đặt

KiroCursorVS Code
KiroCursorVS Code

Lưu ý: Các nút cài đặt ở trên cấu hình AWS_REGION thành us-west-2 theo mặc định. Cập nhật giá trị này trong cấu hình MCP của bạn sau khi cài đặt nếu bạn cần một khu vực khác.

Thêm máy chủ MCP vào tệp cấu hình của bạn (đối với Kiro thêm vào .kiro/settings/mcp.json - xem đường dẫn cấu hình):

{
  "mcpServers": {
    "awslabs-dynamodb-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.dynamodb-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Cài đặt trên Windows

Đối với người dùng Windows, định dạng cấu hình máy chủ MCP hơi khác một chút:

{
  "mcpServers": {
    "awslabs-dynamodb-mcp-server": {
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--from",
        "awslabs.dynamodb-mcp-server@latest",
        "awslabs.dynamodb-mcp-server.exe"
      ],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      }
    }
  }
}

Cài đặt Docker

Sau khi docker build -t awslabs/dynamodb-mcp-server . thành công:

{
  "mcpServers": {
    "awslabs-dynamodb-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "--interactive",
        "--env",
        "FASTMCP_LOG_LEVEL=ERROR",
        "awslabs/dynamodb-mcp-server:latest"
      ],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

Mô hình hóa dữ liệu

Mô hình hóa dữ liệu bằng ngôn ngữ tự nhiên

Sử dụng công cụ dynamodb_data_modeling để thiết kế mô hình dữ liệu DynamoDB thông qua hội thoại ngôn ngữ tự nhiên với tác nhân AI của bạn. Chỉ cần yêu cầu: "sử dụng MCP DynamoDB của tôi để giúp tôi thiết kế mô hình dữ liệu DynamoDB."

Công cụ cung cấp quy trình làm việc có cấu trúc để chuyển đổi yêu cầu ứng dụng thành mô hình dữ liệu DynamoDB:

Giai đoạn thu thập yêu cầu:

  • Nắm bắt các mẫu truy cập thông qua hội thoại ngôn ngữ tự nhiên
  • Ghi lại các thực thể, mối quan hệ và mẫu đọc/ghi
  • Ghi lại số yêu cầu ước tính mỗi giây (RPS) cho mỗi mẫu
  • Tạo tệp dynamodb_requirements.md cập nhật theo thời gian thực
  • Xác định các mẫu phù hợp hơn với các dịch vụ AWS khác (OpenSearch cho tìm kiếm văn bản, Redshift cho phân tích)
  • Đánh dấu các cân nhắc thiết kế đặc biệt (ví dụ: mẫu fan-out lớn yêu cầu DynamoDB Streams và Lambda)

Giai đoạn thiết kế:

  • Tạo thiết kế bảng và chỉ mục được tối ưu hóa
  • Tạo dynamodb_data_model.md với lý do thiết kế chi tiết
  • Cung cấp chi phí hàng tháng ước tính
  • Ghi lại cách mỗi mẫu truy cập được hỗ trợ
  • Bao gồm các khuyến nghị tối ưu hóa cho quy mô và hiệu suất

Công cụ được hỗ trợ bởi ngữ cảnh do chuyên gia thiết kế giúp các mô hình lập luận hướng dẫn bạn qua các kỹ thuật mô hình hóa nâng cao. Kết quả tốt nhất đạt được với các mô hình có khả năng lập luận như Anthropic Claude 4/4.5 Sonnet, OpenAI o3 và Google Gemini 2.5.

Xác thực mô hình dữ liệu

Điều kiện tiên quyết để xác thực mô hình dữ liệu: Để sử dụng công cụ xác thực mô hình dữ liệu, bạn cần một trong những thứ sau:

  • Môi trường thời gian chạy container: Docker, Podman, Finch hoặc nerdctl với daemon đang chạy
  • Môi trường thời gian chạy Java: Java JRE phiên bản 17 trở lên (đặt JAVA_HOME hoặc đảm bảo java nằm trong PATH hệ thống của bạn)

Sau khi hoàn thành thiết kế mô hình dữ liệu, sử dụng công cụ dynamodb_data_model_validation để tự động kiểm tra mô hình dữ liệu của bạn với DynamoDB Local. Công cụ xác thực khép kín vòng lặp giữa tạo và thực thi bằng cách tạo chu trình xác thực lặp lại.

Cách thức hoạt động:

Công cụ tự động hóa quy trình xác thực thủ công truyền thống:

  1. Thiết lập: Khởi động môi trường DynamoDB Local (Docker/Podman/Finch/nerdctl hoặc dự phòng Java)
  2. Tạo đặc tả kiểm thử: Tạo dynamodb_data_model.json liệt kê các bảng, dữ liệu mẫu và mẫu truy cập để kiểm tra
  3. Triển khai lược đồ: Tạo bảng, chỉ mục và chèn dữ liệu mẫu cục bộ
  4. Thực thi kiểm thử: Chạy tất cả các thao tác đọc và ghi được xác định trong mẫu truy cập của bạn
  5. Xác thực kết quả: Kiểm tra xem mỗi mẫu truy cập hoạt động chính xác và hiệu quả
  6. Tinh chỉnh lặp lại: Nếu xác thực thất bại (ví dụ: truy vấn trả về kết quả không đầy đủ do khóa phân vùng không khớp), công cụ ghi lại vấn đề, tạo lại lược đồ bị ảnh hưởng và chạy lại kiểm thử cho đến khi tất cả các mẫu vượt qua

Đầu ra xác thực:

  • dynamodb_model_validation.json: Kết quả xác thực chi tiết với phản hồi mẫu
  • validation_result.md: Tóm tắt quá trình xác thực với trạng thái đạt/không đạt cho mỗi mẫu truy cập
  • Xác định các vấn đề như cấu trúc khóa không chính xác, thiếu chỉ mục hoặc mẫu truy vấn không hiệu quả

Phân tích cơ sở dữ liệu nguồn

Công cụ source_db_analyzer trích xuất lược đồ và mẫu truy cập từ cơ sở dữ liệu hiện có của bạn để giúp thiết kế mô hình DynamoDB. Điều này hữu ích khi di chuyển từ cơ sở dữ liệu quan hệ.

Công cụ hỗ trợ hai phương thức kết nối cho MySQL:

  • Truy cập dựa trên RDS Data API: Kết nối không máy chủ sử dụng ARN cụm
  • Truy cập dựa trên kết nối: Kết nối truyền thống sử dụng tên máy chủ/cổng

Cơ sở dữ liệu được hỗ trợ:

  • MySQL / Aurora MySQL
  • PostgreSQL
  • SQL Server
  • Oracle

Chế độ thực thi:

  • Chế độ tự phục vụ: Tạo truy vấn SQL, tự chạy chúng, cung cấp kết quả (MySQL, PostgreSQL, SQL Server, Oracle)
  • Chế độ quản lý: Kết nối trực tiếp qua AWS RDS Data API (chỉ MySQL)

Chúng tôi khuyên bạn nên chạy công cụ này với phiên bản cơ sở dữ liệu không phải production.

Chế độ tự phục vụ (MySQL, PostgreSQL, SQL Server, Oracle)

Chế độ tự phục vụ cho phép bạn phân tích bất kỳ cơ sở dữ liệu nào mà không cần kết nối AWS:

  1. Tạo truy vấn: Công cụ ghi các truy vấn SQL (dựa trên cơ sở dữ liệu đã chọn) vào một tệp
  2. Chạy truy vấn: Bạn thực thi các truy vấn với cơ sở dữ liệu của mình
  3. Cung cấp kết quả: Công cụ phân tích kết quả và tạo báo cáo phân tích

Chế độ quản lý (chỉ MySQL)

Chế độ quản lý cho phép bạn kết nối công cụ với AWS RDS Data API để phân tích cơ sở dữ liệu MySQL/Aurora hiện có nhằm trích xuất lược đồ và mẫu truy cập cho mô hình hóa DynamoDB.

Điều kiện tiên quyết cho tích hợp MySQL (Chế độ quản lý)

Đối với truy cập dựa trên RDS Data API:

  1. Cụm MySQL với RDS Data API được bật
  2. Thông tin xác thực cơ sở dữ liệu được lưu trữ trong AWS Secrets Manager
  3. Thông tin xác thực AWS có quyền truy cập RDS Data API và Secrets Manager

Đối với truy cập dựa trên kết nối:

  1. Máy chủ MySQL có thể truy cập từ môi trường của bạn

  2. Thông tin xác thực cơ sở dữ liệu được lưu trữ trong AWS Secrets Manager

  3. Bí mật Secrets Manager phải chứa trường host khớp với tên máy chủ cơ sở dữ liệu của bạn (ngoài usernamepassword). Điều này đảm bảo thông tin xác thực chỉ được sử dụng với máy chủ cơ sở dữ liệu dự định. Bí mật do RDS quản lý tự động bao gồm trường này. Nếu bạn tạo bí mật thủ công, hãy đảm bảo nó tuân theo cấu trúc tiêu chuẩn:

    aws secretsmanager create-secret \
        --name "my-db-secret" \
        --secret-string '{
            "engine": "mysql",
            "host": "my-db.cluster-xxx.us-east-1.rds.amazonaws.com",
            "username": "<username>",
            "password": "<password>",
            "dbname": "<database name>",
            "port": 3306
        }'
    
  4. Thông tin xác thực AWS có quyền truy cập Secrets Manager

Đối với cả hai phương thức kết nối: 4. Bật Performance Schema để phân tích mẫu truy cập (tùy chọn nhưng khuyến nghị):

  • Đặt tham số performance_schema thành 1 trong nhóm tham số DB của bạn
  • Khởi động lại phiên bản DB sau khi thay đổi
  • Xác minh bằng: SHOW GLOBAL VARIABLES LIKE '%performance_schema'
  • Cân nhắc điều chỉnh:
    • performance_schema_digests_size - Số hàng tối đa trong events_statements_summary_by_digest
    • performance_schema_max_digest_length - Độ dài byte tối đa cho mỗi digest câu lệnh (mặc định: 1024)
  • Nếu không có Performance Schema, phân tích chỉ dựa trên lược đồ thông tin

Biến môi trường MySQL

Thêm các biến môi trường này để bật tích hợp MySQL:

Đối với truy cập dựa trên RDS Data API:

  • MYSQL_CLUSTER_ARN: ARN cụm MySQL
  • MYSQL_SECRET_ARN: ARN của bí mật chứa thông tin xác thực cơ sở dữ liệu
  • MYSQL_DATABASE: Tên cơ sở dữ liệu cần phân tích
  • AWS_REGION: Khu vực AWS của cụm

Đối với truy cập dựa trên kết nối:

  • MYSQL_HOSTNAME: Tên máy chủ hoặc điểm cuối MySQL
  • MYSQL_PORT: Cổng máy chủ MySQL (tùy chọn, mặc định: 3306)
  • MYSQL_SECRET_ARN: ARN của bí mật chứa thông tin xác thực cơ sở dữ liệu
  • MYSQL_DATABASE: Tên cơ sở dữ liệu cần phân tích
  • AWS_REGION: Khu vực AWS nơi đặt Secrets Manager

Tùy chọn chung:

  • MYSQL_MAX_QUERY_RESULTS: Số hàng tối đa trong tệp đầu ra phân tích (tùy chọn, mặc định: 500)

Lưu ý: Tham số công cụ rõ ràng được ưu tiên hơn biến môi trường. Chỉ nên chỉ định một phương thức kết nối (ARN cụm hoặc tên máy chủ).

Cấu hình MCP với MySQL

Đối với truy cập dựa trên RDS Data API:

{
  "mcpServers": {
    "awslabs-dynamodb-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.dynamodb-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "default",
        "AWS_REGION": "us-west-2",
        "FASTMCP_LOG_LEVEL": "ERROR",
        "MYSQL_CLUSTER_ARN": "arn:aws:rds:$REGION:$ACCOUNT_ID:cluster:$CLUSTER_NAME",
        "MYSQL_SECRET_ARN": "arn:aws:secretsmanager:$REGION:$ACCOUNT_ID:secret:$SECRET_NAME",
        "MYSQL_DATABASE": "<DATABASE_NAME>",
        "MYSQL_MAX_QUERY_RESULTS": "500"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Đối với truy cập dựa trên kết nối:

{
  "mcpServers": {
    "awslabs.dynamodb-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.dynamodb-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "default",
        "AWS_REGION": "us-west-2",
        "FASTMCP_LOG_LEVEL": "ERROR",
        "MYSQL_HOSTNAME": "<MYSQL_HOST>",
        "MYSQL_PORT": "3306",
        "MYSQL_SECRET_ARN": "arn:aws:secretsmanager:$REGION:$ACCOUNT_ID:secret:$SECRET_NAME",
        "MYSQL_DATABASE": "<DATABASE_NAME>",
        "MYSQL_MAX_QUERY_RESULTS": "500"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Sử dụng phân tích cơ sở dữ liệu nguồn

  1. Chạy source_db_analyzer trên Cơ sở dữ liệu của bạn (chế độ Tự phục vụ hoặc Được quản lý)
  2. Xem lại thư mục phân tích có dấu thời gian đã tạo (database_analysis_YYYYMMDD_HHMMSS)
  3. Đọc tệp manifest.md trước - tệp này liệt kê tất cả các tệp phân tích và số liệu thống kê
  4. Đọc tất cả các tệp phân tích để hiểu cấu trúc lược đồ và các mẫu truy cập
  5. Sử dụng phân tích với dynamodb_data_modeling để thiết kế lược đồ DynamoDB của bạn

Công cụ tạo ra các tệp Markdown với:

  • Cấu trúc lược đồ (bảng, cột, chỉ mục, khóa ngoại)
  • Các mẫu truy cập từ Performance Schema (mẫu truy vấn, RPS, tần suất)
  • Phân tích có dấu thời gian để theo dõi thay đổi theo thời gian

Chuyển đổi Lược đồ và Tạo Mã

Sau khi thiết kế mô hình dữ liệu DynamoDB, bạn có thể chuyển đổi nó thành lược đồ có cấu trúc và tạo mã python tham chiếu. Khi sử dụng các công cụ MCP thông qua LLM, toàn bộ quy trình này diễn ra tự động - LLM hướng dẫn bạn qua quá trình chuyển đổi lược đồ, xác thực và tạo mã trong một cuộc trò chuyện duy nhất mà không cần gọi công cụ thủ công.

Đối với việc sử dụng độc lập, bạn cũng có thể gọi trực tiếp các công cụ này qua CLI hoặc chỉnh sửa thủ công các tệp schema.json và tạo lại mã khi cần.

Lưu ý: Xác thực mô hình dữ liệu (dynamodb_data_model_validation) là tùy chọn cho việc tạo mã. Tuy nhiên, nếu bạn dự định kiểm thử mã đã tạo với usage_examples.py trên DynamoDB Local, bạn nên chạy xác thực trước vì nó tự động thiết lập các bảng và dữ liệu kiểm thử trong DynamoDB Local.

Chuyển đổi Mô hình Dữ liệu thành Lược đồ

Công cụ dynamodb_data_model_schema_converter chuyển đổi mô hình dữ liệu dễ đọc của bạn (dynamodb_data_model.md) thành lược đồ JSON có cấu trúc đại diện cho các bảng, chỉ mục, thực thể và mẫu truy cập DynamoDB của bạn. Định dạng máy đọc được này cho phép tạo mã và có thể mở rộng cho tài liệu hoặc cung cấp cơ sở hạ tầng.

Công cụ tự động xác thực lược đồ đã tạo, cung cấp thông báo lỗi chi tiết và đề xuất sửa chữa nếu xác thực thất bại. Đầu ra được lưu vào thư mục có dấu thời gian để cách ly.

Cấu trúc Lược đồ:

schema.json được tạo là một biểu diễn có cấu trúc chứa:

  • Bảng: Một hoặc nhiều định nghĩa bảng DynamoDB với khóa phân vùng/sắp xếp
  • Định nghĩa GSI: Cấu hình Chỉ mục Phụ Toàn cầu (tùy chọn)
  • Thực thể: Các mô hình miền (Người dùng, Đơn hàng, Sản phẩm, v.v.) với các trường có kiểu
  • Kiểu trường: string, integer, decimal, boolean, array, object, uuid
  • Mẫu truy cập: Các thao tác Query/Scan/GetItem với định nghĩa tham số và mẫu khóa
  • Mẫu khóa: Các mẫu để tạo khóa phân vùng và khóa sắp xếp (ví dụ: USER#{user_id})

Định dạng có cấu trúc này đóng vai trò là đầu vào cho các công cụ tạo mã.

Xác thực Tệp Lược đồ

Công cụ dynamodb_data_model_schema_validator xác thực tệp schema.json của bạn để đảm bảo nó được định dạng đúng cho việc tạo mã.

Kiểm tra Xác thực:

  • Các phần bắt buộc (table_config, entities) tồn tại
  • Tất cả các trường bắt buộc đều có mặt
  • Kiểu trường hợp lệ (string, integer, decimal, boolean, array, object, uuid)
  • Giá trị enum chính xác (kiểu thao tác, kiểu trả về)
  • ID mẫu là duy nhất trên tất cả các thực thể
  • Tên GSI khớp giữa gsi_list và gsi_mappings
  • Các trường được tham chiếu trong mẫu tồn tại trong các trường thực thể
  • Điều kiện phạm vi hợp lệ với số lượng tham số chính xác
  • Các mẫu truy cập có thao tác và kiểu trả về hợp lệ

Bảo mật:

Các tệp lược đồ phải nằm trong thư mục làm việc hiện tại hoặc thư mục con. Các nỗ lực truyền tải đường dẫn bị chặn vì lý do bảo mật.

Ví dụ Đầu ra Xác thực:

Thành công:

✅ Schema validation passed!

Lỗi với đề xuất:

❌ Schema validation failed:
  • entities.User.fields[0].type: Invalid type value 'strng'
    💡 Did you mean 'string'? Valid options: string, integer, decimal, boolean, array, object, uuid

Tạo Lớp Truy cập Dữ liệu

Công cụ generate_data_access_layer tạo mã Python an toàn kiểu từ tệp schema.json đã được xác thực của bạn.

Mã Được tạo:

  • Lớp Thực thể: Các mô hình Pydantic với xác thực trường và an toàn kiểu
  • Lớp Kho lưu trữ: Các thao tác CRUD (tạo, đọc, cập nhật, xóa) cho mỗi thực thể
  • Mẫu truy cập: Các thao tác truy vấn và quét được triển khai đầy đủ từ lược đồ của bạn
  • Kho lưu trữ Cơ sở: Chức năng dùng chung cho tất cả các kho lưu trữ
  • Ví dụ Sử dụng: Mã mẫu minh họa cách sử dụng các lớp đã tạo (tùy chọn)
  • Cấu hình: ruff.toml cho chất lượng mã và định dạng

Điều kiện Tiên quyết để Tạo mã:

Mã Python được tạo yêu cầu các phụ thuộc thời gian chạy sau:

  • pydantic>=2.0 - Để xác thực thực thể và an toàn kiểu
  • boto3>=1.38 - Cho các thao tác DynamoDB

Cài đặt chúng trong dự án của bạn:

uv add pydantic boto3
# or
pip install pydantic boto3

Phụ thuộc Phát triển Tùy chọn:

Để kiểm tra và định dạng mã đã tạo:

  • ruff==0.15.8 - Công cụ kiểm tra và định dạng Python (khuyến nghị)

Cấu trúc Tệp Được tạo:

generated_dal/
├── entities.py              # Pydantic entity models
├── repositories.py          # Repository classes with CRUD operations
├── base_repository.py       # Base repository functionality
├── transaction_service.py   # Cross-table transaction methods (if schema includes cross_table_access_patterns)
├── access_pattern_mapping.json  # Pattern ID to method mapping
├── usage_examples.py        # Sample usage code (if enabled)
└── ruff.toml               # Linting configuration

Sử dụng Mã Đã tạo:

Mã được tạo cung cấp các lớp thực thể an toàn kiểu và các phương thức kho lưu trữ cho tất cả các mẫu truy cập của bạn:

from generated_dal.repositories import UserRepository
from generated_dal.entities import User

# Initialize repository
repo = UserRepository(table_name="MyTable")

# Create a new user
user = User(user_id="123", username="username", name="John Doe")
repo.create(user)

# Query by access pattern
users = repo.get_user_by_username(username="username")

# Update user
user.name = "Jane Doe"
repo.update(user)

Để kiểm tra và định dạng mã đã tạo với ruff:

ruff check generated_dal/        # Check for issues
ruff check --fix generated_dal/  # Auto-fix issues
ruff format generated_dal/       # Format code