Tác giả: Venugopalan Vasudevan và Gokul Sarangaraju
Ngày phát hành: 02 MAR 2026
Chuyên mục: AWS Lambda, AWS Transform, Best Practices, Technical How-to
Giới thiệu
Các tổ chức đang phải gánh chịu một gánh nặng ngày càng tăng về nợ kỹ thuật — các codebase cũ kỹ, runtime lỗi thời và framework kế thừa làm chậm đổi mới, tăng rủi ro bảo mật và thổi phồng chi phí bảo trì. Giải quyết khoản nợ này đòi hỏi phải đối phó với một loạt các thách thức chuyển đổi mã: nâng cấp phiên bản, di chuyển runtime, chuyển đổi framework và dịch ngôn ngữ, tất cả đều phải được lặp lại trên nhiều codebase. Ngày nay, hầu hết các tổ chức thực hiện các tác vụ này theo cách thủ công, tiêu tốn 20–30% nỗ lực phát triển phần mềm doanh nghiệp. Ngay cả khi có tự động hóa, nó thường có phạm vi hẹp và đòi hỏi đầu tư ban đầu đáng kể — khiến hầu hết các tổ chức không thể mở rộng quy mô chuyển đổi một cách hiệu quả và, kết quả là, không thể giảm đáng kể nợ kỹ thuật tiếp tục chồng chất theo thời gian.
AWS Transform custom giải quyết khoảng trống này — một tác nhân AI thông minh học các chuyển đổi mã cụ thể của tổ chức, thực thi chúng một cách nhất quán ở quy mô lớn và cải thiện từ phản hồi của nhà phát triển, mà không yêu cầu chuyên môn tự động hóa đặc biệt. Bài viết này khám phá cách AWS Transform custom giải quyết một trong những thách thức chuyển đổi cấp bách nhất hiện nay.
Quản lý vòng đời Runtime của Lambda
AWS Lambda tuân thủ chính sách ngừng hỗ trợ runtime (runtime deprecation policy) phù hợp với việc kết thúc hỗ trợ dài hạn của cộng đồng cho các ngôn ngữ lập trình, với tất cả các lịch trình ngừng hỗ trợ hiện tại có sẵn trong tài liệu runtime của AWS Lambda. Khi các nhà bảo trì ngôn ngữ upstream ngừng hỗ trợ các phiên bản runtime – bao gồm Python 3.8, Node.js 14 và Java 8 – các tổ chức phải đối mặt với thách thức quan trọng là nâng cấp hàng trăm hoặc hàng nghìn hàm Lambda trước khi các runtime này đạt đến cuối vòng đời.
Khi một runtime của Lambda đạt đến cuối vòng đời, các hàm sẽ mất quyền truy cập vào các bản vá bảo mật và hỗ trợ kỹ thuật, khiến các ứng dụng có khả năng bị lộ trước các lỗ hổng đã biết và rủi ro tuân thủ. Hiệu suất giảm sút khi các tối ưu hóa trong các runtime mới hơn không được hiện thực hóa, và nợ kỹ thuật chồng chất – bạn càng chờ đợi, việc di chuyển càng khó khăn và tốn kém hơn.
Đối với các tổ chức quản lý hàng trăm hoặc hàng nghìn hàm Lambda trên nhiều runtime và ngôn ngữ, nỗ lực này được khuếch đại bởi quy mô phối hợp cần thiết, gánh nặng thủ công của việc kiểm thử và xác thực, và thực tế là chuyên môn nâng cấp thường bị cô lập trong một số ít kỹ sư. Đó là một chu kỳ lặp đi lặp lại, có rủi ro cao, kéo các nhóm khỏi việc xây dựng các tính năng.
Đây chính xác là loại chuyển đổi lặp lại, trên toàn tổ chức mà các chuyển đổi mã của AWS Transform custom có thể tự động hóa. Các phần sau khám phá cách bạn có thể sử dụng AWS Transform custom để giải quyết việc nâng cấp runtime Python và minh họa cách tiếp cận tự động với một ví dụ thực tế.
Ứng dụng mẫu
Bản demo này sử dụng SAM Python CRUD Sample — một ứng dụng serverless mã nguồn mở được xây dựng bằng AWS SAM triển khai một API CRUD đầy đủ. Ứng dụng bao gồm năm hàm Lambda tạo, đọc, cập nhật, liệt kê và xóa các bản ghi hoạt động. Hướng dẫn sau đây cho thấy cách AWS Transform custom tự động hóa việc nâng cấp runtime Python bằng cách di chuyển các hàm Lambda này từ một runtime đã ngừng hỗ trợ (Python 3.8) sang một phiên bản runtime hiện đại (Python 3.13).
Điều kiện tiên quyết
Trước khi bắt đầu quá trình chuyển đổi, hãy xác minh các yêu cầu sau:
- AWS Transform CLI đã được cài đặt và cấu hình trong môi trường phát triển của bạn
- Xác thực với thông tin đăng nhập AWS được cấu hình cục bộ và các quyền IAM phù hợp để gọi AWS Transform
- Git đã được cài đặt để clone các kho lưu trữ mẫu
- Trình quản lý gói uv cho môi trường Python
Để biết hướng dẫn thiết lập chi tiết, hãy xem hướng dẫn Bắt đầu với AWS Transform custom.
Ví dụ thực hành: Nâng cấp Runtime Lambda
Bước 1: Chuẩn bị dự án mẫu
Clone một kho lưu trữ Python Lambda mẫu vào môi trường cục bộ của bạn
git clone https://github.com/aws-samples/sam-python-crud-sample.gitcd sam-python-crud-sample
Xác minh thiết lập ban đầu và đảm bảo tất cả các bài kiểm thử đều vượt qua:
uv venv --python 3.8 # uv will automatically download Python 3.8 if not already installedsource .venv/bin/activateuv pip install -r requirements.txtuv pip install -r requirements_dev.txtuv pip install "moto[dynamodb]<3"python -m pytest tests/ -v -o "addopts="
Bước 2: Bắt đầu quá trình chuyển đổi
AWS Transform custom hỗ trợ cả thực thi tương tác và không tương tác (chế độ không tương tác cho CI/CD và thực thi hàng loạt được đề cập ở cuối). Khởi chạy CLI ở chế độ tương tác với -t để tin cậy tất cả các công cụ, cho phép bạn sử dụng ngôn ngữ tự nhiên để gọi và định nghĩa các chuyển đổi:
atx -t
Lưu ý: Cờ -t tin cậy tất cả các lần thực thi công cụ mà không cần nhắc xác nhận. Điều này tiện lợi cho các hướng dẫn nhưng có nghĩa là tác nhân có thể chạy các lệnh shell tự động. Xem lại cài đặt Trust để biết chi tiết về việc kiểm soát quyền của công cụ.
Từ đây, bạn có thể sử dụng ngôn ngữ tự nhiên để liệt kê và gọi các chuyển đổi.
>list all the transformations available

