在我的客户机服务器中,我使用Artisan::queue向AWS发送队列。在.env文件中,我配置了QUEUE_DRIVER=sqs,在config/queue.php文件中配置了如下所示。
'default' => env('QUEUE_DRIVER', 'sqs'),
'sqs' => [
'driver' => 'sqs',
'key' => 'MY_AWS_KEY',
'secret' => 'MY_AWS_SECRET',
'prefix' => 'https://sqs.us-west-2.amazonaws.com/1234567890',
'queue' => 'queue-name',
'region' => 'us-west-2',
],现在,当我从Controller调用Artisan::queue时,我看到消息是在SQS中创建的。我可以在AWS控制台中看到它们,它们如下所示。
{"job":"Illuminate\\Foundation\\Console\\QueuedJob",
"data":[{"some_data_key":"some_data_value"}]}到目前为止一切都很好。但是我的工作层从不接收数据。我已经在Worker tier>Configuration>Worker中配置了以下详细信息:
Worker queue: queue-name
Worker queue URL: https://sqs.us-west-2.amazonaws.com/1234567890/queue-name
HTTP path: /worker在这里,我的问题是我总是在/worker地址上得到404个错误。一旦发送消息,我就会在AWS SQS控制台中的“消息在飞行中”中看到一个计数,当我检查Worker层的日志文件时,我会看到
`127.0.0.1 (-) - - [28/Jun/2017:08:37:10 +0000] "POST /worker HTTP/1.1" 404 204 "-" "aws-sqsd/2.3"`我检查了对/worker的post请求是否返回错误,但它在不同的服务器上工作正常(我无法签入工作层,因为我没有它的URL地址)。此时,员工层服务器只有
Route::match(['GET', 'POST'], 'worker', function () {
return 200;
});在routes/web.php中查看POST请求是否可以到达那里。
我做错什么了?我错过了什么吗?还是用错误的方式实现它?
发布于 2017-08-24 09:09:24
如果您正在使用您的工作环境中弹性豆茎,请确保您
配置->软件配置->容器选项->文档根
被设置为
/public
也可以检查您的路由提供者,比如
app/Providers/RouteServiceProvider.php
检查map()函数,查看是否正在创建指向适当文件的http路由。可以引用多个路由文件,如web.php和api.php等。
https://stackoverflow.com/questions/44798429
复制相似问题