本文介紹了如何使用Terraform建立一個儲存空間,並設定儲存空間屬性用來控制靜態網站託管、日誌、生命週期等。
說明
本教程所含範例程式碼支援一鍵運行,您可以直接運行代碼。一鍵運行
前提條件
在開始之前,請您確保完成以下操作:
使用Terraform,您需要一個阿里雲帳號和存取金鑰(AccessKey)。 請在阿里雲控制台中的AccessKey管理頁面上建立和查看您的AccessKey。
已經安裝並配置了Terraform,具體操作請參見在本地安裝和配置Terraform和Cloud Shell。
操作步驟
建立一個Bucket。
建立terraform.tf檔案,輸入以下內容,並儲存在當前執行的目錄中。
說明需要為每個Terraform專案建立一個獨立的執行目錄。
說明當前範例程式碼支援一鍵運行,您可以直接運行代碼。一鍵運行
provider "alicloud" { alias = "bj-prod" region = "cn-beijing" } resource "random_uuid" "default" {} resource "alicloud_oss_bucket" "bucket-new" { storage_class = "Standard" bucket = "bucket-auto-2024${random_uuid.default.id}" } resource "alicloud_oss_bucket_acl" "default" { bucket = alicloud_oss_bucket.bucket-new.bucket acl = "public-read" } output "buckname"{ value = alicloud_oss_bucket.bucket-new.bucket }運行terraform apply開始建立。出現類似下面的日誌,則表示建立成功。
說明oss 的 bucket 具有全域唯一性。如果建立時報錯
ErrorCode=BucketAlreadyExists,說明此bucket 名字已被佔用,請更換名字後重試。alicloud_oss_bucket.bucket-new: Creating... alicloud_oss_bucket.bucket-new: Creation complete after 2s [id=bucket-20200310-1] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
設定Bucket屬性。
建立resource.tf檔案,輸入以下內容,並儲存在當前執行的目錄中。
說明該目錄下所有*.tf 檔案都會被terraform自動載入。因此,使用者可以按照實際用途將配置資訊寫入不同的檔案中。
resource "alicloud_oss_bucket" "bucket-attr" { provider = alicloud.bj-prod bucket = "bucket-2-${random_uuid.default.id}" # 靜態網站的預設首頁和404頁面 website { index_document = "index.html" error_document = "error.html" } # 訪問日誌的儲存路徑 logging { target_bucket = alicloud_oss_bucket.bucket-new.id target_prefix = "log/" } # 檔案生命週期規則 lifecycle_rule { id = "expirationByDays" prefix = "path/expirationByDays" enabled = true expiration { days = 365 } } # 防盜鏈設定 referer_config { allow_empty = true referers = ["http://www.aliyun.com", "https://www.aliyun.com", "http://?.aliyun.com"] } }運行terraform apply開始配置Bucket的屬性。出現類似下面的日誌,說明配置成功。
alicloud_oss_bucket.bucket-attr: Creating... alicloud_oss_bucket.bucket-attr: Creation complete after 2s [id=bucket-20200310-2] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.