我正试图通过SNS从Amazon SES获得电子邮件回复(反弹,投诉和交付).在Amazon SQS控制台上,我看到该消息已经在队列中,因此我确信Amazon上的结构设置是正确的.
然后,使用Laravel 5.5,在official guide之后,我建立了一个侦听SQS的队列.我将跳过调度作业的部分跳到队列中,因为这将由SNS完成.在作业处理程序中,为简单起见,我只是var_dump收到的内容.这个工作看起来像这样:
public function handle($testing_message)
{
var_dump($testing_message);
echo "testing handle!\n";
}
该配置看起来像这样:
'sqs' => [
'driver' => 'sqs', //mainly to show that I am using the correct driver
'key' => env('SQS_KEY', 'your-public-key'),
'secret' => env('SQS_SECRET', 'your-secret-key'),
'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
'queue' => env('SQS_QUEUE', 'your-queue-name'),
'region' => env('SQS_REGION', 'us-east-1'),
],
为安全起见,实际值隐藏在.env中.然后我跑:
composer require aws/aws-sdk-php ~3.0
php artisan config:cache
php artisan queue:listen
但是,该过程只是坐在那里运行,没有响应,也没有错误消息.
我想问一下:
>我如何知道与队列的连接是否正确?
>如果连接正确,为什么SQS没有返回? (我确信在亚马逊控制台的SQS队列中已有消息)