Điều này liệt kê tất cả các chuyển đổi có sẵn — cả do AWS quản lý và tùy chỉnh. AWS cung cấp các chuyển đổi tích hợp cho các tác vụ phổ biến như nâng cấp ngôn ngữ (Java, Python, Node.js), di chuyển SDK và di chuyển Graviton. Bạn cũng có thể tạo các chuyển đổi tùy chỉnh của riêng mình bằng cách sử dụng ngôn ngữ tự nhiên, tài liệu và các mẫu mã.
Gọi chuyển đổi bằng cách chỉ định tên chuyển đổi AWS/python-version-upgrade và đường dẫn dự án. Tác nhân sẽ nhắc bạn nhập thêm các thông tin như phiên bản Python mục tiêu và đường dẫn codebase trong quá trình thực hiện.
> Run AWS/python-version-upgrade on my project

Bước 3: Lập kế hoạch chuyển đổi
Trước khi bắt đầu quá trình lập kế hoạch, bạn có thể cung cấp bất kỳ phản hồi bổ sung nào nếu có. Bạn có thể nói proceed nếu bạn không có sở thích cụ thể.

Điều này sẽ bắt đầu quá trình lập kế hoạch, trong đó tác nhân sẽ phân tích tất cả các tệp nguồn, ngữ cảnh, hướng dẫn bổ sung và tạo một kế hoạch toàn diện từng bước chi tiết:
- Cập nhật phiên bản Runtime (Python 3.8 → 3.13)
- Kiểm tra khả năng tương thích của Dependency
- Cập nhật mẫu mã để tương thích với Python 3.13
- Thay đổi cấu hình AWS Lambda
- Thay đổi Infrastructure as Code
Kế hoạch chuyển đổi được thiết kế để giúp duy trì chức năng trong khi tận dụng các cải tiến của Python 3.13.


