Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Message Queue
    • Быстрый старт
    • Поддерживаемые инструменты
      • Python
      • Node.js
      • PHP
      • Celery
      • JMS
      • Laravel
      • Symfony
      • Terraform
      • Golang
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Публичные материалы
  • Вопросы и ответы
  • Обучающие курсы
  1. Начало работы
  2. Примеры кода
  3. Terraform

Terraform

Статья создана
Yandex Cloud
Улучшена
Обновлена 30 октября 2024 г.

С помощью Terraform можно создавать очереди сообщений в Message Queue.

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы создать очередь сообщений:

  1. Опишите в конфигурационном файле параметры очереди, которую необходимо создать:

    Пример конфигурационного файла для стандартной очереди:

    provider "yandex" {
        token     = "<OAuth_или_статический_ключ_сервисного_аккаунта>"
        folder_id = "<идентификатор_каталога>"
        zone      = "ru-central1-a"
      }
    
    resource "yandex_message_queue" "example_queue" {
      name                        = "mq-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                        = "mq-terraform-example.fifo"
      visibility_timeout_seconds  = 600
      receive_wait_time_seconds   = 20
      message_retention_seconds   = 1209600
      fifo_queue                  = true
      access_key                  = "<идентификатор_статического_ключа_доступа>"
      secret_key                  = "<секретная_часть_статического_ключа_доступа>"
    }
    

    Пример конфигурационного файла для очереди с политикой перенаправления недоставленных сообщений в DLQ с именем mq_terraform_deadletter_example:

    provider "yandex" {
        token     = "<OAuth_или_статический_ключ_сервисного_аккаунта>"
        folder_id = "<идентификатор_каталога>"
        zone      = "ru-central1-a"
      }
    
    resource "yandex_message_queue" "example_fifo_queue" {
      name                        = "mq-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                        = "mq_terraform_deadletter_example"
      access_key                  = "<идентификатор_статического_ключа_доступа>"
      secret_key                  = "<секретная_часть_статического_ключа_доступа>"
    }
    

    Где:

    • name — имя очереди.
    • visibility_timeout_seconds — таймаут видимости.
    • receive_wait_time_seconds — время ожидания поступления сообщений в очередь при использовании Long Polling. Возможные значения: от 0 до 20 секунд. Значение по умолчанию — 0 секунд.
    • message_retention_seconds — срок хранения сообщений в очереди в секундах.
    • redrive_policy — политика перенаправления сообщений в очередь Dead Letter Queue.
      • deadLetterTargetArn — ARN очереди DLQ, куда будут перенаправляться сообщения.
      • maxReceiveCount — количество попыток чтения сообщения из очереди до отправки его в DLQ.
    • fifo_queue — указание, что создается очередь FIFO.
    • content_based_deduplication — включение дедупликации по содержимому в очередях FIFO.
    • access_key — идентификатор статического ключа доступа сервисного аккаунта для очереди. Если идентификатор не задан в конфигурации очереди, будет использоваться идентификатор из конфигурации провайдера.
    • secret_key — секретная часть статического ключа доступа. Если секретный ключ не задан в конфигурации очереди, будет использоваться ключ из конфигурации провайдера.

    Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.

  2. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в папку, где вы создали конфигурационный файл.
    2. Выполните проверку с помощью команды:
      terraform plan
      

    Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.

  3. Разверните облачные ресурсы.

    1. Если в конфигурации нет ошибок, выполните команду:
      terraform apply
      
    2. Подтвердите создание ресурсов.

    После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления. Удалить созданные ресурсы можно командой terraform destroy.

Была ли статья полезна?

Предыдущая
Symfony
Следующая
Golang
Проект Яндекса
© 2025 ООО «Яндекс.Облако»