google_bigquery_log_sink/main.tf (23 lines of code) (raw):
locals {
ninety_days_in_ms = 7776000000 // 90 days in ms
}
resource "google_bigquery_dataset" "self" {
dataset_id = "log_storage_${var.environment}"
default_table_expiration_ms = local.ninety_days_in_ms
default_partition_expiration_ms = local.ninety_days_in_ms
location = "US"
}
resource "google_logging_project_sink" "self" {
name = "bigquery-log-storage-${var.environment}"
destination = "bigquery.googleapis.com/${google_bigquery_dataset.self.id}"
filter = var.log_filter
unique_writer_identity = true
bigquery_options {
use_partitioned_tables = true
}
}
resource "google_project_iam_member" "self" {
project = var.project
role = "roles/bigquery.dataEditor"
member = google_logging_project_sink.self.writer_identity
}