terraform-provider-yandex icon indicating copy to clipboard operation
terraform-provider-yandex copied to clipboard

Состояние триггера функции (enabled/paused)

Open max-arnold opened this issue 11 months ago • 2 comments

Товарищи разработчики, а добавьте в Terraform провайдер возможность создавать yandex_function_trigger в приостановленном состоянии (paused).

Такой триггер удобно держать на DLQ и запускать вручную после разбора причин по которым в очередь что-то свалилось.

Для SQS так можно, см флаг enabled: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping#enabled

Это распространенная практика https://theburningmonk.com/2024/01/how-would-you-reprocess-lambda-dead-letter-queue-messages-on-demand/

max-arnold avatar Mar 20 '24 14:03 max-arnold

@max-arnold спасибо за ваш issue. Обсудил с коллегами из Serverless. В данный момент API сервиса не поддерживает создание триггера в остановленном состоянии. Соответственно пока что нельзя поддержать подобный функционал в terraform.

Команда сервиса завела фича-реквест, но сроки реализации пока не известны.

opportunity356 avatar Apr 04 '24 17:04 opportunity356

Временно обошёл проблему так:

resource "yandex_function_trigger" "event_dl" {
  name = "event-dl"
  message_queue {
    queue_id           = yandex_message_queue.event_dl.arn
    service_account_id = var.yc_service_account_id
    batch_cutoff       = 0
    batch_size         = 10
    visibility_timeout = 120
  }
  function {
    id                 = module.function_event_task.function_id
    service_account_id = var.yc_service_account_id
  }
  provisioner "local-exec" {
    interpreter = ["/bin/bash", "-c"]
    command     = <<-EOT
yc --config <(jq '{profiles: {"dynamic": {"service-account-key": .}}}' yc-service-account-key.json) --profile dynamic --cloud-id ${var.yc_cloud_id} --folder-id ${var.yc_folder_id} serverless trigger pause --name ${self.name}
EOT
  }
}

max-arnold avatar May 05 '24 09:05 max-arnold