terraform-provider-yandex
terraform-provider-yandex copied to clipboard
Состояние триггера функции (enabled/paused)
Товарищи разработчики, а добавьте в 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 спасибо за ваш issue. Обсудил с коллегами из Serverless. В данный момент API сервиса не поддерживает создание триггера в остановленном состоянии. Соответственно пока что нельзя поддержать подобный функционал в terraform.
Команда сервиса завела фича-реквест, но сроки реализации пока не известны.
Временно обошёл проблему так:
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
}
}