Появилась поддержка Terraform для Yandex Message Queue

Мы рады поделиться ещё одной реализованной идеей сообщества Яндекс.Облака: создание и управление очередями сервиса Yandex Message Queue теперь возможно через популярный инструмент управления — Terraform.

Чтобы управлять своими сервисами и ресурсами с помощью Terraform, создайте конфигурационный файл и настройте провайдер Яндекс.Облака. Для этого воспользуйтесь пошаговой инструкцией.

С помощью Terraform вы можете создавать и удалять очереди сообщений, а также использовать ранее созданные очереди при помощи data source. Все параметры и атрибуты можно найти в документации и на странице Terraform-провайдера Облака.

Примеры создания очередей сообщений

Конфигурационный файл для стандартной очереди:

provider "yandex" {
    token     = "<OAuth или статический ключ сервисного аккаунта>"
    folder_id = "<идентификатор каталога>"
    zone      = "ru-central1-a"
  }

resource "yandex_message_queue" "example_queue" {
  name                        = "ymq-terraform-example"
  visibility_timeout_seconds  = 600
  receive_wait_time_seconds   = 20
  message_retention_seconds   = 1209600
  access_key                  = "<идентификатор статического ключа доступа>"
  secret_key                  = "<секретная часть статического ключа доступа>"
}

Конфигурационный файл для очереди FIFO:

provider "yandex" {
    token     = "<OAuth или статический ключ сервисного аккаунта>"
    folder_id = "<идентификатор каталога>"
    zone      = "ru-central1-a"
  }

resource "yandex_message_queue" "example-fifo-queue" {
  name                        = "ymq-terraform-example.fifo"
  visibility_timeout_seconds  = 600
  receive_wait_time_seconds   = 20
  message_retention_seconds   = 1209600
  fifo_queue                  = true
  access_key                  = "<идентификатор статического ключа доступа>"
  secret_key                  = "<секретная часть статического ключа доступа>"
}

Пример создания очереди c политикой перенаправления недоставленных сообщений в DLQ c именем ymq_terraform_deadletter_example:

provider "yandex" {
    token     = "<OAuth или статический ключ сервисного аккаунта>"
    folder_id = "<идентификатор каталога>"
    zone      = "ru-central1-a"
  }

resource "yandex_message_queue" "example_fifo_queue" {
  name                        = "ymq-terraform-example"
  visibility_timeout_seconds  = 600
  receive_wait_time_seconds   = 20
  message_retention_seconds   = 1209600
  redrive_policy              = jsonencode({
    deadLetterTargetArn = yandex_message_queue.example_deadletter_queue.arn
    maxReceiveCount     = 3
  })
  access_key                  = "<идентификатор статического ключа доступа>"
  secret_key                  = "<секретная часть статического ключа доступа>"
}

resource "yandex_message_queue" "example_deadletter_queue" {
  name                        = "ymq_terraform_deadletter_example"
  access_key                  = "<идентификатор статического ключа доступа>"
  secret_key                  = "<секретная часть статического ключа доступа>"
}

В процессе использования Terraform могут возникнуть вопросы — напишите нам в поддержку или спросите других пользователей в телеграм-чате Яндекс.Облака.


Если у вас есть идея, как сделать Яндекс.Облако удобнее — поделитесь с нами в разделе Сообщество или проголосуйте за уже предложенную идею.

  • Новости