本文介绍使用 Terraform 进行对象存储管理。
本文主要介绍使用 Terraform 管理对象存储的方法。
参考如下步骤安装 Terraform
登录Terraform官网或进入下载页,建议使用0.13.x或者更高的版本,下载对应操作系统的安装包。
解压安装包,并将terraform可执行文件所在目录添加到系统环境变量PATH中。
在命令行中执行如下命令验证配置路径是否正确,回显如下则说明配置正确,Terraform可以正常运行。
> terraform Usage: terraform [-version] [-help] <command> [args] ....
初始化使用环境
使用Terraform管理火山引擎的云资源前,您需要获取AK/SK,参考 访问密钥。
在任意目录下创建一个文本文件,命名为 main.tf。
编辑 main.tf 文件,设置Provider信息,version 信息请从Terraform官网获取,添加内容如下:
terraform { required_providers { volcengine = { source = "volcengine/volcengine" version = "0.0.24" } } }
4.配置火山引擎账号信息。
a.创建环境变量,存放身份认证信息。
export VOLCENGINE_ACCESS_KEY="AK" export VOLCENGINE_SECRET_KEY="SK" export VOLCENGINE_REGION="cn-beijing"
b.通过配置文件 provider 部分,指定身份认证信息。
provider "volcengine" { access_key = "AK" secret_key = "SK" region = "cn-beijing" }
resource "volcengine_tos_bucket" "default" { bucket_name = "test-terraform-1" storage_class = "STANDARD" }
参数说明
参数 | 必填 | 说明 |
---|---|---|
bucket_name | 是 | 存储空间名称 |
storage_class | 否 | 存储类型,可选值为STANDARD、IA、ARCHIVE_FR,默认为STANDARD(标准存储) |
resource "volcengine_tos_bucket" "default" { bucket_name = "test-terraform-1" account_acl { account_id = "1" permission = "READ" } }
参数说明:
参数 | 必填 | 说明 |
---|---|---|
account_acl | 否 | 配置账号授权 |
account_id | 当设置 account_acl 时必填 | 账号id |
permission | 当设置 account_acl 时必填 | 要授予的权限,可选值为 FULL_CONTROL、READ、READ_ACP、WRITE、WRITE_ACP |
acl_type | 否 | 要控制的acl类型,可选值为 CanonicalUser |
resource "volcengine_tos_bucket" "default" { bucket_name = "test-terraform-1" account_acl { account_id = "1" permission = "READ" } public_acl = "private" }
参数说明:
参数 | 必填 | 说明 |
---|---|---|
public_acl | 否 | 配置公共访问权限,可选值为private、public-read、public-read-write、authenticated-read、bucket-owner-read |
resource "volcengine_tos_bucket" "default" { bucket_name = "test-terraform-1" enable_version = "true" }
参数 | 必填 | 说明 |
---|---|---|
enable_version | 否 | 是否开启版本控制 |
resource "volcengine_tos_object" "default" { bucket_name = "test-terraform-1" object_name = "test_object.mp4" file_path = "/Users/bytedance/Downloads/test.mp4" #storage_class ="IA" #public_acl = "private" #encryption = "AES256" #content_type = "text/plain" #account_acl { # account_id = "1" # permission = "READ" #} }
参数说明:
必填 | 说明 | |
---|---|---|
bucket_name | 是 | 存储空间名称 |
object_name | 是 | 对象名称 |
file_path | 否 | 上传文件路径 |
storage_class | 否 | 存储类型,可选值为STANDARD、IA、ARCHIVE_FR,默认为STANDARD(标准存储) |
public_acl | 否 | 配置公共访问权限,可选值为private、public-read、public-read-write、authenticated-read、bucket-owner-read |
encryption | 否 | 加密类型,可选值为 AES256 |
content_type | 否 | 设置文件的content-type |
account_acl | 否 | 配置账号授权 |
account_id | 当设置 account_acl 时必填 | 账号id |
permission | 当设置 account_acl 时必填 | 要授予的权限,可选值为 FULL_CONTROL、READ、READ_ACP、WRITE、WRITE_ACP |
data "volcengine_tos_buckets" "default" { bucket_name = "test-terraform-1" name_regex = "test" output_file = "/Users/bytedance/output_buckets" }
参数说明:
必填 | 说明 | |
---|---|---|
bucket_name | 否 | 存储空间名称 |
name_regex | 否 | 存储空间名称正则匹配 |
output_file | 否 | 查询结果输出文件路径 |
data "volcengine_tos_objects" "default" { bucket_name = "test-terraform-1" output_file = "/Users/bytedance/output_objects" }
参数说明:
必填 | 说明 | |
---|---|---|
bucket_name | 是 | 存储空间名称 |
name_regex | 否 | 对象名称正则匹配 |
object_name | 否 | 对象名称 |
output_file | 否 | 查询结果输出文件路径 |
如果您有其他问题,欢迎您联系火山引擎技术支持服务