Terraform是一款開源的基礎設施即代碼(Infrastructure as Code,IaC)工具,支援通過聲明式設定檔定義和管理雲資源。Log Service已接入Terraform,你可以使用Terraform自動化建立和管理專案(Project)、日誌庫(LogStore)、警示規則、採集配置等資源。
前提條件
已準備Terraform運行環境。可以選擇以下任一方式:
在Terraform Explorer中使用Terraform:阿里雲提供的Terraform線上運行環境,無需安裝即可線上使用和體驗Terraform。適用於零成本、快速體驗和調試Terraform的情境。
在Cloud Shell中使用Terraform:阿里雲Cloud Shell中預裝了Terraform組件,並已配置好身份憑證,可直接運行Terraform命令。適用於低成本、快速存取和使用Terraform的情境。
在本地安裝和配置Terraform:適用於網路連接較差或需要自訂開發環境的情境。
Terraform Registry
Terraform Registry是Terraform官方的組件倉庫,也是擷取和使用Terraform資源的主要途徑。Log Service相關的Terraform資源通過以下兩個核心組件提供:
Provider(提供者):Terraform的外掛程式,用於與阿里雲API進行互動。Log Service的資源由阿里雲Provider(
alicloud)提供支援。Module(模組):一組Terraform設定檔的集合,用於封裝可複用的基礎設施代碼。你可以使用Module快速部署常見的Log Service架構。
使用流程
使用Terraform管理Log Service資源的基本流程如下:
安裝Terraform
在本地或CI/CD環境中安裝Terraform CLI。如果使用Terraform Explorer或Cloud Shell,可以跳過此步驟。
編寫設定檔
建立
.tf設定檔(例如main.tf),聲明所需的Provider和資源。Terraform使用聲明式文法,你只需描述資源的目標狀態,Terraform會自動計算達到該狀態所需的操作。以下為一個建立Log Service專案(Project)的配置樣本:provider "alicloud" { region = "cn-hangzhou" } resource "alicloud_log_project" "example" { project_name = "my-sls-project" description = "Log Service專案樣本" }初始化工作目錄
運行
terraform init命令。Terraform會讀取設定檔,下載指定的Provider外掛程式,並初始化工作目錄。預覽變更
運行
terraform plan命令。Terraform會對比目前狀態與設定檔的差異,產生執行計畫(execution plan),展示將要執行的操作(建立、修改或刪除),但不會實際執行。執行變更
運行
terraform apply命令。Terraform會根據執行計畫,調用Provider的API在阿里雲上實際建立或修改資源。
當不再需要通過Terraform建立的資源時,可以運行terraform destroy命令釋放資源。
阿里雲 Provider 與 V4 簽名使用方法
阿里雲 Terraform Provider 支援使用 V4 簽名(Signature Version 4)進行身分識別驗證。V4 簽名相比 V1 提供了更嚴格的請求驗證機制,增強了安全性。
說明:阿里雲某些新開服的地區(Region)可能僅支援 V4 簽名。
配置步驟:
第一步:準備憑證 (Credentials)
你需要擷取阿里雲的 Access Key ID 和 Access Key Secret。建議在阿里雲 RAM (資源訪問管理) 中建立具有最小許可權的子帳號 AccessKey。
第二步:配置 Provider
在你的 Terraform 設定檔(如 provider.tf)中,指定 alicloud Provider 並設定 sign_version 參數(說明:不配置sign_version時,sign_version預設為v1簽名)。
provider "alicloud" {
# 指定地區
region = "cn-beijing"
# 啟用 V4 簽名
sign_version {
sls = "v4"
}
# 配置認證資訊(推薦通過環境變數 ALICLOUD_ACCESS_KEY 設定,而非寫入程式碼)
# access_key = "your-access-key-id"
# secret_key = "your-secret-access-key"
}參數名 | 說明 | 是否必需 | 預設值 |
| 指定操作的阿里雲地區 | 是 | 無 |
| 指定簽名版本 | 否 |
|
| 阿里雲 Access Key ID | 否 (推薦用環境變數) | 無 |
| 阿里雲 Secret Key | 否 (推薦用環境變數) | 無 |
| 臨時安全性權杖 (STS) | 否 | 無 |
第三步:設定環境變數
為了安全起見,建議不要將密鑰寫死在代碼中,而是通過環境變數傳遞。
在終端執行(Linux/Mac):
export ALICLOUD_ACCESS_KEY="LTAI5tQZd1Kq2Yzd1J3xxxx"
export ALICLOUD_SECRET_KEY="MOY0d5Zxxxxxx"
export ALICLOUD_REGION="cn-beijing"第四步:運行 Terraform
配置完成後,按照標準的 init -> plan -> apply 流程執行。