- 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.key và each.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.