LaravelのキューでSQSを使う設定


設定方法

.envファイルの以下を環境変数を指定する。

.env
QUEUE_DRIVER=sqs

AWS_ACCESS_KEY_ID=AAAAAAAAAAAAAAAAAAAA
AWS_SECRET_ACCESS_KEY=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
AWS_SQS_PREFIX=https://sqs.ap-northeast-1.amazonaws.com/000000000000
AWS_SQS_QUEUE=QueueName
AWS_SQS_REGION=ap-northeast-1

AWS_SQS_PREFIXは作成したキューのPrefixを指定。
AWS_SQS_QUEUEは作成したキューの名前を指定。
AWS_SQS_REGIONは自分のリージョン名を指定。

AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYについてはTOPの右上のセキュリティ認証情報からアクセスキー新しいアクセスキーの作成から作成する。


これらの環境変数はこのファイルで使用されています。
一時的にsyncからSQSに変更したい場合はこちらを直接変更しても良いかと思います。

config/queue.php
'sqs' => [
    'driver' => 'sqs',
    'key' => getenv('AWS_ACCESS_KEY_ID'),
    'secret' => getenv('AWS_SECRET_ACCESS_KEY'),
    'prefix' => env('AWS_SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
    'queue' => env('AWS_SQS_QUEUE', 'your-queue-name'),
    'region' => env('AWS_SQS_REGION', 'us-east-1'),
],

その他

syncと違ってSQSの場合は以下のコマンドでワーカーを動かす必要があります。

php artisan queue:work