Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Решения
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Message Queue
  • Начало работы
    • Быстрый старт
    • Поддерживаемые инструменты
    • Примеры кода
      • Python
      • Node.js
      • PHP
      • Celery
      • JMS
      • Laravel
      • Terraform
  • Пошаговые инструкции
    • Обзор
    • Создание новой очереди сообщений
    • Отправка сообщений
    • Прием и удаление сообщений
    • Удаление очереди сообщений
  • Концепции
    • Обзор
    • Очереди сообщений
    • Сообщения
    • Дедупликация
    • Таймаут видимости
    • Long Polling
    • Dead Letter Queue
    • Отложенная доставка сообщений в очереди
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Yandex Message Queue API
    • Обзор
    • 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. Создание новой очереди сообщений

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

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

    Консоль управления
    AWS CLI
    Terraform
    1. Откройте раздел Message Queue.

    2. Нажмите кнопку Создать очередь.

    3. Укажите имя очереди.

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

    4. Выберите тип очереди Стандартная или FIFO.

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

    6. Укажите срок хранения сообщений.

    7. Укажите максимальный размер сообщения.

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

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

    10. Нажмите кнопку Создать очередь.

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

    $ aws sqs create-queue --queue-name sample-queue \
                --endpoint https://message-queue.api.cloud.yandex.net/
    {
        "QueueUrl": "https://message-queue.api.cloud.yandex.net/aoeaql9r10cd9cfue7v6/000000000000002n034r/sample-queue"
    }
    

    Terraform позволяет быстро создать облачную инфраструктуру в Yandex.Cloud. Состав инфраструктуры определяется с помощью конфигурационных файлов, в которых указываются требуемые облачные ресурсы и их параметры.

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

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

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

      • 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 — секретная часть статического ключа доступа. Если секретный ключ не задан в конфигурации очереди, будет использоваться ключ из конфигурации провайдера.

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

      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, см. в документации провайдера.

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

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

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

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

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

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

    Language
    Вакансии
    Политика конфиденциальности
    Условия использования
    © 2021 ООО «Яндекс.Облако»