Dynamodb aws Исключение недопустимого аргумента

Я застрял на этом в течение нескольких дней, и любая помощь была бы отличной.

Я пытаюсь передать данные из CSV-файлов в Dynamodb с помощью SDK для PHP. Я читаю из файла CSV и записываю записи в базу данных, используя batchwrite для вставки записей. Я вставляю все как строку. Он вставляет около 4000 записей, а затем выдает следующую ошибку:

PHP Fatal error:  Uncaught exception 
'Guzzle\Common\Exception\InvalidArgumentException' with message 'Invalid 
resource type' in /home/ubuntu/aws-php-
sample/vendor/guzzle/guzzle/src/Guzzle/Http/EntityBody.php:50

Что означает эта ошибка и почему я ее получаю?

Это потому, что в тех наборах записей, которые я пытаюсь вставить, есть некоторые символы, которые не принимаются динамо?


person ATD    schedule 22.05.2015    source источник


Ответы (2)


Вы получаете ошибку, когда Guzzle, базовая HTTP-библиотека SDK, пытается создать тело запроса. В какой-то момент вашего процесса данные тела запроса, передаваемые в Guzzle, недействительны (возможно, NULL), но без дополнительной информации трудно определить, почему.

Если вы можете выяснить, в какой момент он дает сбой или с какими данными, вам следует открыть задачу на AWS SDK для PHP с этой информацией и кодом, который вы используете. Не забудьте также ознакомиться со страницей Limits DynamoDB в их документации, что объясняет ограничения на данные.

person Jeremy Lindblom    schedule 02.06.2015
comment
Да, ты прав. Я снова переустановил жрать, и это сработало. Спасибо! - person ATD; 04.06.2015

Получил аналогичную проблему. Я заметил, что динамо плохо работает с персонажами, отличными от utf-8. Поэтому мне пришлось закодировать их в utf-8 перед сохранением в сеансах.

Убедитесь, что вы проверяете, что вы храните, если эта ошибка иногда возникает

person Quibski    schedule 29.06.2015