使用 VSCode 撰寫 CloudFormation 必裝套件

2019-09-05 AWS

最近從 Terraform 轉戰 CloudFormation … 所謂工欲善其事必先利其器,先把 VSCode 裝好 CloudFormation 必要的 extension。

YAML 格式縮排

CloudFormation 有兩種格式 JSON / YAML,其中 YAML 算是比較好讀的格式,但還是會遇到行數一多陷入縮排的洞裡 …

  • indenticator:顯示你當前的縮排,會有一條基準線輔助對齊。
  • Indent-Rainbow:可以把每個縮排都顯示不同的顏色,更容易辨識。
indenticator
Indent-Rainbow

如果有用 Indent-Rainbow 建議在 user setting 開啟高亮 indenticator.inner.showHighlight

{
  "indenticator.inner.showHighlight": true
}

Sort lines 按字母排序 IAM Policy

IAM Policy 應該會很常按需求異動,有些強迫症的人 (例如我) 會把字母按照 A-Z 排序,Sort lines 在這塊可以幫上忙

sort lines

快速搜尋 CloudFormation documentation

透過 VSCode Tasks 快速找到 CloudFormation documentation,這部份算是還好,基本上在寫 CloudFormation 的時候 Documentation 應該都是開著的 … 應該只有在初期的時候好用而已。

在當前目錄建立 .vscode/tasks.json,定義兩個 label

  • CF Type Search:透過選擇(selectedText)的字樣搜尋 Documentation
  • CF Resource List:直接打開 resource type 的文件
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "CF Type Search",
            "type": "shell",
            "command": "open -a \"Google Chrome\" \"https://docs.aws.amazon.com/search/doc-search.html?searchPath=documentation-guide&searchQuery=%22${selectedText}%22&x=0&y=0&this_doc_product=AWS+CloudFormation&this_doc_guide=User+Guide&doc_locale=en_us#facet_doc_product=AWS%20CloudFormation&facet_doc_guide=User%20Guide\"",
            "problemMatcher": [],
            "presentation": {
                "reveal": "never"
            }
        },
        {
            "label": "CF Resource List",
            "type": "shell",
            "command": "open -a \"Google Chrome\" \"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html\"",
            "problemMatcher": [],
            "presentation": {
                "reveal": "never"
            }
        }
    ]
}

上面的範例是開啟 Google Chrome .. 所以沒裝 Chrome 就會不能用。

CloudFormation linting

寫 Infra as Code 當然少不了 Lint 工具,CloudFormation 可以用 cfn-python-lint 去驗證程式碼。

  • 先安裝 cfn-lint
$ pip install cfn-lint
$ cfn-lint --version

透過一些工具的輔助讓 CloudFormation 可以快速開發是工程師必要之物

References

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