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

Создание новой очереди сообщений

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

Очереди сообщений Message Queue позволяют передавать сообщения между компонентами распределенных приложений. Передавать сообщения в очереди можно с помощью API или других поддерживаемых инструментов.

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

Консоль управления
AWS CLI
Terraform
  1. В консоли управления выберите каталог, в котором будет создана очередь.
  2. Выберите сервис Message Queue.
  3. Нажмите кнопку Создать очередь.
  4. В блоке Базовые параметры заполните поля:
    • Имя — укажите имя очереди.

      Имя может содержать строчные буквы латинского алфавита, цифры, дефисы и подчеркивания. Имя очереди FIFO должно заканчиваться суффиксом .fifo. Длина имени не должна превышать 80 символов.

    • Тип — выберите тип очереди Стандартная или FIFO.

    • Стандартный таймаут видимости — укажите стандартный таймаут видимости, который будет применяться к сообщениям в очереди после чтения получателем.

    • Срок хранения сообщений — укажите максимальный срок хранения сообщений в очереди.

    • Максимальный размер сообщения — укажите максимальный размер сообщения.

    • Задержка доставки — укажите время, в течение которого новое сообщение нельзя получить из очереди.

    • Время ожидания при получении сообщения — укажите время ожидания при получении сообщения.

  5. Чтобы перенаправлять недоставленные сообщения в очередь недоставленных сообщений (DLQ), в блоке Настройки очередей недоставленных сообщений:
    • Включите опцию Перенаправлять недоставленные сообщения.
    • Укажите Очередь недоставленных сообщений.
    • Задайте Максимальное количество попыток чтения.
  6. Нажмите кнопку Создать.
  1. Установите и настройте AWS CLI.

  2. Выполните в терминале команду:

    aws sqs create-queue \
      --queue-name <имя_очереди> \
      --endpoint <эндпоинт>
    

    Где:

    • --queue-name — имя создаваемой очереди, например sample-queue.
    • --endpoint — эндпоинт в значении https://message-queue.api.cloud.yandex.net/.

    Результат:

    {
        "QueueUrl": "https://message-queue.api.cloud.yandex.net/aoeaql9r10cd********/000000000000********/sample-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.

При достижении лимита на максимальное количество очередей, возникает ошибка Cannot create queue: Too many queues. Для увеличения лимита обратитесь в техническую поддержку.

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

Предыдущая
Настройка AWS CLI
Следующая
Отправка сообщений
Проект Яндекса
© 2025 ООО «Яндекс.Облако»