Spec-Zone.ru › AWS CLI v2

[ aws . kinesis ]

put-records

Описание

Запись нескольких записей данных в поток данных Kinesis в одном вызове (также называется PutRecords запросом). Используйте эту операцию для отправки данных в поток для обработки и поглощения данных.

Примечание

При вызове этого API необходимо использовать параметр StreamARN или StreamName, или оба. Рекомендуется использовать входной параметр StreamARN при вызове этого API.

Каждый PutRecords запрос может поддерживать до 500 записей. Каждая запись в запросе может быть до 1 МБ, до лимита в 5 МБ для всего запроса, включая ключи разделения. Каждый сегмент может поддерживать записи до 1000 записей в секунду, до максимального общего объёма данных для записи 1 МБ в секунду.

Необходимо указать имя потока, который захватывает, хранит и транспортирует данные; и массив запрошенных Records, где каждая запись в массиве требует ключ разделения и блок данных. Ограничение размера записи относится к общему размеру ключа разделения и блока данных.

Блок данных может быть любого типа данных; например, сегмент из файла журнала, географические/локационные данные, данные о кликах с веб-сайта и так далее.

Ключ разделения используется потоками данных Kinesis как вход для хеш-функции, которая сопоставляет ключ разделения и связанные данные со специфическим сегментом. Функция хеширования MD5 используется для сопоставления ключей разделения с 128-битными целочисленными значениями и для сопоставления связанных записей данных с сегментами. В результате этого механизма хеширования все записи данных с одинаковым ключом разделения отображаются на один и тот же сегмент внутри потока. Дополнительную информацию см. в разделе Добавление данных в поток в руководстве разработчика Amazon Kinesis Data Streams.

Каждая запись в массиве Records может включать необязательный параметр, ExplicitHashKey, который переопределяет сопоставление ключа разделения с сегментом. Этот параметр позволяет производителю данных явно определить сегмент, где хранится запись. Дополнительную информацию см. в разделе Добавление нескольких записей с PutRecords в руководстве разработчика Amazon Kinesis Data Streams.

PutRecords ответ включает массив ответов Records. Каждая запись в массиве ответа напрямую соотносится с записью в массиве запроса в естественном порядке, сверху вниз запроса и ответа. Массив ответов Records всегда включает то же количество записей, что и массив запроса.

Массив ответов Records включает как успешно, так и неуспешно обработанные записи. Потоки данных Kinesis пытаются обработать все записи в каждом PutRecords запросе. Ошибка одной записи не останавливает обработку последующих записей. В результате PutRecords не гарантирует порядок записей. Если необходимо читать записи в том же порядке, в котором они записываются в поток, используйте PutRecord вместо PutRecords и записывайте в один и тот же сегмент.

Успешно обработанная запись включает значения ShardId и SequenceNumber. Параметр ShardId идентифицирует сегмент в потоке, где хранится запись. Параметр SequenceNumber — это идентификатор, назначенный записи put, уникальный для всех записей в потоке.

Неуспешно обработанная запись включает значения ErrorCode и ErrorMessage. ErrorCode отражает тип ошибки и может иметь одно из следующих значений: ProvisionedThroughputExceededException или InternalFailure. ErrorMessage предоставляет более подробную информацию об исключении ProvisionedThroughputExceededException, включая идентификатор учетной записи, имя потока и идентификатор сегмента записи, которая была заблокирована. Дополнительную информацию о частично успешных ответах см. в разделе Добавление нескольких записей с PutRecords в руководстве разработчика Amazon Kinesis Data Streams.

Предупреждение

После записи записи в поток вы не можете изменить эту запись или её порядок в потоке.

По умолчанию записи данных доступны в течение 24 часов с момента их добавления в поток. Вы можете использовать IncreaseStreamRetentionPeriod или DecreaseStreamRetentionPeriod для изменения этого периода хранения.

См. также: Документация API AWS

Синтаксис

  put-records
--records <value>
[--stream-name <value>]
[--stream-arn <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]

Параметры

--records (список)

Записи, связанные с запросом.

(структура)

Представляет выходные данные для PutRecords.

Data -> (блок данных)

Блок данных для записи в запись, закодированный в base64 при сериализации блока. Когда к размеру ключа разделения добавляется блок данных (данные до кодирования в base64), общий размер не должен превышать максимальный размер записи (1 МБ).

ExplicitHashKey -> (строка)

Значение хеша, используемое для явного определения сегмента, которому назначается запись данных, путем переопределения хеширования ключа разделения.

PartitionKey -> (строка)

Определяет, к какому сегменту в потоке назначается запись данных. Ключи разделения — это строки Unicode с максимальной длиной ограничения 256 символов для каждого ключа. Amazon Kinesis Data Streams использует ключ разделения в качестве входных данных для хеш-функции, которая сопоставляет ключ разделения и связанные данные со специфическим сегментом. В частности, используется хеш-функция MD5 для сопоставления ключей разделения с 128-битными целочисленными значениями и для сопоставления связанных записей данных с сегментами. В результате этого механизма хеширования все записи данных с одинаковым ключом разделения отображаются на один и тот же сегмент в пределах потока.

Упрощенный синтаксис:

Data=blob,ExplicitHashKey=string,PartitionKey=string ...

Синтаксис JSON:

[
  {
    "Data": blob,
    "ExplicitHashKey": "string",
    "PartitionKey": "string"
  }
  ...
]

--stream-name (строка)

Имя потока, связанное с запросом.

--stream-arn (строка)

ARN потока.

