什麼是 Terraform 和雲産品開通
Terraform 一款開源的運作在用戶端的自動化資源編排工具,以 IaC 的理念實作雲資源的自動化運維。更多細節可以參考
Terraform 是什麼。
雲産品開通,顧名思義,就是阿裡雲客戶在使用某些雲産品前,需要登入雲産品官方控制台,手動點選開通按鈕來完成對目前雲産品的激活,在此之後才能通過 Terraform、CLI、API 等自動化的方式或者控制台來操作和使用雲産品。就雲産品開通而言,阿裡雲的雲産品分為兩大類:
-
免開通型産品
即無需任何的手動開通操作,不管是 Terraform 等的自動化方式還是控制台通路,開箱即用,直接可以建立新的雲資源。典型的雲産品如彈性計算 ECS,網絡産品 VPC,負載均衡 SLB,彈性伸縮 ESS等。
-
開通型産品
此類産品在使用和建立雲資源前,需要登入控制台完成開通動作,否則直接使用 Terraform 或者調用 OpenAPI會報雲産品尚未激活的錯誤;通路控制台時也會自動跳轉到雲産品開通頁面,導緻客戶使用起來非常的不友善。典型的雲産品如 API 網關,日志服務,對象存儲服務 OSS,密鑰管理服務 KMS,函數計算等。

自動化是 Terraform 的一大亮點,但是雲産品的手動開通動作卻嚴重削弱了其自動化的能力,将原本隻需要四步的操作拖成了八步。對客戶而言,當使用雲産品的使用逐漸豐富多樣,使用的雲賬号逐漸增多時,手動開通的成本也在以 _MxN _的量級在持續增加。
客戶如何使用 Terraform 實作自動化開通
自動化開通,以 OpenAPI 的方式來消除自動化流程上的障礙,降低客戶在使用雲産品時的成本,提升客戶使用體驗。
基于 Terraform 的自動化開通方案,就是将雲産品開通的動作以 DataSource 的方式在模闆中定義出來,借助雲産品提供的自動化開通的 Open API 來消除使用 Terraform 過程中的雲産品開通障礙,解決客戶使用 Terraform 的痛點。
對客戶而言,當需要使用某個開通型産品時,隻需要在模闆中增加一個對應雲産品開通的 DataSource,并設定開通的動作
enable = "On"
,然後執行簡單的
terraform plan
或者
terraform apply
指令即可完成自動化開通。
阿裡雲 Terraform Provider 從 1.96.0 版本開始,已經支援對 2 款雲産品
API 網關和
日志服務的自動化開通,具體的使用如下所示:
API 網關自動化開通
data "alicloud_api_gateway_service" "open" {
enable = "On"
}
日志服務自動化開通
data "alicloud_log_service" "open" {
enable = "On"
}
基于 Terraform 的自動化開通方案在解決了客戶開通雲産品問題上的痛點問題的同時,還提供了以下幾個亮點功能:
-
将控制權交還給客戶
每個客戶都有自己選擇是否要開通雲産品的權利,當需要開通需求時,隻需要在模闆中設定
即可,開通之後,将傳回雲産品開通的狀态。enable = "On"
-
支援業務幂等
不管執行多少次模版,對于已經開通的雲産品,将直接傳回開通狀态,避免多次開通帶來的潛在錯誤。
-
使用簡單
隻有一個控制開關的參數,無需其他的設定參數。
更多雲産品提供了自動化開通的 OpenAPI
除了 Terraform 已經支援的兩款雲産品 API網關和日志服務外,越來越多的雲産品開始提供自動化開通的 OpenAPI,客戶可以直接通過通路
OpenAPI Explore調用對應的 OpenAPI 來實作自動化開通:
雲産品 | 自動化開通的 OpenAPI |
---|---|
OpenApiGatewayService | |
OpenSlsService | |
批量計算 | OpenBatchComputeService |
混合雲備份服務 | OpenHbrService |
自然語言處理 | OpenAlinlpService |
總結
雲産品手動開通是 Terraform,CLI,OpenAPI 等自動化操作方式的攔路虎,基于 Terraform 的自動化開通方案旨在解決這個攔路虎,降低客戶使用成本,提供更好的使用體驗。目前 Terraform Provider 已經支援了兩個雲産品的自動化開通,對更多雲産品的自動化開通能力,我們在持續支援的路上,敬請期待。