[英]How to use Laravel 5 to receive Amazon SNS message from SQS?
我正在尝试通过SNS从Amazon SES获取电子邮件回复(退回,投诉和投放)。 在Amazon SQS控制台上,我看到消息已经在队列中,因此我确信Amazon上的结构设置是正确的。
然后,按照官方指南使用Laravel 5.5,我建立了一个侦听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
但是,该过程只是坐在那里运行,没有响应,也没有错误消息。
我想问问:
我不确定你为什么使用队列而不是简单的https端点。 这消除了很多复杂性,不需要轮询。
有一个简单的PHP示例 ,显示了所需的内容。
最大的问题是,在SNS开始向您的终端发送POST请求之前,您需要能够确认SNS订阅。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.