一、安装 Terraform
Terraform 安装请参见 腾讯云 Terraform 应用指南(一) 的“安装 Terraform”章节。
二、步骤1:初始化
注意:建议使用子账号密钥,授权遵循 最小权限指引,降低使用风险。子账号密钥获取可参考 子账号访问密钥管理。
1. 创建工作目录,例如 terraform-test 目录。
2. 为 Terraform 创建或准备好腾讯云账号,并获取 SecretID 和 SecretKey。
3. 编写 provider 配置文件,将你的 SecretID 和 SecretKey 等账号信息写入配置文件 provider.tf,保存在工作目录(terraform-test 目录)下,配置文件 provider.tf 示例如下:
provider "tencentcloud" { secret_id = "************************************" secret_key = "********************************" region = "ap-beijing"}
注意:说明:
注意:其他配置方式,详情请参见 腾讯云 Terraform 应用指南(一) 的“配置腾讯云 provider 文件”章节。
4. 执行 init 命令,初始化工作目录(例如 terraform-test),示例如下:
[root@tigger terraform-test]#terraform init
若打印如下信息,则表示初始化成功。
Terraform has been successfully initialized!
注意:说明:
注意:每个 Terraform 项目都需要一个工作目录,所有操作均在此目录进行。有些 Terraform 命令可在参数中指定工作目录,详情请参见 腾讯云 Terraform 应用指南(三)。若不指定,默认当前目录是工作目录。
三、步骤2:创建存储桶
1. 编写 resource 配置文件,定义资源。假设创建私有存储桶 examplebucket-1250000000,示例如下。
resource "tencentcloud_cos_bucket" "mycos" { bucket = "examplebucket-1250000000" #存储桶名称,存储桶名称格式为 BucketName-APPID acl = "private" #ACL 权限为私有}
注意:实际操作时,请务必将存储桶名称后缀替换为用户的真实 APPID,否则,COS 将拒绝创建存储桶。
以 resource 开头的 *.tf 配置文件定义资源。
·tencentcloud_cos_bucket:描述资源类型是存储桶。其他资源类型详情请参见 Terraform 页面 的左侧目录。
·mycos:描述资源名称,由用户自定义。
·若创建支持静态网站的存储桶,示例如下:
resource "tencentcloud_cos_bucket" "examplebucket2" { bucket = "examplebucket2-1250000000" website { index_document = "index.html" error_document = "error.html" }}
若设置 CORS,示例如下:
resource "tencentcloud_cos_bucket" "examplebucket3" { bucket = "examplebucket3-1250000000" acl = "public-read-write" cors_rules { allowed_origins = ["http://*.abc.com"] allowed_methods = ["PUT", "POST"] allowed_headers = ["*"] max_age_seconds = 300 expose_headers = ["Etag"] }}
注意:说明:
注意:Terraform 可管理 COS bucket 的 website、ACL、cors_rules、lifecycle_rules 等属性,详情请参见 tencentcloud_cos_bucket 的 Argument Reference 章节。
2. 执行terraform apply 命令,并根据提示输入 yes 完成确认,提示 Apply complete! 后,你可登录 COS 控制台,查看刚创建的存储桶 examplebucket-1250000000。
注意:说明:
四、步骤3:创建对象资源
1. 编写 resource 配置文件,定义资源。假设上传文件 picture.jpg 到存储桶 examplebucket-1250000000,示例如下。
resource "tencentcloud_cos_bucket_object" "myobject" { bucket = "examplebucket-1250000000" # 存储桶名称,格式为 BucketName-APPID key = "picture.jpg" # 对象键 source = "D:\\folder\\picture.jpg" # 待上传文件路径,需要包含路径和文件名,可根据不同系统修改文件路径}
2. 执行 terraform apply 命令,进行部署资源,上传 picture.jpg。
注意:说明:
五、步骤4:查询资源
执行 terraform show 命令,查看全部资源信息(即查看所有存储桶和对象的元数据)。
若需查询指定存储桶或对象的指定信息,则需要编写 data source 配置文件,然后执行 terraform apply 命令。
1. 精细化查询存储桶信息。
1.1 编写 data source 配置文件,定义精细化查询条件。假设查询以 example 为前缀的存储桶,示例如下:
data "tencentcloud_cos_buckets" "cos_buckets" { bucket_prefix = "example" # 存储桶前缀 result_output_file = "mytestpath" # 保存查询结果文件名}
以 data 开头的 *.tf 配置文件定义查询条件。
·tencentcloud_cos_buckets:描述资源类型是存储桶,详情请参见 Terraform 页面 的左侧目录。
·cos_buckets:描述资源名称,由用户自定义。
1.2 执行 terraform apply 命令进行查询。查询结果保存在文件 mytestpath。
注意:说明:
注意:若需查询存储桶的属性信息,详情请参见 tencentcloud_cos_buckets 的 Argument Reference 章节。
2. 精细化查询对象信息。
2.1 编写 data source 配置文件,定义精细化查询条件。假设查询对象 picture.jpg 的元数据,示例如下:
data "tencentcloud_cos_bucket_object" "mycos" { bucket = "examplebucket-1250000000" # 存储桶名称,格式为 BucketName-APPID key = "picture.jpg" # 对象键 result_output_file = "mytestpath" # 保存查询结果文件名}
2.2 执行 terraform apply 命令进行查询。查询结果保存在文件 mytestpath。
注意:说明:
注意:若需查询对象的属性信息,详情请参见 tencentcloud_cos_bucket_object 的 Argument Reference 章节。
六、步骤5:删除资源
执行 terraform destroy 命令删除工作目录下的所有资源。
若需删除指定的存储桶或对象,从配置文件中,删除定义该存储桶或对象资源的配置信息,然后执行 terraform apply 命令。建议你使用 terraform show 命令来检查删除结果。
注意:若删除指定的存储桶,请先确保已 清空存储桶。删除存储桶后,将无法恢复,请谨慎操作。