通過Terraform管理Bucket
更新時間:
一鍵部署
本文介紹了如何使用Terraform創建一個存儲空間,并設置存儲空間屬性用來控制靜態網站托管、日志、生命周期等。
說明
本教程所含示例代碼支持一鍵運行,您可以直接運行代碼。一鍵運行
前提條件
在開始之前,請您確保完成以下操作:
使用Terraform,您需要一個阿里云賬號和訪問密鑰(AccessKey)。 請在阿里云控制臺中的AccessKey管理頁面上創建和查看您的AccessKey。
已經安裝并配置了Terraform,具體操作請參見在本地安裝和配置Terraform和在Cloud Shell中使用Terraform。
操作步驟
創建一個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.
文檔內容是否對您有幫助?