Hướng dẫn setup VS Code cho CloudFormation
Minh Bui
Bài viết hướng dẫn cách setup VS Code để code CloudFormation hiệu quả nhất
Giới thiệu chung
Bất cứ ngôn ngữ nào khi các bạn làm việc với VS Code thì không thể thiếu các extensions hỗ trợ cho các ngôn ngữ đó được. CloudFormation cũng vậy, hôm nay Cloud Mentor Pro sẽ hướng dẫn các bạn setup một vài extensions để giúp việc code CloudFormation trở nên dễ dàng hơn. Tiền đề ở đây là các bạn sử dụng VS Code và code CloudFormation với định dạng file yml hoặc yaml.
1. YAML
Đây là extension hỗ trợ cú pháp & highlighting cho định dạng file yaml của CloudFormation. Chỉ cần cài và không cần làm gì thêm.
2. AWS CloudFormation Snippets
Đây là extensions hỗ trợ code snippet cho CloudFormation giúp việc code nhanh hơn rất nhiều. Về cách sử dụng thì hầu hết chỉ cần nhập tên service thì sẽ có gợi ý, tab 1 cái là sẽ ra sample code của full service đó.
Ví dụ muốn tạo elastic ip thì chỉ cần gõ ec2-eip rồi tab là sẽ ra code cho elastic ip.
3. Block highlighting
Với CloudFormation thì việc coding đúng block, đúng hàng, đúng cột rất quan trọng, do đó nên cài các extension hỗ trợ việc này. Cloud Mentor Pro recommend một trong hai option bên dưới, có thể lựa chọn tuỳ theo sở thích của các bạn.
3.1. BlockMan
Đây là extension highlight block dạng ô vuông bao viền như dưới. Chỉ cần cài và không cần làm gì thêm.
3.2. Indent rainbow
Đây là extension highlight block theo dạng các dải màu. Chỉ cần cài và không cần làm gì thêm.
4. Prettier
Chắc hẳn các bạn cũng rất quen thuộc với extension kinh điển này rồi, đây là extension giúp format làm đẹp code không chỉ cho CloudFormation mà còn support các ngôn ngữ khác nữa. Cách sử dụng thì có thể setting tự động format khi save file hoặc format thủ công thông qua click menu chuột phải. Cách setup tự động format khi save file thì mình sẽ hướng dẫn ở phần Other settings bên dưới.
5. CloudFormation Linter
Đây là extension rất quan trọng, cá nhân mình thấy gần như không thể thiếu khi code CloudFormation. Extension này giúp tự động check lỗi, kiểm tra cú pháp, v.v.. từ đó giúp tránh được rất nhiều trouble trước khi triển khai deployment. Extension này thì đúng ra chỉ cần cài và không cần làm gì thêm, tuy nhiên nó phụ thuộc vào python runtime và library python tên là cfn-lint, do đó sẽ cần cài thêm những cái đó nữa.
Cài python 3.13 và pip (tool quản lí thư viện python) theo hướng dẫn link dưới đây: Download Link
Sau khi cài xong thì mở command line và chạy lệnh sau:
pip install cfn-lint
Cuối cùng thì khởi động lại VS Code là xong.
Other settings
Sau khi cài xong các extensions thì chúng ta vẫn cần setting thêm một số cái khác nữa để có thể có trải nghiệm code CloudFormation đầy đủ nhất và tiện nhất. Việc này thực hiện thông qua file setting json của VS Code.
- Thực hiện mở VS Code, nhấn tổ hợp phím
CTRL + Shift + P,
(Windows & Linux) hoặcCommand + Shift + P
(Mac), tìm kiếm với từ khoásetting
và chọnPreferences: Open User Settings (JSON)
- Thấy cửa sổ file
setting.json
mở ra là ok
Cấu hình file yaml hỗ trợ các tag của CloudFormation
- Ở step 1 chúng ta đã cài extensions YAML, tuy nhiên CloudFormation có một số cú pháp đặc biệt mà YAML mặc định không support, do đó cần thêm đoạn code như sau vào file
setting.json
ở trên
"yaml.schemaStore.enable": false,
"yaml.customTags": [
"!Base64 scalar",
"!Cidr scalar",
"!And sequence",
"!Equals sequence",
"!If sequence",
"!Not sequence",
"!Or sequence",
"!Condition scalar",
"!FindInMap sequence",
"!GetAtt scalar",
"!GetAtt sequence",
"!GetAZs scalar",
"!ImportValue scalar",
"!Join sequence",
"!Select sequence",
"!Split sequence",
"!Sub scalar",
"!Transform mapping",
"!Ref scalar",
],
Cấu hình tự động format làm đẹp code khi save file
- Tiếp tục thêm vào đoạn code sau vào file
setting.json
ở trên (nếu đã setting rồi thì bỏ qua)
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"prettier.useEditorConfig": true
Save & Restart
- Sau khi đã update file setting.json thì các bạn save file và khởi động lại VS Code là xong.
Tổng kết
- Như vậy hôm nay Cloud Mentor Pro đã hướng dẫn các bạn setup VS Code cho CloudFormation, chúc các bạn có trải nghiệm code hiệu quả nhất!