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 --version
Pip 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 pip
mkdir my_first_cdk_app
cd my_first_cdk_app
cdk init sample-app --language python
Project 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 app
cdk.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.0
requirements-dev.txt: Dependencies cho development
pytest==6.2.5
# Windows PowerShell
.venv\Scripts\Activate.ps1
# Mac/Linux
source .venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt # cho development
CDK 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à pip
python3
và pip3
Luô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 # Windows
sudo
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.