HashiCorp Terraform Visual Studio Code Extension — 總算可以裝回來了XD

smalltown
4 min readJun 12, 2020

歷經了很長的一段時間 (感覺有一年了吧),在社群很多人的努力之下 VSCode Terraform Extension 總算支援 0.12,不過我看很多升級上去的人都遇到不少問題 T_T 所以我已經把它移除掉很久了XD

就在不久前官方決定把相關專案收歸國有,並在昨天宣布推出新版本,剛剛迫不期待把它安裝回來使用XD 歷時一年的開發到底更新了哪些東西呢?

HashiCorp Terraform Language Server

以前要讓不同的文字編輯器支援特定的語言必須要在每一個文字編輯器的 Extension 都實作過一次,其實還滿勞民傷財的,像 Terraform 0.12 大改版,社群根本沒有足夠的資源來反應;但從現在開始 Terraform 將會使用 Language Server Protocol,這樣一來就可以不用重功,很多既有的 Packages 跟 Features 都可以重複使用,透過他之後就可以同時被很多不同的文字編輯器重複利用 (例如: Sublime, VIM, Emacs…等),沒有想到我們平常在使用的文字編輯器後面還有那麼多的眉眉角角 ==+

不過這次雖然 Terraform VSCode Extension 已經支援了 Language Server Protocol,但其實只是一個開始,為什麼這樣說呢?因為這次只在裡面實作完某些東西的 Code Completion (例如 Data Source, Resource 還有 Attribute Information),在不久的將來已經規劃好要增加 Expression Completion 跟 Module Completion,當然不止這樣而已,還有很多的功能可以在滿滿的 Issue 列表裡面發現XD 發現還有缺什麼的話,官方也鼓勵大家多發 Issue 上去

Code Completion

就像剛剛提到的,因為支援了 Language Server Protocol,所以可以達到 Code Completion,而且只要下過 terraform init 之後,就連第三方的 Provider 都可以支援

當然更不提官方所開發的 Provider (例如:AWS, Azure 和 Google),目前正持續努力讓官方和在文字編輯器秀出來的說明內容更完整並且保持一致當中

Terraform 0.12 Support

而去年之所以會讓這個 Extension 死掉,就是因為 Terraform 0.12 的推出,所以做了那麼多的努力,當然要可以支援 0.12 的 Syntax Highlighting,目前應該都可以正常顯示了,包含 0.11 以前的版本,但未來將會把資源跟時間擺在 0.12 以後的版本上,假如你日常工作環境只需要用到 0.11 的話,那可能把 Extension 鎖定在更早的版本會比較好

Conclusion

為什麼我會特別寫這篇翻譯文章呢?!因為這件事情拖得有點久,感覺值得寫篇文章慶祝一下XD 而目前 HashiCorp 公司內有專門的團隊跟資源在維護 Extension 和 Language Server ,並且有規劃好長期的 Roadmap,因此看來之後 Terraform 再次升級的話,就不會再讓開發者們感到頭痛XD

--

--

smalltown

原來只是一介草 QA,但開始研究自動化維運雲端服務後,便一頭栽進 DevOps 的世界裏,熱愛鑽研各種可以提升雲端服務品質及增進團隊開發效率的開源技術