Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Message Queue
  • Начало работы
    • Быстрый старт
    • Поддерживаемые инструменты
    • Примеры кода
      • Python
      • Node.js
      • PHP
      • Celery
      • JMS
      • Laravel
      • Terraform
      • Golang
  • Пошаговые инструкции
    • Обзор
    • Создание новой очереди сообщений
    • Отправка сообщений
    • Прием и удаление сообщений
    • Удаление очереди сообщений
    • Мониторинг процессов в очереди
  • Концепции
    • Обзор
    • Очереди сообщений
    • Сообщения
    • Дедупликация
    • Таймаут видимости
    • Long Polling
    • Что такое Dead Letter Queue (DLQ)
    • Отложенная доставка сообщений в очереди
    • Квоты и лимиты
    • Сравнение с Yandex Data Streams
  • Практические руководства
    • Конвертация видео в GIF на Python
  • Управление доступом
  • Правила тарификации
  • API Yandex Message Queue
    • Обзор
    • Queue
      • CreateQueue
      • DeleteQueue
      • GetQueueAttributes
      • GetQueueUrl
      • ListQueues
      • PurgeQueue
      • SetQueueAttributes
    • Message
      • ChangeMessageVisibility
      • ChangeMessageVisibilityBatch
      • DeleteMessage
      • DeleteMessageBatch
      • ReceiveMessage
      • SendMessage
      • SendMessageBatch
    • Типы данных
      • BatchResultErrorEntry
      • ChangeMessageVisibilityBatchRequestEntry
      • ChangeMessageVisibilityBatchResultEntry
      • DeleteMessageBatchRequestEntry
      • DeleteMessageBatchResultEntry
      • Message
      • MessageAttributeValue
      • SendMessageBatchRequestEntry
      • SendMessageBatchResultEntry
    • Стандартные ошибки
  • Публичные материалы
  • Вопросы и ответы
  1. Начало работы
  2. Примеры кода
  3. Terraform

Terraform

Статья создана
Yandex Cloud
,
улучшена
Dmitry A.

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

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

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

    При изменении файлов конфигураций 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.

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

    Language / Region
    Проект Яндекса
    © 2023 ООО «Яндекс.Облако»