Files
tf_provider/TEST_STAND/S3_EVENT_FUNCTION_POC/main.tf
T
2026-06-30 15:46:24 +04:00

52 lines
1.6 KiB
Terraform

provider "nubes" {
api_token = var.api_token
api_endpoint = var.api_endpoint
}
# Бакет-источник — сюда пишем объект
resource "nubes_s3bucket" "source" {
resource_name = "${var.bucket_name}-src"
s3_user_uid = var.s3_uid
bucket_name = "${var.bucket_name}-src"
adopt_existing_on_create = true # бакет уже создан предыдущим apply
max_size = -1
read_all = false
list_all = false
cors_all = false
placement = "HOT"
}
# Бакет-назначение — сюда копирует «функция» по событию
resource "nubes_s3bucket" "dest" {
resource_name = "${var.bucket_name}-dst"
s3_user_uid = var.s3_uid
bucket_name = "${var.bucket_name}-dst"
max_size = -1
read_all = false
list_all = false
cors_all = false
placement = "HOT"
}
locals {
src_bucket = try(nubes_s3bucket.source.state_params["bucketName"], "${var.bucket_name}-src")
dst_bucket = try(nubes_s3bucket.dest.state_params["bucketName"], "${var.bucket_name}-dst")
}
# «Функция»: mc watch ловит событие в source → копирует объект в dest
resource "terraform_data" "event_delivery_check" {
depends_on = [nubes_s3bucket.source, nubes_s3bucket.dest]
triggers_replace = {
src = local.src_bucket
dst = local.dst_bucket
s3cfg_path = var.s3cfg_path
}
provisioner "local-exec" {
command = "bash ${path.module}/scripts/copy_on_event.sh \"${var.s3cfg_path}\" \"${local.src_bucket}\" \"${local.dst_bucket}\" \"${var.demo_timeout_sec}\""
}
}