Облачная платформаEvolution

cloudru_evolution_obs_bucket


Example Usage

resource "cloudru_evolution_obs_bucket" "test_bucket" {
bucket = "tf-obs-test-bucket"
versioning = true
storage_class = "STANDARD"
quota = 1
quota_unit = "GB"
quota_type = "BUCKET_SIZE"
log_group_id = var.bucket_log_group_id
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Effect = "Deny"
Principal = "*",
Action = "s3:GetObject",
Resource = "arn:aws:s3:::tf-obs-test-bucket/*",
Condition = {}
}
]
})
tags = [
{
key = "environment"
value = "test"
},
{
key = "owner"
value = "my-user"
},
{
key = "project"
value = "terraform-provider"
}
]
cors_rules = [
{
allowed_methods = ["GET", "HEAD"]
allowed_origins = ["https://example.com"]
allowed_headers = ["*"]
expose_headers = ["ETag", "x-amz-meta-custom"]
max_age_seconds = 3000
id = "read-rule"
},
{
allowed_methods = ["PUT", "POST", "DELETE"]
allowed_origins = ["https://api.example.com", "https://admin.example.com"]
allowed_headers = ["Authorization", "Content-Type", "x-amz-*"]
expose_headers = ["ETag"]
max_age_seconds = 600
id = "write-rule"
}
]
lifecycle_rules = [
{
name = "expire-logs"
enabled = true
expiration = {
days = 30
}
filter = {
prefix = "logs/"
}
},
{
name = "cleanup-old-versions"
enabled = true
noncurrent_version_expiration = {
days = 14
newer_noncurrent_versions = 5
}
filter = {
prefix = "data/"
}
},
{
name = "expire-temp"
enabled = true
expiration = {
days = 7
}
filter = {
prefix = "tmp/"
}
}
]
}

Schema

Required

  • bucket (String) Имя бакета.

Optional

  • cors_rules (Attributes List) (see below for nested schema)

  • lifecycle_rules (Attributes List) Конфигурации жизненного цикла. (see below for nested schema)

  • log_group_id (String) ID лог-группы для бакета (требует User Plane API).

  • policy (String) Политики бакета.

  • quota (Number) Квота бакета (требует User Plane API).

  • quota_type (String) Тип квоты

  • quota_unit (String) Единица изменения квоты

  • storage_class (String) Класс хранения бакета (требует User Plane API).

  • tags (Attributes List) Теги бакета. (see below for nested schema)

  • versioning (Boolean) Версионирование.

Read-Only

  • id (String) Terraform resource ID (bucket name).

  • uuid (String) UUID бакета из User Plane API (опционально).

Nested Schema for cors_rules

Optional:

  • allowed_headers (List of String) Разрешённые заголовки.

  • allowed_methods (List of String) HTTP‑методы, разрешённые в CORS‑правиле.

  • allowed_origins (List of String) Разрешённые источники

  • expose_headers (List of String) Заголовки, которые могут быть раскрыты клиенту.

  • id (String) Время кэширования (в секундах).

  • max_age_seconds (Number) Идентификатор (имя) правила.

Nested Schema for lifecycle_rules

Required:

  • enabled (Boolean) Статус правила.

  • name (String) Имя правила.

Optional:

  • abort_incomplete_multipart_upload (Attributes) Параметры автоматического завершения незавершённых multipart‑загрузок. (see below for nested schema)

  • expiration (Attributes) Параметры автоматического удаления объектов. (see below for nested schema)

  • filter (Attributes) Фильтр для отбора объектов, к которым будет применено правило. (see below for nested schema)

  • noncurrent_version_expiration (Attributes) Параметры автоматического удаления неактуальных (не текущих) версий объектов. (see below for nested schema)

  • prefix (String) Часть ключа объекта, к которому будет применено правило.

Nested Schema for lifecycle_rules.abort_incomplete_multipart_upload

Required:

  • days (Number) Количество дней после начала multipart‑загрузки, после которых она будет удалена, если не завершена.

Nested Schema for lifecycle_rules.expiration

Required:

  • days (Number) Количество дней, после истечения которых объекты, к которым применено правило, будут удалены или перемещены.

Nested Schema for lifecycle_rules.filter

Optional:

  • additional_filters (Attributes List) Дополнительные AND‑операторы. (see below for nested schema)

  • object_size_greater_than (Number) Размер объекта больше чем (в байтах).

  • object_size_less_than (Number) Размер объекта меньше чем (в байтах).

  • prefix (String) Префикс ключа объекта.

  • tag (Attributes) Тег, по которому будет отфильтрован объект. (see below for nested schema)

Nested Schema for lifecycle_rules.filter.additional_filters

Optional:

  • object_size_greater_than (Number) Размер объекта больше чем (в байтах).

  • object_size_less_than (Number) Размер объекта меньше чем (в байтах).

  • prefix (String) Префикс ключа объекта.

  • tags (Attributes List) Список тегов, которые должны одновременно присутствовать. (see below for nested schema)

Nested Schema for lifecycle_rules.filter.additional_filters.tags

Required:

  • key (String) Ключ тега.

  • value (String) Значение тега.

Nested Schema for lifecycle_rules.filter.tag

Required:

  • key (String) Ключ тега.

  • value (String) Значение тега.

Nested Schema for lifecycle_rules.noncurrent_version_expiration

Required:

  • days (Number) Количество дней после того, как версия перестала быть актуальной, после которых она будет удалена.

Optional:

  • newer_noncurrent_versions (Number) Максимальное количество неактуальных версий объекта, которое S3 должна сохранять.

Nested Schema for tags

Required:

  • key (String) Ключ.

  • value (String) Значение.