【问题标题】:Setting up SQS message queue on AWS with Laravel使用 Laravel 在 AWS 上设置 SQS 消息队列
【发布时间】:2019-02-14 16:54:21
【问题描述】:

我们正在将现有应用程序从 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 laravel message-queue amazon-sqs beanstalkd


    【解决方案1】:

    抱歉回复晚了。我在谷歌搜索了同样的问题,我发现了这个问题。

    网址应该是 https://sqs.eu-west-2.amazonaws.com/your-account-id。网址后没有queue name。所以你需要从url中删除dev

    谢谢

    【讨论】:

      猜你喜欢
      • 2018-09-24
      • 1970-01-01
      • 2017-02-07
      • 1970-01-01
      • 2015-08-01
      • 2019-12-31
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多