# ============================================================================= # Consumer (Node.js) — читает RabbitMQ, сохраняет в Redis + MongoDB # Использует amqplib для AMQP-подключения к RabbitMQ # ============================================================================= locals { # Подключение к RabbitMQ (AMQP, порт 5672) cons_rmq_host = nubes_rabbitmq.main.state_out_flat["internalConnect"] # K8s-хост cons_rmq_user = nonsensitive(nubes_rabbitmq.main.vault_secrets["adminUser"]) # логин cons_rmq_pass = nonsensitive(nubes_rabbitmq.main.vault_secrets["adminPass"]) # пароль # Подключение к Redis (порт 6379) cons_rds_host = nubes_redis.main.state_out_flat["internalConnect.master"] # K8s-хост cons_rds_pass = nonsensitive(nubes_redis.main.vault_secrets["adminPass"]) # пароль # Подключение к MongoDB (порт 27017) — без аутентификации (vault пустой) cons_mgo_host = nubes_mongodb.main.state_out_flat["internalConnect"] # K8s-хост cons_mgo_user = "admin" # дефолтный пользователь cons_mgo_pass = "" # без пароля } resource "nubes_nodejs" "consumer" { resource_name = local.cons_resource_name # имя в личном кабинете startup_configuration = { resource_realm = var.realm # K8s-кластер } cluster_configuration = { cpu = local.cons_cpu # CPU millicores memory = local.cons_memory # память MB replicas = local.cons_replicas # количество подов } access_configuration = { domain = local.cons_domain # поддомен для HTTP } app_configuration = { version = "22" # версия Node.js git_path = local.cons_git_path # Git-репо с кодом health_path = "/" # health-check эндпоинт } git_revision = local.cons_git_revision # коммит для деплоя operation_timeout = local.cons_timeout # таймаут adopt_existing_on_create = true # подхватить suspended инстанс при повторном apply # Переменные окружения для K8s пода json_env = jsonencode({ RMQ_HOST = local.cons_rmq_host # хост RabbitMQ RMQ_PORT = "5672" # порт AMQP RMQ_USER = local.cons_rmq_user # логин RabbitMQ RMQ_PASS = local.cons_rmq_pass # пароль RabbitMQ RMQ_QUEUE = local.rmq_queue # имя очереди REDIS_HOST = local.cons_rds_host # хост Redis REDIS_PORT = "6379" # порт Redis REDIS_PASS = local.cons_rds_pass # пароль Redis MONGO_URI = "mongodb://${local.cons_mgo_user}:${local.cons_mgo_pass}@${local.cons_mgo_host}:27017/iot?authSource=admin" MONGO_DB = "iot" # имя базы MongoDB }) # Ждать создания всех трёх сервисов depends_on = [nubes_rabbitmq.main, nubes_redis.main, nubes_mongodb.main] }