私はAmazon SDK for PHPバージョン3.44(2017-11-30リリース)を使用しています。 Amazon SQSアカウントに接続し、listQueues()、getQueueUrl()、getQueueAttributes()、およびreceiveMessage()コマンドを正常に実行できます。ただし、sendMessage()コマンドは常に次のメッセージで失敗します。aws-sdk-php v3.44がSQS FIFOキューにsendMessageを送信できません:MessageGroupIdがありませんか?
この要求には、MessageGroupIdパラメータが含まれている必要があります。
このパラメータは、間違いなく含まれています。私が使用しているaws-sdk-php APIのバージョンは問題ではないようですが、このメッセージは戻ってきます。ここに私のコードは次のとおりです。
$queue = SqsClient::factory([
'profile' => $profile,
'region' => $region,
'version' => '2012-11-05',
'credentials' => $credentials,
]);
$queue_list = $queue->listQueues(); // ok
$url = $queue->getQueueUrl(['QueueName'=>$queue_name]); // ok
$received = $queue->receiveMessage(['QueueUrl'=>$url->get('QueueUrl')]); // ok
$response = $queue->sendMessage([
'MessageBody' => $message,
'MessageGroupId' => $message_group_id,
'QueueUrl' => $url->get('QueueUrl'),
]); // fails with message indicating MessageGroupId is missing
私はPHP SDKを通じてアマゾンSQS FIFOキューにメッセージを送信し、これが不可能であると信じ始めていますの作業例を探していくつかの時間を費やしています。誰もがaws-sdk-phpライブラリをSQS FIFOキューで動作させることができましたか?
'$ message_group_id'に確実に入力されていますか?私の考えはおそらくnullはパラメータなしと解釈されますか? – mulquin
はい、リテラルとスカラー変数を使用してMessageGroupIdの値を変更しました。 – hanmari