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

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

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

С помощью AsyncAws можно управлять очередями сообщений в Message Queue, отправлять и принимать сообщения.

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

Установите библиотеку AsyncAws:

composer require async-aws/sqs ^1.9

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

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

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

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

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

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

  1. Устанавливается соединение с Message Queue.
  2. Создается очередь сообщений с именем mq_php_sdk_example.
  3. В очередь передается сообщение с текстом Test message.
  4. Сообщение считывается из очереди и отображается в терминале.
  5. Удаляется созданная очередь сообщений.
<?php

use AsyncAws\Sqs\SqsClient;

require __DIR__ . '/vendor/autoload.php';


$mq = new SqsClient([
    'region' => 'ru-central1',
    'endpoint' => 'https://message-queue.api.cloud.yandex.net',
]);

$result = $mq->createQueue([
    'QueueName' => 'mq_php_sdk_example',
]);

$queueUrl = $result->getQueueUrl();
print('Queue created, URL: ' . $queueUrl . PHP_EOL);

$result = $mq->sendMessage([
    'QueueUrl' => $queueUrl,
    'MessageBody' => 'Test message',
]);

print("Message sent, ID: " . $result->getMessageId() . PHP_EOL);

$result = $mq->receiveMessage([
    'QueueUrl' => $queueUrl,
    'WaitTimeSeconds' => 10,
]);

foreach ($result->getMessages() as $msg) {
    print('Message received:' . PHP_EOL);
    print('ID: ' . $msg->getMessageId() . PHP_EOL);
    print('Body: ' . $msg->getBody() . PHP_EOL);

    $mq->deleteMessage([
        'QueueUrl' => $queueUrl,
        'ReceiptHandle' => $msg->getReceiptHandle(),
    ]);
}

$result = $mq->deleteQueue([
    'QueueUrl' => $queueUrl,
]);

print('Queue deleted' . PHP_EOL);

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

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