resource "google_cloud_run_v2_service" "app" { name = var.project_name location = var.region project = var.project_id deletion_protection = false ingress = "INGRESS_TRAFFIC_ALL" labels = { "created-by" = "agents-cli" } template { containers { image = "us-docker.pkg.dev/cloudrun/container/hello" env { name = "APP_URL" value = "https://${var.project_name}-${data.google_project.project.number}.${var.region}.run.app" } env { name = "GOOGLE_CLOUD_PROJECT" value = var.project_id } env { name = "GOOGLE_CLOUD_LOCATION" value = "global" } env { name = "GOOGLE_GENAI_USE_ENTERPRISE" value = "True" } resources { limits = { cpu = "1" memory = "4Gi" } } env { name = "LOGS_BUCKET_NAME" value = google_storage_bucket.logs_data_bucket.name } env { name = "OTEL_SERVICE_NAME" value = "docuctl-docs" } env { name = "OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT" value = "NO_CONTENT" } env { name = "ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS" value = "false" } env { name = "OTEL_INSTRUMENTATION_GENAI_COMPLETION_HOOK" value = "upload" } env { name = "OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH" value = "gs://${google_storage_bucket.logs_data_bucket.name}/completions" } } service_account = google_service_account.app_sa.email max_instance_request_concurrency = 8 scaling { min_instance_count = 1 max_instance_count = 10 } session_affinity = true } lifecycle { ignore_changes = [ template[0].containers[0].image, ] } }