通过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.
文档内容是否对您有帮助?