介绍
我将写关于如何在 Terraform 中设置 S3 生命周期规则。
本文只介绍基本设置。
什么是生命周期规则?
- 这是用于在一段时间后将 S3 对象迁移到另一个存储类的设置。
- 用于降低 S3 成本。
前提
- 要使用的 Terraform 版本信息
% terraform --version
Terraform v1.1.8
on darwin_amd64
+ provider registry.terraform.io/hashicorp/aws v4.22.0
Your version of Terraform is out of date! The latest version
is 1.2.7. You can update by downloading from https://www.terraform.io/downloads.html
%
-
我不会进入代码应用程序的流程。
- 如果您想了解代码申请之前的流程,请参考以下文章。
- [Terraform] 从代码创建到应用程序再到云环境的流程
-
本文只介绍部分代码。
代码
- 这是将整个 S3 存储桶中的对象迁移到另一个存储类的设置,如下所示。
- 30 天后:转换为
STANDARD_IA - 60 天后:转换为
GLACIER
- 30 天后:转换为
s3。 tf
resource "aws_s3_bucket" "s3_bucket" {
bucket = "testbucket0717"
tags = {
Name = "dev"
}
}
resource "aws_s3_bucket_acl" "s3_bucket_acl" {
bucket = aws_s3_bucket.s3_bucket.id
acl = "private"
}
resource "aws_s3_bucket_lifecycle_configuration" "s3_bucket_lifecycle" {
bucket = aws_s3_bucket.s3_bucket.id
rule {
id = "test_rule"
status = "Enabled"
transition {
days = 30
storage_class = "STANDARD_IA"
}
transition {
days = 60
storage_class = "GLACIER"
}
}
}
- 如果添加过滤器设置,还可以设置要在生命周期中指定的对象
- 在下面的示例中,指定
/Log
- 在下面的示例中,指定
s3.tf(摘录)
resource "aws_s3_bucket_lifecycle_configuration" "s3_bucket_lifecycle" {
bucket = aws_s3_bucket.s3_bucket.id
rule {
id = "test_rule"
status = "Enabled"
filter {
prefix = "/Log"
}
transition {
days = 30
storage_class = "STANDARD_IA"
}
transition {
days = 60
storage_class = "GLACIER"
}
}
}
在 AWS 控制台中检查生命周期规则
可以从创建的 S3 的Lifecycle configuration 进行检查。
为整个存储桶指定对象时的示例
-
生命周期规则配置
-
查看过渡和到期操作
指定桶内对象的示例
Lifecycle rule configuration 仅摘录
*因为其他设置与“指定整个存储桶对象时的示例”相同
参考
- Terraform 官方文档
- AWS 官方文档
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308623427.html