Làm cách nào tôi có thể làm cho quá trình gỡ lỗi mẫu nhanh hơn hoặc tôi mãi mãi không nhận ra lỗi của mình nửa giờ sau khi tôi mắc phải?
Dưới đây là một số đề xuất thực tiễn tốt nhất, đặc biệt tập trung vào việc cải thiện tốc độ lặp lại của quá trình phát triển mẫu CloudFormation phức tạp:
Sử dụng các công cụ CloudFormation để xác thực các mẫu và ngăn xếp các bản cập nhật
AWS đã nêu những điều này trong tài liệu Các phương pháp hay nhất của riêng mình , vì vậy tôi sẽ không lặp lại chúng:
Mục đích của bước này là bắt lỗi cú pháp hoặc lỗi logic rõ ràng trước khi thực sự thực hiện việc tạo / cập nhật ngăn xếp.
Kiểm tra tài nguyên riêng biệt
Trước khi sử dụng bất kỳ Tài nguyên CloudFormation riêng lẻ nào trong một Ngăn xếp phức tạp, hãy đảm bảo bạn hiểu kỹ toàn bộ mức độ đầy đủ của hành vi tạo / cập nhật / xóa của Tài nguyên đó, bao gồm bất kỳ giới hạn nào về việc sử dụng và thời gian khởi động / gỡ bỏ điển hình, bằng cách kiểm tra hành vi của chúng trong các Ngăn xếp độc lập, nhỏ hơn Đầu tiên.
- Nếu bạn đang phát triển hoặc sử dụng bất kỳ Tài nguyên tùy chỉnh nào của bên thứ ba, hãy viết các bài kiểm tra đơn vị bằng cách sử dụng các thư viện thích hợp cho nền tảng ngôn ngữ, để đảm bảo logic ứng dụng hoạt động như mong đợi trong tất cả các trường hợp sử dụng.
- Lưu ý rằng lượng thời gian để một Tài nguyên riêng lẻ tạo / cập nhật / xóa có thể rất khác nhau giữa các Loại tài nguyên, tùy thuộc vào hành vi của các lệnh gọi API cơ bản. Ví dụ: một
AWS::CloudFront::Distribution
tài nguyên phức tạp đôi khi có thể mất 30-60 phút để tạo / cập nhật / xóa, trong khiAWS::EC2::SecurityGroup
cập nhật chỉ trong vài giây.
- Các Tài nguyên Cá nhân có thể có lỗi / vấn đề / hạn chế trong quá trình triển khai của chúng, điều này dễ dàng hơn nhiều để gỡ lỗi và phát triển các giải pháp thay thế khi được kiểm tra riêng lẻ, thay vì trong một Ngăn xếp lớn hơn nhiều. Hãy ghi nhớ các giới hạn như Giới hạn dịch vụ AWS tùy thuộc vào cài đặt Tài khoản AWS cá nhân của bạn hoặc Khu vực sẵn có của dịch vụ tùy thuộc vào Khu vực mà bạn tạo Ngăn xếp của mình.
Xây dựng các ngăn xếp phức tạp theo từng bước nhỏ
Khi thực hiện tạo / cập nhật Ngăn xếp, lỗi trong bất kỳ Tài nguyên đơn lẻ nào sẽ khiến Ngăn xếp khôi phục toàn bộ tập hợp các thay đổi Tài nguyên, điều này có thể phá hủy các Tài nguyên được tạo thành công khác một cách không cần thiết và mất nhiều thời gian khi xây dựng một ngăn xếp phức tạp với thời gian dài biểu đồ phụ thuộc của các Tài nguyên liên quan.
Giải pháp cho điều này là xây dựng Ngăn xếp của bạn tăng dần theo các lô Cập nhật nhỏ hơn, thêm Tài nguyên một (hoặc một vài) tại một thời điểm. Bằng cách này, nếu / khi lỗi xảy ra trong quá trình tạo / cập nhật tài nguyên, thì việc khôi phục không làm cho toàn bộ tài nguyên của Stack của bạn bị phá hủy, chỉ là tập hợp Tài nguyên được thay đổi trong Bản cập nhật mới nhất.
Theo dõi tiến trình cập nhật ngăn xếp
Đảm bảo Giám sát Tiến độ Cập nhật Ngăn xếp của bạn bằng cách xem các sự kiện của ngăn xếp trong khi tạo / cập nhật được thực hiện. Đây sẽ là điểm khởi đầu để gỡ lỗi các vấn đề khác với các tài nguyên riêng lẻ.