VSCode extentions dành cho AWS - phần 1 - edit CloudFormation template YAML 🧘♀️
CloudFormation Linter
Khi mới bắt đầu edit AWSTemplateFormat trên vscode, nếu bạn gặp lỗi do vscode báo chỗ !Ref
là unknow tag
trong file AWSTemplateFormatVersion
yaml thì bạn hãy cài thêm CloudFormation Linter extention đi nhé.
Đó là do bạn đang cài redhat.vscode-yaml exention.
Mặt khác redhat.vscode-yaml
cũng chính là 1 dependencies - cái xây dựng nên CloudFormation Linter
extension.
Ta phải cài dependencies của extention này, không đơn gian chỉ là ấn install trên mục extensions của vscode đâu. Đầu tiên là redhat.vscode-yaml extention.
Sau đó ta phải cài python3
đã, sau đó cài pip
và cfn-lint:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
# test
pip --version
# if ok, delete unused `get-pip.py`
rm get-pip.py
# for lint
pip install cfn-lint
# for graph
pip install pydot
Đối với môi trường Ubuntu, mình đã thử cài và gặp vấn đề PIP package không tự động được thêm vào PATH nên trên vscode - file yaml vẫn hiển thị cảnh báo không tìm thấy cfn-lint
. Đối với trường hợp này, có nhiều cách thêm cfn-lint
vào PATH nhưng cách đơn giản nhất là dùng sudo
:
sudo pip install cfn-lint
Vậy là ta có thể dựa vào cfn-lint
để đọc và hiển thị các vấn đề về file template.
Còn 1 tính năng rất hay ho đó là render sơ đồ khối cấu trúc AWS mà CloudFormation này đang mô tả, thật sự hữu ích khi debug và rất trực quan. Để sử dụng ta cài pip install pydot
như trên và:
ctrl
+shift
+P
- gõ
cloud
- chọn
Preview CloudFormation template as graph
Kết quả là:
aws-cloudformation-yaml
aws-cloudformation-yaml
cung cấp cho ta tính năng gõ tắt để gen ra 1 file template hoàn chỉnh, thêm vào nữa là khả năng gợi ý cú pháp cho CloudFormation
.
Ví dụ ta gõ !And
ta sẽ có gợi ý như sau:
Extention này sẽ tự động thêm Condition1
và Condition2
cho bạn tương ứng với cú pháp của AWS CloudFormation Fn::And.
Danh sách hỗ trợ gợi ý cú pháp cho các function bao gồm:
Functions có sẵn:
- !FindInMap
- !GetAtt
- !GetAZs
- !Cidr
- !ImportValue
- !Join
- !Select
- !Split
- !Sub
- !Ref
Condition Functions:
- !And
- !Equals
- !If
- !Not
- !Or
Vậy là ta đã có đủ bộ linter - check chính tả, review, gõ tắt cú pháp dành cho CloudFormation
.
Tham khảo
Photo by Annie Spratt on Unsplash