Настройка очереди сообщений SQS на AWS с помощью Laravel

Мы находимся в процессе переноса существующего приложения с Linode на AWS. В Linode мы использовали beanstalkd в качестве очереди сообщений, и теперь мы хотели попробовать SQS. Мы используем 2 очереди: по умолчанию и высокую. Наша конфигурация для beanstalkd была установлена ​​так:

'connections' => [

    'beanstalkd' => [
        'driver' => 'beanstalkd',
        'host' => env('BEANSTALKD_HOST', 'localhost'),
        'queue' => 'default',
        'retry_after' => 86400,
    ],

    'high' => [
        'driver' => 'beanstalkd',
        'host' => env('BEANSTALKD_HOST', 'localhost'),
        'queue' => 'high',
        'retry_after' => 86400,
    ],
],

Я сейчас пытаюсь сделать что-то подобное на AWS. Конфигурация теперь выглядит так:

'connections' => [
    'sqs' => [
        'driver' => 'sqs',
        'key' => env('AWS_KEY'),
        'secret' => env('AWS_SECRET'),
        'prefix' => env('AWS_SQS_URL'),
        'queue' => 'default',
        'region' => env('AWS_REGION'),
    ],

    'high' => [
        'driver' => 'sqs',
        'key' => env('AWS_KEY'),
        'secret' => env('AWS_SECRET'),
        'prefix' => env('AWS_SQS_URL'),
        'queue' => 'high',
        'region' => env('AWS_REGION'),
    ],        
],

Я создал очередь на AWS под названием «dev», и у меня есть этот URL: https://sqs.eu-west-2.amazonaws.com/ACCOUNT-ID/dev. Я получаю следующую ошибку:

Error executing "ReceiveMessage" on "https://sqs.eu-west-2.amazonaws.com/ACCOUNT-ID/dev/high"; AWS HTTP error: Client error: `POST https://sqs.eu-west-2.amazonaws.com/ACCOUNT-ID/dev/high` resulted in a `400 Bad Request` response:
<?xml version = "1.0"?><ErrorResponse xmlns = "http://queue.amazonaws.com/doc/2012-11-05/"><Error><Type>Sender</Type><Code>A (truncated...)
 AWS.SimpleQueueService.NonExistentQueue (client): The specified queue does not exist for this wsdl version. - <?xml version = "1.0"?><ErrorResponse xmlns = "http://queue.amazonaws.com/doc/2012-11-05/"><Error><Type>Sender</Type><Code>AWS.SimpleQueueService.NonExistentQueue</Code><Message>The specified queue does not exist for this wsdl version.</Message><Detail/></Error><RequestId>REQUEST-ID</RequestId></ErrorResponse>

Он говорит: «Указанная очередь не существует». Должен ли я создавать другую очередь в AWS или есть проблема в моей конфигурации?

Конфигурация супервизора:

[program:worker]
command=php /home/dev/default/current/artisan queue:work sqs --sleep=0 --daemon --quiet --timeout=0 --delay=3 --tries=3 --env=development --queue = "high,default"

process_name=%(program_name)s_%(process_num)02d
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=dev
numprocs=8
stdout_logfile=
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
1 968
1

Ответы 1

Извините за задержку с ответом. Я искал в Google ту же проблему и нашел этот вопрос.

URL должен быть https://sqs.eu-west-2.amazonaws.com/your-account-id. нет queue name после URL. Итак, вам нужно удалить dev из URL-адреса.

Спасибо

Другие вопросы по теме