Bạn có thể xem lại kế hoạch và cung cấp phản hồi, hoặc yêu cầu tác nhân tiếp tục thực hiện.
Bước 4: Thực thi và xác thực chuyển đổi
Sau khi xem xét kế hoạch, AWS Transform custom tự động thực hiện chuyển đổi, cập nhật:
- Cấu hình runtime của Lambda
- Cú pháp cụ thể theo phiên bản Python
- Phiên bản Dependency để tương thích với Python 3.13
- Bất kỳ lời gọi hàm nào đã ngừng hỗ trợ
- Bất kỳ template Infrastructure as Code nào
Ở cuối mỗi bước, tác nhân commit các thay đổi tăng dần vào một nhánh git cục bộ. Nếu xảy ra lỗi build hoặc test, tác nhân sẽ cố gắng tự gỡ lỗi và giải quyết vấn đề. Với tư cách là người dùng, bạn có thể dừng chuyển đổi và cung cấp phản hồi nếu cần. Sau khi tất cả các bước hoàn tất, tác nhân sẽ tạo ra một bản tóm tắt các thay đổi.

Tiếp theo, tác nhân chạy một quá trình xác thực đầy đủ — so sánh các thay đổi đã thực hiện với kế hoạch để tìm bất kỳ sai lệch nào, xác minh tất cả các tiêu chí thoát được đáp ứng và chạy các lệnh build và unit test để xác nhận mọi thứ đều vượt qua.
Sau khi quá trình xác thực hoàn tất, tác nhân sẽ yêu cầu phản hồi. Bạn có thể cung cấp phản hồi về kết quả thực thi và yêu cầu tác nhân sửa đổi/thêm/xóa các thay đổi nếu cần.

Bước 5: Xác minh các thay đổi
Sau khi quá trình xác thực hoàn tất, tác nhân tóm tắt các thay đổi:

