全部產品
Search
文件中心

Terraform:通過Terraform管理Bucket

更新時間:Nov 04, 2025

本文介紹了如何使用Terraform建立一個儲存空間,並設定儲存空間屬性用來控制靜態網站託管、日誌、生命週期等。

說明

本教程所含範例程式碼支援一鍵運行,您可以直接運行代碼。一鍵運行

前提條件

在開始之前,請您確保完成以下操作:

操作步驟

  1. 建立一個Bucket。

    1. 建立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
      }
    2. 運行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.
  2. 設定Bucket屬性。

    1. 建立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"]
        }
      }
    2. 運行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.