SymfonyアプリケーションからElasticMQに接続する

前回の続き。

www.tomcky.net

設定を書き換える

app/config/config.yml の設定はダミーで良いので書き換えておく。

aws:
    version: 'latest'
    region: 'region-dummy'
    credentials:
        key: 'key-dummy'
        secret: 'secret-dummy'

QueueUrlを書き換える

前回 aws-cli で作ったキューのQueueUrlを指定する。
サンプルコードは ここ をベースにしている。

<?php
// ...
use Symfony\Component\HttpFoundation\Response;

// ...
public function indexAction(Request $request)
{
    $sqs = $this->container->get('aws.sqs');
    $sqs->sendMessage([
        'QueueUrl' => 'http://localhost:9324/queue/test', // ここのurlを書き換え
        'MessageBody' => 'Test Message '.date('H:i:s'),
    ]);
    // ...
}

/**
 * @Route("/receive-sqs", name="receive_sqs")
 */
public function receiveSqsAction()
{
    // メッセージ取得用のアクションも作っておく
    $sqs = $this->container->get('aws.sqs');
    $result = $sqs->receiveMessage([
        'QueueUrl' => 'http://localhost:9324/queue/test',
    ]);

    dump($result);

    return new Response('Receive SQS!');
}

http://127.0.0.1:8000/ にアクセスするとメッセージを送信。
送信後に http://127.0.0.1:8000/receive-sqs にアクセスすると送信したメッセージを受信できる。