PHP
sqs
que

[編集中]PHPでSQSにキューデータを送る


はじめに

編集中ですが、実行に成功したコードだけでも共有しておきます。


事前に

composerでSDKをインストール

$ composer require aws/aws-sdk-php


今回のコード

<?php

require 'vendor/autoload.php'; //autoload.php参照
use Aws\Sqs\SqsClient;
use Aws\Exception\AwsException;
define('QUEUE_URL', 'https://sqs.ap-northeast-1.amazonaws.com/0000000/XXXXXXX'); //ここにURL

try{
$config = [
'credentials' => [ //アクセスキーとシークレットキーは一つの配列にまとめる必要がある。
'key' => 'XXXXXXXXXXXXXX', //ここにアクセスキー
'secret' => 'XXXXXXXXXXXXXX', //ここにシークレットキー
],
'region' => 'ap-northeast-1', //ここにリージョン
'version' => 'latest',
];
//SqsClientオブジェクトを作成 ここに送りたいものを入れる
$client = SqsClient::factory($config);
$params = [
'DelaySeconds' => 0,
'MessageAttributes' => [
'Title' => [
'DataType' => 'String',
'StringValue' => 'Amazon SQS Test',
],
],
'MessageBody' => 'This is Amazon SQS Test',
'QueueUrl' => QUEUE_URL, //上で定数にしたURLね
];
$result = $client->sendMessage($params);

var_dump($result); //結果確認用

} catch(AwsException $e){ //いつものエラー処理
var_dump($e->getMessage());
}

アクセスキーとシークレットキー(認証情報やcredential情報とも呼ばれている)の取得方法はこちらをご参照ください。