Трябва да внедря изпращане на съобщения до SQS с атрибути. Основният текст на съобщението се качва добре, но имам проблем с атрибутите. Атрибутите на съобщението изискват асоциативен масив с име на атрибута, тип данни и стойност. Получих този вид грешка:
AWS HTTP грешка: Грешка на клиента: 400 InvalidParameterValue (клиент): Заявката трябва да съдържа непразно име на атрибут на съобщението.
функцията за изпращане на съобщения:
public function uploadMessage(DataTransferObjectInterface $dataTransferObject)
{
$command = $this->client->getCommand(
'SendMessage',
[
'QueueUrl' => $this->queueUrl->value(),
'MessageBody' => $dataTransferObject->getBody()->value(),
'MessageAttributes' => $dataTransferObject->getAttributes(),
]
);
$this->client->execute($command);
}
функцията getAttributes() връща масив $attributes
& теста, при който изпълнявам кода
$attributes = [
'TestName' =>
[
'Name'=>'test',
'DataType' => 'string',
'Value' => 'string',
]
];
$age = array("Peter" => "35", "Ben" => "9", "Joe" => "43");
$json = json_encode($age);
$body = Json::get($json);
$dto = new DataTransferObject($attributes, $body);
$uploader = new SQSManager($sqsClient, $queueUrl);
$uploader->uploadMessage($dto);
Как трябва да изглежда масивът $attributes?