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

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

Статья создана
Yandex.Cloud

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

    Консоль управления
    AWS CLI
    Terraform
    1. В консоли управления выберите каталог, в котором будет создана очередь.

    2. Откройте раздел Message Queue.

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

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

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

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

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

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

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

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

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

    11. Чтобы перенаправлять недоставленные сообщения в очередь недоставленных сообщений (DLQ):

      • Включите опцию Перенаправлять недоставленные сообщения.
      • Укажите Очередь недоставленных сообщений.
      • Задайте Максимальное количество попыток чтения.
    12. Нажмите кнопку Создать.

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

    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 и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией Mozilla Public License.

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

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

    Если у вас ещё нет 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 / Region
    © 2022 ООО «Яндекс.Облако»