PutRecords
Записывает несколько сообщений в поток данных за один вызов.
Метод позволяет достичь большей производительности по сравнению с PutRecord. В одном запросе можно передать до 500 сообщений. Каждое сообщение в запросе может иметь размер до 1 МБ. Весь запрос не может превышать 5 МБ, включая ключи сегментов.
В запросе указывается имя потока и массив сообщений Records
. Для каждого элемента массива указывается ключ сегмента и объект, содержащий данные пользователя в кодировке Base64. Для явного определения хеша ключа сегмента, в который будут записаны сообщения, используется параметр ExplicitHashKey
.
Возвращает массив элементов с данными о записанных сообщениях. Каждому элементу возвращаемого массива соответствует элемент отправленного. Элементы в обоих массивах упорядочены одинаково. Массив ответа включает данные как успешно, так и неуспешно обработанных сообщений. Сбой записи одного сообщения не останавливает обработку последующих.
PutRecords
гарантирует, что сообщения будут записаны в том же порядке, в каком они находятся в отправленном массиве.
Данные об успешно обработанном сообщении содержат идентификатор сегмента (ShardId
), в который было записано сообщение, и порядковый номер сообщения (SequenceNumber
).
Данные о неуспешно обработанным сообщением содержат тип ошибки (ErrorCode
) и сообщение об ошибке (ErrorMessage
). Тип ошибки может иметь значение ProvisionedThroughputExceededException
или InternalFailure
. Для типа ProvisionedThroughputExceededException
сообщение об ошибке содержит идентификатор учетной записи, имя потока и идентификатор сегмента сообщения, которое не удалось обработать.
Запрос
Запрос содержит данные в формате JSON.
{
"Records": [{
"Data": blob,
"ExplicitHashKey": "string",
"PartitionKey": "string"
}],
"StreamName": "string"
}
Параметры запроса
Параметр | Описание |
---|---|
Records |
Сообщения для записи. Тип Массив объектов PutRecordsRequestEntry Количество элементов: 1 -500 Обязательный: Да |
StreamName |
Имя потока данных. Тип: Строка Размер: 1 -128 символов.Возможные значения: [a-zA-Z][a-zA-Z0-9-]+*(?<!-)$ Обязательный: Да |
Ответ
В случае успеха возвращаются HTTP-ответ с кодом 200 и данные в формате JSON.
{
"EncryptionType": "string",
"FailedRecordCount": number,
"Records": [{
"ErrorCode": "string",
"ErrorMessage": "string",
"SequenceNumber": "string",
"ShardId": "string"
}]
}
Параметры ответа
Параметр | Описание |
---|---|
EncryptionType |
Тип шифрования. Тип: Строка Возможные значения: NONE Обязательный: Да |
FailedRecordCount |
Количество необработанных сообщений. |
Records |
Информация о результатах обработки сообщений. Тип Массив объектов PutRecordsRequestEntry Количество элементов: 1 -500 Обязательный: Да |
Ошибки
Параметр | Описание | Код HTTP |
---|---|---|
InvalidArgumentException |
Недопустимый аргумент. Дополнительные сведения смотрите в сообщении об ошибке. | 400 |
ResourceNotFoundException |
Запрошенный ресурс не найден. | 400 |
Могут возникать ошибки, общие для всех методов.