AWS CDK (Cloud Development Kit) hỗ trợ nhiều ngôn ngữ lập trình khác nhau để xây dựng infrastructure. Trong bài này, chúng ta sẽ tập trung vào việc khởi tạo một CDK app sử dụng Python và các bước thiết lập môi trường cần thiết.
AWS CDK hiện hỗ trợ chính thức các ngôn ngữ lập trình sau:
Trước khi bắt đầu với CDK, bạn cần đảm bảo môi trường Python được cài đặt đúng cách:
Tải Python từ python.org
Đối với Windows: Đảm bảo check option “Add python to PATH”
Kiểm tra cài đặt:
# Windows
python --version
# Mac/Linux
python3 --versionPip là package manager của Python, cần thiết để cài đặt các dependencies:
# Kiểm tra phiên bản pip
pip --version # Windows
pip3 --version # Mac/Linux
# Nâng cấp pip
python -m pip install --upgrade pipmkdir my_first_cdk_app
cd my_first_cdk_appcdk init sample-app --language pythonProject CDK với Python có cấu trúc chuẩn như sau:
my_first_cdk_app/
├── .venv/ # Python virtual environment
├── my_first_cdk_app/ # Package chứa code CDK
│ ├── __init__.py
│ └── my_first_cdk_app_stack.py
├── tests/ # Package chứa unit tests
│ └── unit/
│ └── test_my_first_cdk_app_stack.py
└── app.py # Entry point của CDK appcdk.json: Cấu hình cho CDK app
{
"app": "python3 app.py",
"watch": {
"include": ["**"],
"exclude": ["README.md", "cdk*.json", "requirements*.txt", "source.bat", "**/__pycache__"]
}
}requirements.txt: Dependencies cho production
aws-cdk-lib==2.x.x
constructs>=10.0.0,<11.0.0requirements-dev.txt: Dependencies cho development
pytest==6.2.5# Windows PowerShell
.venv\Scripts\Activate.ps1
# Mac/Linux
source .venv/bin/activatepip install -r requirements.txt
pip install -r requirements-dev.txt # cho developmentCDK App Templates
Khi bạn sử dụng lệnh cdk init để khởi tạo dự án CDK, bạn có thể chọn một trong các template ứng dụng bằng tùy chọn --template hoặc -t:
cdk init app --language python # Sử dụng template 'app' trống cơ bản
cdk init lib --language python # Sử dụng template 'lib' cho custom construct
cdk init sample-app --language python # Sử dụng template 'sample-app' với demo code
Các ưu điểm của Virtual Environment
Project Structure
python và pippython3 và pip3Luôn active virtual environment trước khi làm việc với project
Kiểm tra virtual environment đang active:
# Kiểm tra pip đang sử dụng
pip -V
# Kiểm tra python đang sử dụng
which python # Mac/Linux
where python # Windowssudo cho Mac/Linux hoặc run as Administrator trên Windowspip freeze để lock versionsThiết lập một CDK app với Python là bước đầu tiên quan trọng trong hành trình sử dụng Infrastructure as Code trên AWS. Với môi trường được cấu hình đúng cách, bạn có thể tận dụng sức mạnh của Python để định nghĩa infrastructure một cách hiệu quả và maintainable.
Trong các bài tiếp theo, chúng ta sẽ tìm hiểu cách xây dựng các CDK constructs và triển khai infrastructure thực tế trên AWS.