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. Python

Пример использования Yandex Message Queue на Python

Статья создана
Yandex Cloud
Обновлена 7 марта 2025 г.
  • Установка
  • Подготовка к работе
  • Пример

Важно

Для работы с Yandex Message Queue из Python используется boto3 — комплект средств разработки для языка Python.

УстановкаУстановка

Для установки воспользуйтесь инструкциями в репозитории разработчика: boto3, boto.

Подготовка к работеПодготовка к работе

  1. Создайте сервисный аккаунт.
  2. Назначьте роль editor сервисному аккаунту.
  3. Создайте статический ключ доступа.

Задайте переменные окружения:

export AWS_ACCESS_KEY_ID="<идентификатор_ключа_доступа>"
export AWS_SECRET_ACCESS_KEY="<секретный_ключ>"

ПримерПример

В этом примере:

  1. Устанавливается соединение с Message Queue.
  2. Создается очередь с именем mq_example_boto3.
  3. В очередь передается сообщение с текстом boto3 sample message.
  4. Сообщение считывается из очереди и отображается в терминале.
  5. Полученное сообщение удаляется из очереди.
  6. Удаляется созданная очередь сообщений.
import boto3

def main():
    # Create client
    client = boto3.client(
        service_name='sqs',
        endpoint_url='https://message-queue.api.cloud.yandex.net',
        region_name='ru-central1'
    )

    # Create queue and get its url
    queue_url = client.create_queue(QueueName='mq_example_boto3').get('QueueUrl')
    print('Created queue url is "{}"'.format(queue_url))

    # Send message to queue
    client.send_message(
        QueueUrl=queue_url,
        MessageBody='boto3 sample message'
    )
    print('Successfully sent test message to queue')

    # Receive sent message
    messages = client.receive_message(
        QueueUrl=queue_url,
        MaxNumberOfMessages=10,
        VisibilityTimeout=60,
        WaitTimeSeconds=20
    ).get('Messages')
    for msg in messages:
        print('Received message: "{}"'.format(msg.get('Body')))

    # Delete processed messages
    for msg in messages:
        client.delete_message(
            QueueUrl=queue_url,
            ReceiptHandle=msg.get('ReceiptHandle')
        )
        print('Successfully deleted message by receipt handle "{}"'.format(msg.get('ReceiptHandle')))

    # Delete queue
    client.delete_queue(QueueUrl=queue_url)
    print('Successfully deleted queue')

if __name__ == '__main__':
    main()

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

Предыдущая
Поддерживаемые инструменты
Следующая
Node.js
Проект Яндекса
© 2025 ООО «Яндекс.Облако»