--cli-input-json | --cli-input-yaml (строка) Считывает аргументы из предоставленной строки JSON. Строка JSON следует формату, предоставленному --generate-cli-skeleton. Если на командной строке предоставлены другие аргументы, эти значения переопределят значения, предоставленные в JSON. Передавать произвольные двоичные значения с помощью предоставленного значения JSON невозможно, так как строка будет взята буквально. Это не может быть указано вместе с --cli-input-yaml.

--generate-cli-skeleton (строка) Выводит каркас JSON в стандартный вывод без отправки запроса API. Если предоставлено значение без значения или значение input, выводится пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, он выведет пример входного YAML, который можно использовать с --cli-input-yaml. Если предоставлено значение output, он проверяет входные данные команды и возвращает пример выходного JSON для этой команды. Сгенерированный каркас JSON не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном каркасе JSON.

Глобальные параметры

--debug (логическое значение)

Включить отладку.

--endpoint-url (строка)

Переопределить URL по умолчанию команды заданным URL.

--no-verify-ssl (логическое значение)

По умолчанию AWS CLI использует SSL при общении с сервисами AWS. Для каждого подключения SSL AWS CLI будет проверять сертификаты SSL. Этот параметр переопределяет поведение проверки сертификатов SSL по умолчанию.

--no-paginate (логическое значение)

Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.

--output (строка)

Стиль форматирования вывода команды.

  • json
  • текст
  • таблица
  • yaml
  • yaml-поток

--query (строка)

Запрос JMESPath для фильтрации данных ответа.

--profile (строка)

Использовать определенный профиль из файла учетных данных.

--region (строка)

Использовать определенный регион. Переопределяет настройки конфигурации/среды.

--version (строка)

Показать версию этого инструмента.

--color (строка)

Включить/выключить цветной вывод.

  • включить
  • выключить
  • автоматически

--no-sign-request (логическое значение)

Не подписывать запросы. Учетные данные не будут загружаться, если этот аргумент предоставлен.

--ca-bundle (строка)

Файл сертификатов CA для проверки сертификатов SSL. Переопределяет настройки конфигурации/среды.

--cli-read-timeout (целое число)

Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокирующим и не будет ограничено по времени. Значение по умолчанию — 60 секунд.

--cli-connect-timeout (целое число)

Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет блокирующим и не будет ограничено по времени. Значение по умолчанию — 60 секунд.

--cli-binary-format (строка)

Стиль форматирования для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как строка, закодированная в base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны передаваться буквально. При предоставлении содержимого из файла, соответствующего двоичному блоку, fileb:// всегда будет обрабатываться как двоичный и использовать содержимое файла непосредственно независимо от настройки cli-binary-format. При использовании file:// содержимое файла необходимо правильно отформатировать для конфигурированного cli-binary-format.

  • base64
  • raw-in-base64-out

--no-cli-pager (логическое значение)

Отключить пэйджер cli для вывода.

--cli-auto-prompt (логическое значение)

Автоматически запрашивать параметры входных данных CLI.

--no-cli-auto-prompt (логическое значение)

Отключить автоматическое запроса параметров входных данных CLI.

Примеры

Примечание

Для использования следующих примеров необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы с AWS CLI в руководстве пользователя AWS CLI.

Если не указано иное, все примеры используют правила цитирования, подобные unix-подобным. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. См. использование кавычек со строками в руководстве пользователя AWS CLI.

Для записи нескольких записей в поток данных

В следующем put-records примере записывается запись данных с указанным ключом разделения и еще одна запись данных с другим ключом разделения в одном вызове.

aws kinesis put-records \
    --stream-name samplestream \
    --records Data=blob1,PartitionKey=partitionkey1 Data=blob2,PartitionKey=partitionkey2

Вывод:

{
    "FailedRecordCount": 0,
    "Records": [
        {
            "SequenceNumber": "49600883331171471519674795588238531498465399900093808706",
            "ShardId": "shardId-000000000004"
        },
        {
            "SequenceNumber": "49600902273357540915989931256902715169698037101720764562",
            "ShardId": "shardId-000000000009"
        }
    ],
    "EncryptionType": "KMS"
}

Дополнительную информацию см. в разделе Разработка производителей с использованием API Amazon Kinesis Data Streams с AWS SDK для Java в руководстве разработчика Amazon Kinesis Data Streams.

Вывод

FailedRecordCount -> (целое число)

Количество неуспешно обработанных записей в запросе PutRecords.

Records -> (список)

Массив результатов обработки записей, успешно и неуспешно обработанных. Запись, успешно добавленная в поток, содержит SequenceNumber и ShardId в результате. Запись, не добавленная в поток, содержит ErrorCode и ErrorMessage в результате.

(структура)

Представляет результат обработки отдельной записи из запроса PutRecords. Запись, успешно добавленная в поток, содержит SequenceNumber и ShardId в результате. Запись, не добавленная в поток, содержит ErrorCode и ErrorMessage в результате.

SequenceNumber -> (строка)

Номер последовательности для результата отдельной записи.

ShardId -> (строка)

Идентификатор раздела для результата отдельной записи.

ErrorCode -> (строка)

Код ошибки для результата отдельной записи. ErrorCodes может быть либо ProvisionedThroughputExceededException, либо InternalFailure.

ErrorMessage -> (строка)

Сообщение об ошибке для результата отдельной записи. Значение ErrorCode со значением ProvisionedThroughputExceededException содержит сообщение об ошибке, включающее идентификатор учетной записи, имя потока и идентификатор раздела. Значение ErrorCode со значением InternalFailure содержит сообщение об ошибке "Internal Service Failure".

EncryptionType -> (строка)

Тип шифрования, используемый для записей. Этот параметр может принимать одно из следующих значений:

  • NONE : Не шифровать записи.
  • KMS : Используйте шифрование на стороне сервера для записей с использованием управляемого клиентом ключа Amazon Web Services KMS.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API