繁体   English   中英

如何使用Laravel 5从SQS接收Amazon SNS消息?

[英]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

但是,该过程只是坐在那里运行,没有响​​应,也没有错误消息。

我想问问:

  1. 我如何知道与队列的连接是否正确?
  2. 如果连接正确,为什么SQS没有返回? (我确信在亚马逊控制台的SQS队列中已有消息)

我不确定你为什么使用队列而不是简单的https端点。 这消除了很多复杂性,不需要轮询。

有一个简单的PHP示例 ,显示了所需的内容。

最大的问题是,在SNS开始向您的终端发送POST请求之前,您需要能够确认SNS订阅。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM