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 |
Могут возникать ошибки, общие для всех методов.