4 điểm bởi ironlung 2023-11-06 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Khi xây dựng hạ tầng trên cloud, nếu xét đến việc tiết kiệm chi phí, tăng tốc độ triển khai, tính nhất quán, độ ổn định và khả năng tái sử dụng, thì nên dùng công cụ IaC để triển khai thay vì xây dựng bằng web console
  • Terraform là mã nguồn mở và là công cụ được sử dụng nhiều nhất trong số các công cụ IaC
  • Để viết mã Terraform một cách hiệu quả và tối ưu, điều quan trọng là phải sử dụng phù hợp các tính năng do Terraform cung cấp
  • Vòng lặp trong Terraform
    • Các ngôn ngữ khai báo thông thường không có vòng lặp, nhưng Terraform hỗ trợ nhiều hàm khác nhau nên có thể sử dụng vòng lặp
    • Các kiểu vòng lặp tiêu biểu thường dùng: count, for_each
      • Tham số count: lặp resource và module
      • Biểu thức for_each: lặp resource, inline block bên trong resource và module
    • Cách sử dụng từng loại vòng lặp
      • count: phù hợp khi các resource cần tạo gần như giống hệt nhau và không thay đổi, giúp tạo nhanh và gọn
      • for_each: phù hợp với resource có tên duy nhất, có dữ liệu đi kèm, hoặc không nên bị tạo lại, giúp tạo và thay đổi an toàn
  • Count
    • Tham số count chấp nhận số nguyên, dùng để lặp và tạo toàn bộ resource hoặc module
    • Khi cấu hình bằng count, có thể dùng count.index để truy cập chỉ mục được tạo trong count
    • Các hạn chế của Count
      • count lặp toàn bộ resource nhưng không lặp các inline block bên trong resource
      • Nếu xóa một giá trị ở giữa các resource được tạo bằng count, thì mọi giá trị phía sau sẽ bị xóa rồi tạo lại. Kết quả cuối cùng vẫn giống nhau, nhưng nếu đó là resource không nên bị tạo lại thì có thể phát sinh vấn đề
  • For_each
    • Biểu thức for_each lặp qua list, set, map để tạo toàn bộ resource, inline block trong resource và module
    • Khi cấu hình bằng for_each, có thể dùng each.keyeach.value để truy cập khóa và giá trị tương ứng
    • Khi dùng for_each cho resource thì list không được hỗ trợ
    • Trong collection, định nghĩa set hoặc map cần lặp, và trong Config có thể dùng each.value để lấy khóa và giá trị đã định nghĩa trong Collection

Chưa có bình luận nào.

Chưa có bình luận nào.