You need to enable JavaScript to run this app.
导航

使用 Terraform 管理对象存储

最近更新时间2024.01.03 10:41:04

首次发布时间2024.01.03 10:41:04

本文介绍使用 Terraform 进行对象存储管理。

前言

本文主要介绍使用 Terraform 管理对象存储的方法。

关于实验
  • 预计部署时间:30分钟
  • 级别:初级
  • 相关产品:TOS
  • 受众: 通用
实验说明
  • 点击此链接登录控制台。

  • 如果您还没有账户,请点击此链接注册账户。

实验步骤

安装和初始化Terraform

参考如下步骤安装 Terraform

  1. 登录Terraform官网或进入下载页,建议使用0.13.x或者更高的版本,下载对应操作系统的安装包。

  2. 解压安装包,并将terraform可执行文件所在目录添加到系统环境变量PATH中。

  3. 在命令行中执行如下命令验证配置路径是否正确,回显如下则说明配置正确,Terraform可以正常运行。

> terraform
Usage: terraform [-version] [-help] <command> [args]

....

初始化使用环境

  1. 使用Terraform管理火山引擎的云资源前,您需要获取AK/SK,参考 访问密钥

  2. 在任意目录下创建一个文本文件,命名为 main.tf。

  3. 编辑 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"
}

管理对象存储

创建 Bucket

resource "volcengine_tos_bucket" "default" {
  bucket_name = "test-terraform-1"
  storage_class = "STANDARD"
}

参数说明

参数必填说明
bucket_name存储空间名称
storage_class存储类型,可选值为STANDARD、IA、ARCHIVE_FR,默认为STANDARD(标准存储)

配置桶ACLs

账号授权

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是否开启版本控制

创建 Object

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 Source

查询对象存储桶信息

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查询结果输出文件路径

查询对象存储object信息

data "volcengine_tos_objects" "default" {
        bucket_name = "test-terraform-1"
        output_file = "/Users/bytedance/output_objects"
}

参数说明:

必填说明
bucket_name存储空间名称
name_regex对象名称正则匹配
object_name对象名称
output_file查询结果输出文件路径

如果您有其他问题,欢迎您联系火山引擎技术支持服务