Bạn có thể thoát phiên atx bằng cách nhập /quit trong terminal.
Tất cả các thay đổi được commit vào một nhánh staging cục bộ. Bạn cũng có thể xem điều này bằng cách thực hiện các lệnh sau:
git statusgit branchgit diff main <atx-result-staging-...>
Với các bước này, bạn có thể nâng cấp các hàm Lambda của mình đang chạy trên các runtime đã ngừng hỗ trợ hoặc sắp hết vòng đời với nỗ lực thủ công giảm thiểu.
Chế độ không tương tác
Bạn cũng có thể chạy chuyển đổi này ở chế độ không tương tác với lệnh sau, cung cấp tất cả thông tin để tác nhân có thể chạy mà không cần hỏi bất kỳ đầu vào nào từ người dùng. Chế độ này được thiết kế cho việc thực thi không có giao diện người dùng, tích hợp pipeline CI/CD và thực thi hàng loạt khi không có sự can thiệp của con người hoặc không mong muốn.
atx custom def exec -p . -n AWS/python-version-upgrade --configuration "validationCommands=pytest,additionalPlanContext=The target Python version to upgrade to is Python 3.13" -x -t
Giải thích tham số:
-nAWS/python-version-upgrade: Tên của chuyển đổi di chuyển Python được quản lý bởi AWS-p .: Đường dẫn đến thư mục hiện tại chứa hàm Lambda của bạn-t: Tin cậy tất cả các công cụ mà không cần nhắc-x: Chế độ không tương tác (headless mode)--configuration: Các lệnh xác thực sẽ được sử dụng sau khi chuyển đổi và các hướng dẫn bổ sung cho tác nhân. Ví dụ này, cấu hình tác nhân sử dụng “pytest” làm lệnh xác thực sau khi chuyển đổi hoàn tất và chỉ định phiên bản Python 3.13 mục tiêu làmadditionalPlanContext. Điều này giúp tác nhân có thêm ngữ cảnh trong quá trình lập kế hoạch các thay đổi.
Bạn cũng có thể chỉ định các tham số này trong một tệp config.json và thực thi như sau.
atx custom def exec --configuration 'file://config.json'
Tệp config.json chứa tất cả thông tin về đường dẫn kho lưu trữ dự án, tên chuyển đổi, các lệnh build và xác thực để sử dụng. Lưu đoạn mã dưới đây vào config.json trong thư mục hiện tại.
{ "codeRepositoryPath": ".", "transformationName": "python-version-upgrade", "validationCommands": "pytest", "additionalPlanContext": "The target Python version to upgrade to is Python 3.13"}
Làm thế nào để mở rộng việc nâng cấp nhiều hàm Lambda?
Giờ đây, bạn đã sử dụng thành công AWS Transform custom để nâng cấp một hàm Lambda duy nhất, bạn có thể mở rộng điều này lên hàng trăm hoặc hàng nghìn hàm trên toàn tổ chức của mình. Các nhóm kỹ thuật trung tâm có thể tạo các chiến dịch thông qua ứng dụng web AWS Transform để định nghĩa chuyển đổi, chỉ định các kho lưu trữ mục tiêu và theo dõi tiến độ trên toàn tổ chức. Để thực thi ở quy mô lớn, hãy chọn mô hình phù hợp với môi trường của bạn — cả hai đều chạy trong môi trường của bạn, với quyền truy cập vào các tài nguyên phát triển, hệ thống build và chuỗi công cụ hiện có của bạn. Bạn không cần phải di chuyển mã của mình đi đâu cả — AWS Transform custom đáp ứng bạn ở nơi bạn đang ở.
- Thực thi script hàng loạt — Lý tưởng cho các nhóm muốn chạy chuyển đổi trực tiếp trên máy của nhà phát triển, các phiên bản EC2 hoặc cơ sở hạ tầng CI/CD hiện có. Bọc AWS Transform custom CLI trong một script xử lý hàng loạt lặp lại trên nhiều kho lưu trữ bằng cách sử dụng tệp đầu vào CSV hoặc JSON. Script hỗ trợ cả chế độ thực thi nối tiếp và song song với giới hạn công việc có thể cấu hình, cơ chế thử lại và ghi nhật ký toàn diện. Tham khảo kho lưu trữ GitHub này để biết script khởi chạy hàng loạt mẫu và hướng dẫn thực thi.
- Thực thi container hóa trên AWS — Phù hợp nhất cho các triển khai quy mô doanh nghiệp nơi bạn cần cơ sở hạ tầng được quản lý, điều phối công việc và giám sát tập trung. Chạy chuyển đổi bằng cách sử dụng các container được triển khai trên AWS Batch với AWS Fargate. Giải pháp này cung cấp một REST API để gửi công việc, quản lý thông tin đăng nhập IAM tự động và giám sát Amazon CloudWatch đầy đủ — tất cả đều có thể triển khai bằng một lệnh AWS CDK duy nhất. Để bắt đầu, hãy tham khảo kho lưu trữ GitHub này và bài viết blog.
Dọn dẹp
Nếu bạn đã làm theo ví dụ thực hành, hãy xóa kho lưu trữ đã clone và môi trường ảo để giải phóng tài nguyên cục bộ:
deactivatecd ..rm -rf ./sam-python-crud-sample
Nếu bạn đã tạo bất kỳ tài nguyên AWS nào trong quá trình kiểm thử, hãy xóa chúng để tránh các khoản phí liên tục.
Kết luận
Việc giữ cho các runtime của Lambda luôn cập nhật là một gánh nặng vận hành lặp đi lặp lại và chỉ tăng lên theo quy mô. Điều bắt đầu như một bản cập nhật phiên bản đơn giản nhanh chóng trở thành các bản cập nhật dependency, thay đổi cú pháp, sửa đổi cơ sở hạ tầng và kiểm thử mở rộng — nhân lên trên mọi hàm trong đội hình của bạn.
AWS Transform custom biến điều này thành một quy trình làm việc tự động, lặp lại. Như chúng tôi đã chứng minh, việc nâng cấp một ứng dụng Python 3.8 đa chức năng lên Python 3.13 chỉ yêu cầu một lần gọi CLI duy nhất — tác nhân có thể xử lý việc lập kế hoạch, thay đổi mã, cập nhật dependency, cấu hình cơ sở hạ tầng và xác thực từ đầu đến cuối. Và với chế độ không tương tác cùng các tùy chọn thực thi theo quy mô, bạn có thể mở rộng điều này lên hàng trăm kho lưu trữ mà không cần can thiệp thủ công.
Để bắt đầu:
- Cài đặt AWS Transform CLI và thử chuyển đổi nâng cấp Python trên một trong các dự án của riêng bạn.
- Khám phá danh sách đầy đủ các chuyển đổi được quản lý bởi AWS có sẵn ngoài việc nâng cấp runtime Python.
- Kiểm tra các mẫu thực thi theo quy mô để lập kế hoạch triển khai trên toàn tổ chức của bạn.
Về tác giả

Venugopalan Vasudevan
Venugopalan Vasudevan (Venu) là Kiến trúc sư Giải pháp Chuyên gia Cấp cao tại AWS, nơi ông dẫn dắt các sáng kiến Agentic AI tập trung vào AWS Transform. Ông giúp khách hàng áp dụng và mở rộng các giải pháp hiện đại hóa và phát triển dựa trên AI để tăng tốc đổi mới và đạt được kết quả kinh doanh.

Gokul Sarangaraju
Gokul Sarangaraju là Kiến trúc sư Giải pháp Cấp cao tại AWS, chuyên về hiện đại hóa mã bằng cách sử dụng AI tác nhân và các dịch vụ AWS. Ông giúp khách hàng áp dụng công nghệ AWS, tối ưu hóa chi phí và sử dụng, đồng thời xây dựng các giải pháp phân tích dữ liệu có khả năng mở rộng và hiệu quả về chi phí.
TAGS: AWS Lambda, modernization, Python