Configure Your Laravel Queues with AWS SQS

Hi Artisan

In this brand new tutorial i am going to show you laravel sqs example. I am working on a Laravel application and somedays ago, I had to migrate my one client project queue driver on a project from Redis to SQS.

In internet there is no related article like Laravel AWS SQS configure and setup. I'm writing this article. If you don't know about how to setup and configure laravel queue with asw sqs then this example tutorial is for you. I will show you step by step guide so that you can understand it clearly. So let's see laravel sqs config example and steps. You have to maintain some steps to complete it like below:

Prerequisites

  • Your existing Laravel application
  • Your AWS account
  • Clear understanding of Laravel queues
  • Some bit of AWS knowledge

 

Step 1: Install AWS sdk

In this step we have to install aws sdk via composer command. So run the following command to install the SDK:

composer require aws/aws-sdk-php

 

Step 2: Generate AWS keys

Now you need to click on this link to watch the guide for that how to generate aws keys. When we get to the point where we need to set permissions, search for AmazonSQSFullAccess and select it.

 

Step 3:  Create a Queue

Now in this step head over to your SQS console, click on create queue.

 

Now in this step look out of the box, Laravel dispatches jobs to the default queue, therefore, your first queue should be named default on SQS.

 

If you would be dispatching to a queue other than default, the queue name should be the same as the queue you're dispatching to.

 

laravel-setup-aws-sqs

 

Now after doing that leave everything else at its default, scroll to the bottom and click on the create queue button.

 

Step 4: Set .env variables

Open .env with your preferred text editor. Add set your AWS keys in the following format:

.env

AWS_ACCESS_KEY_ID=YOUR_AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION=YOUR_SQS_REGION

 

Remember to replace YOUR_* with the right credentials. Next, set your SQS Prefix:

 

Credentials
SQS_PREFIX=https://sqs.< your-region >.amazonaws.com/< your-account-id >

 

Finally, change the queue driver to SQS.

QUEUE_CONNECTION=sqs

 

Now all are set to go. So run the following command to start your queue worker:

php artisan queue:work sqs

 

Recommended: Laravel 8.x Queues Example with Redis and Horizon

 

This post is inspired from this original article from Michael Okoh and the content link is Configuring Laravel Queues with AWS SQS Hope it can help you.

 

Facebook Github
A web enthusiastic, a self-motivated full-stack software engineer from Dhaka, Bangladesh with experience in developing applications using Laravel , React and Vue js