Câu hỏi thường gặp về AWS Cloud Development Kit

Thông tin chung

Bộ công cụ phát triển đám mây AWS (AWS CDK) là khung phát triển phần mềm nguồn mở để xác định cơ sở hạ tầng đám mây dưới dạng mã với các ngôn ngữ lập trình hiện đại và triển khai thông qua AWS CloudFormation.

Bạn có thể sử dụng Giao diện dòng lệnh AWS CDK (CLI) để tương tác với các ứng dụng CDK của mình. CDK CLI cho phép bạn liệt kê các ngăn xếp đã xác định trong ứng dụng CDK của bạn, tổng hợp các ngăn xếp thành các mẫu CloudFormation, xác định sự khác biệt giữa phiên bản ngăn xếp đang chạy và ngăn xếp đã xác định trong mã CDK của bạn, cũng như triển khai các ngăn xếp cho bất kỳ Khu vực AWS công khai nào.

Sử dụng khung AWS CDK để phục vụ cho việc tạo các dự án AWS CDK, được thực thi nhằm tạo các mẫu CloudFormation. Có thể thực thi các dự án AWS CDK bằng dòng lệnh AWS CDK hoặc trong một hệ thống phân phối liên tục.

Cách tốt nhất để bắt đầu với AWS CDK là làm việc thông qua phần Bắt đầu trong Hướng dẫn dành cho nhà phát triển AWS CDK. Trong vài phút, bạn có thể xác định và triển khai ứng dụng AWS CDK đầu tiên của mình. Để được hướng dẫn chuyên sâu hơn, hãy xem https://CDKworkshop.com.

Có, bạn có thể tìm thấy một số ví dụ về AWS CDK bằng nhiều ngôn ngữ lập trình tại https://github.com/aws-samples/aws-cdk-examples. Hướng dẫn dành cho nhà phát triển AWS cũng bao gồm các ví dụ tại https://docs.aws.amazon.com/cdk/latest/guide/examples.html.

AWS xây dựng logic làm việc của gói Thư viện ý tưởng AWS trong TypeScript và cung cấp ánh xạ vào từng ngôn ngữ lập trình được hỗ trợ. Điều này đảm bảo rằng hành vi của các ý tưởng AWS CDK là ngôn ngữ nhất quán với ngôn ngữ, cho phép tạo ra một tập hợp các gói cấu trúc toàn diện có sẵn ở tất cả các ngôn ngữ. Mã được viết trong dự án AWS CDK của bạn là mã gốc hoàn toàn bằng ngôn ngữ lập trình bạn thích và thời gian chạy JavaScript là chi tiết triển khai cho trải nghiệm lập trình của bạn. Bạn có thể tham khảo dự án jsii tại https://github.com/aws/jsii.

Mã AWS CDK là mã nguồn mở, được cung cấp thông qua GitHub tại https://github.com/awslabs/aws-cdk.

Để di chuyển ứng dụng của bạn sang AWS CDK phiên bản 2, trước tiên hãy cập nhật các cờ tính năng trong cdk.json. Sau đó, hãy cập nhật các thành phần phụ thuộc và thành phần nhập của ứng dụng khi cần thiết cho ngôn ngữ lập trình của ứng dụng. Bạn có thể tìm hiểu thêm tại: https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-v2.html

Chúng tôi đang phát triển AWS CDK theo hướng mở và hoan nghênh bất kỳ ai muốn đóng góp cho cơ sở mã của chúng tôi. Bạn có thể tìm hiểu thêm tại https://github.com/awslabs/aws-cdk/blob/master/CONTRIBUTING.md.

AWS CDK thường có sẵn trong JavaScript, TypeScript, Python, Java, C# và Go (bản xem trước dành cho nhà phát triển). Chúng tôi đang lên kế hoạch mở rộng AWS CDK ra các ngôn ngữ khác trong tương lai, vì vậy, hãy bầu chọn ngôn ngữ bạn yêu thích trên GitHub nhé.

AWS CDK có sẵn để xác định và triển khai tài nguyên AWS trong tất cả các khu vực công khai. Vì AWS CDK tận dụng dịch vụ CloudFormation, hãy tham khảo Sản phẩm và dịch vụ theo khu vực để biết chi tiết về tính sẵn sàng của tài nguyên cụ thể cho mỗi Khu vực AWS.

Do AWS CDK tận dụng CloudFormation, các ứng dụng AWS CDK phải tuân theo cùng giới hạn được áp dụng bởi dịch vụ CloudFormation.

Cấu trúc giải pháp AWS là phần mở rộng thư viện nguồn mở của AWS CDK. Ý tưởng giải pháp AWS cung cấp cho bạn một bộ sưu tập các mẫu kiến trúc đa dịch vụ được kiểm định chặt chẽ, được xây dựng bằng các thực tiễn tối ưu do AWS Well-Architected Framework thiết lập. Ý tưởng giải pháp AWS yêu cầu điều kiện tiên quyết là phải cài đặt AWS CDK. Để được hướng dẫn về cách thêm Ý tưởng giải pháp AWS vào môi trường AWS CDK của bạn, hãy xem hướng dẫn phát triển của chúng tôi.

Thư viện ý tưởng AWS

Ý tưởng AWS CDK được phân phối trong Thư viện ý tưởng AWS và thể hiện mức độ trừu tượng hóa của logic cơ sở hạ tầng đám mây được đóng gói để tái sử dụng. Có thể xác định ý tưởng một cách cục bộ hoặc công bố cho công cụ quản lý gói như npm, Maven, NuGet hoặc PyPI để chia sẻ khắp các tổ chức.

Chúng tôi có phạm vi bao gồm nhiều dịch vụ và tính năng AWS phổ biến với ý tưởng cấp cao, phong phú và pham vi đầy đủ cho tài nguyên CloudFormation cấp thấp hơn, bao gồm cả các tài nguyên mới ngay sau khi có sẵn. Chúng tôi luôn cập nhật Thư viện ý tưởng AWS bằng cách tự động tạo API cấp tài nguyên mỗi khi thay đổi thông số kỹ thuật CloudFormation. Ngoài các API được tạo tự động này, chúng tôi cung cấp mức độ trừu tượng cấp cao hơn giúp làm việc với mỗi dịch vụ trở nên dễ dàng hơn. Chúng tôi chưa có mức độ trừu tượng cấp cao, tiện lợi cho mọi dịch vụ AWS nhưng sẽ luôn bổ sung các tính năng mới, tập trung vào các dịch vụ được sử dụng nhiều nhất trong các ứng dụng đám mây hiện đại. Truy cập tài liệu tham khảo API thư viện ý tưởng AWS để tìm hiểu thêm.

Chúng tôi duy trì Thư viện ý tưởng AWS đồng bộ với thông số kỹ thuật tài nguyên CloudFormation bằng cách bổ sung các tính năng CloudFormation mới vào AWS CDK ngay sau khi xuất bản.

Thư viện ý tưởng AWS CDK giống như bất kỳ thư viện nào khác. Chúng được tiêu thụ thông qua công cụ quản lý gói của ngôn ngữ lập trình bạn sử dụng; cập nhật các thư viện là một phần của quy trình làm việc bình thường của bạn. Tất cả các gói đều hỗ trợ phiên bản ngữ nghĩa, cho phép bạn đưa ra lựa chọn sáng suốt về thời điểm di chuyển sang các mô hình cơ sở hạ tầng mới.

CloudFormation và SAM

Hãy coi AWS CDK như một bộ công cụ tập trung vào nhà phát triển, tận dụng toàn bộ sức mạnh của các ngôn ngữ lập trình hiện đại để xác định cơ sở hạ tầng AWS của bạn dưới dạng mã. Khi chạy các ứng dụng AWS CDK, chúng sẽ biên dịch thành các mẫu JSON/YAML CloudFormation được định dạng đầy đủ, sau đó được gửi đến dịch vụ CloudFormation để cung cấp. Vì AWS CDK tận dụng CloudFormation, bạn vẫn được hưởng tất cả các lợi ích mà CloudFormation cung cấp như triển khai an toàn, hủy giao dịch tự động và phát hiện sai lệch.

Mô hình ứng dụng AWS Serverless và AWS CDK đều trừu tượng hóa cơ sở hạ tầng AWS dưới dạng mã giúp bạn dễ dàng xác định cơ sở hạ tầng đám mây của mình hơn. AWS SAM đặc biệt tập trung vào các trường hợp và kiến trúc sử dụng không có máy chủ và cho phép bạn xác định cơ sở hạ tầng của mình trong các mẫu JSON/YAML khai báo nhỏ gọn. AWS CDK cung cấp phạm vi rộng trên khắp tất cả các dịch vụ AWS và cho phép bạn xác định cơ sở hạ tầng đám mây bằng các ngôn ngữ lập trình hiện đại như TypeScript, Python, C# và Java. Cả AWS SAM và AWS CDK đều tận dụng CloudFormation làm công cụ cung cấp cho ngăn xếp cơ sở hạ tầng của bạn. Nếu bạn thích xác định cơ sở hạ tầng không có máy chủ của mình trong các mẫu khai báo ngắn gọn, SAM phù hợp hơn. Nếu bạn muốn xác định cơ sở hạ tầng AWS của mình bằng ngôn ngữ lập trình quen thuộc, chúng tôi sẽ khuyến khích bạn dùng thử AWS CDK. Trong cả hai trường hợp, bạn có thể dựa vào việc triển khai cơ sở hạ tầng an toàn và có thể lặp lại thông qua CloudFormation.

Có, bạn có thể tổng hợp cục bộ ứng dụng AWS CDK của mình thành mẫu CloudFormation,sau đó tham chiếu ID trình xử lý AWS Lambda được tạo trong SAM CLI. Xem phần SAM CLI trong Hướng dẫn dành cho nhà phát triển CDK để biết thêm chi tiết.

Chi phí

AWS CDK được phân phối theo Giấy phép Apache, Phiên bản 2.0. Xem GIẤY PHÉPTHÔNG BÁO để biết thêm thông tin.

Chúng tôi không tính thêm phí khi sử dụng AWS CDK. Bạn cần thanh toán cho các tài nguyên AWS (chẳng hạn như phiên bản Amazon EC2 hoặc cân bằng tải Elastic Load Balancing) được tạo bằng AWS CDK giống như cách bạn tạo thủ công. Bạn chỉ cần trả phí cho những gì mình đã và đang sử dụng; không có mức phí tối thiểu và không bắt buộc phí cam kết trả trước.