AWS CloudFormation Update – YAML, Cross-Stack References, Simplified Substitution
新聞來源:AWS CloudFormation Update – YAML, Cross-Stack References, Simplified Substitution
有三個很重大的更新:
- YAML Support: 主要的新功能,可以用 YAML 寫 Template。CloudFormation 的 Function 則是用
!GetAtt
表示。 - Cross Stack References: 可以用
ImportValue
function 參考其他 stack 的變數。被參照的 stack reference 就不能刪除。 - Simplified Substitution: 可以用
This is ${VarName}
的方式做字串取代。- 原本要都要透過
Fn:Join
做字串串接,Template 會變得很難閱讀。 - 現在可以透過這樣的方式:
!Sub | "This is ${VarName}"
- 很多地方需要使用
userdata
啟動 ec2 時,需要把整段 bash 放入,透過這個新的表示方式就很容易閱讀
- 原本要都要透過
官方文件
- AWS CloudFormation
- AWS CloudFormation » User Guide » Working with AWS CloudFormation Templates » AWS CloudFormation Template Formats
後記
看到這些功能其實很有感覺,現代的 DevOps 工具都差不多有類似的功能,像是字串格式取代、自訂變數、利用一些關鍵符號實作特定功能 … 等,其實這些都算是 DSL 的實作,把這些工具都可以算是再創造一種新的 DSL,只是目前大部份都是利用現成的資料結構格式在定義,像是 JSON、YAML 等資料結構。
比較好的 DSL 除了有資料結構,也都會具備一些簡單的邏輯、流程控制、資源管理的功能,這些功能透過特殊的語法達到。
現在很夯的前端語言,像是 React、Vue、AngularJS 我想也應該都有類似特性。每次看到這些東西,都會想到以前寫類似概念的 功能,感觸很深刻。