Spec-Zone.ru › AWS CLI v2

[ aws . kinesis ]

get-records

Описание

Получает записи данных из раздела потока данных Kinesis.

Примечание

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

Укажите итератор раздела с помощью параметра ShardIterator. Итератор раздела определяет позицию в разделе, с которой следует начать последовательное чтение записей данных. Если в части раздела, на которую указывает итератор, нет записей, GetRecords возвращает пустой список. Для получения части раздела, содержащей записи, могут потребоваться несколько вызовов.

Вы можете масштабировать, предоставив несколько разделов на поток, учитывая ограничения сервиса (подробнее см. Amazon Kinesis Data Streams Limits в руководстве разработчика Amazon Kinesis Data Streams). Ваше приложение должно иметь по одному потоку на раздел, каждый из которых непрерывно считывает данные из своего потока. Чтобы непрерывно считывать данные из потока, вызывайте GetRecords в цикле. Используйте GetShardIterator для получения итератора раздела, который нужно указать в первом вызове GetRecords. GetRecords возвращает новый итератор раздела в NextShardIterator. Укажите возвращённый итератор раздела в NextShardIterator в последующих вызовах GetRecords. Если раздел закрыт, итератор раздела не может вернуть больше данных, и GetRecords возвращает null в NextShardIterator. Вы можете завершить цикл, когда раздел закрыт или когда итератор раздела достигнет записи с номером последовательности или другим атрибутом, который отмечает её как последнюю обрабатываемую запись.

Размер каждой записи данных может составлять до 1 МБ, а каждый раздел может считывать до 2 МБ в секунду. Вы можете гарантировать, что ваши вызовы не превышают максимальный поддерживаемый размер или пропускную способность, используя параметр Limit для указания максимального числа записей, которые GetRecords может вернуть. Учитывайте средний размер записи при определении этого ограничения. Максимальное количество записей, которые могут быть возвращены за один вызов, равно 10 000.

Размер данных, возвращаемых GetRecords, варьируется в зависимости от использования раздела. Рекомендуется, чтобы приложения-потребители получали записи с помощью команды GetRecords, используя ограничение 5 TPS, чтобы оставаться в актуальном состоянии. Реже получение записей может привести к отставанию приложений-потребителей. Максимальный размер данных, которые GetRecords может вернуть, составляет 10 МБ. Если вызов возвращает такое количество данных, последующие вызовы в течение следующих 5 секунд генерируют ProvisionedThroughputExceededException. Если на потоке недостаточно выделенной пропускной способности, последующие вызовы в течение следующих 1 секунды генерируют ProvisionedThroughputExceededException. GetRecords не возвращает данные при возникновении исключения. По этой причине мы рекомендуем ожидать 1 секунду между вызовами GetRecords. Однако возможно, что приложение получит исключения в течение более чем 1 секунды.

Для определения того, отстаёт ли приложение от обработки, можно использовать атрибут ответа MillisBehindLatest. Также можно отслеживать поток с помощью метрик CloudWatch и других механизмов (см. Мониторинг в руководстве разработчика Amazon Kinesis Data Streams).

Каждая запись Amazon Kinesis включает значение ApproximateArrivalTimestamp, которое устанавливается, когда поток успешно получает и сохраняет запись. Это обычно называется отметкой времени на стороне сервера, а отметка времени на стороне клиента устанавливается, когда поставщик данных создаёт или отправляет запись в поток (поставщик данных — это любой источник данных, помещающий записи данных в поток, например, с помощью PutRecords). Отметка времени имеет точность миллисекунды. Нет гарантий относительно точности отметки времени или того, что отметка времени всегда увеличивается. Например, записи в разделе или в потоке могут иметь отметки времени, которые не следуют по порядку.

Для этой операции установлено ограничение в пять транзакций в секунду на раздел.

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

Синтаксис

  get-records
--shard-iterator <value>
[--limit <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]

Параметры

--shard-iterator (строка)

Позиция в разделе, с которой следует начать последовательное чтение записей данных. Итератор раздела указывает эту позицию, используя номер последовательности записи данных в разделе.

--limit (целое число)

Максимальное количество возвращаемых записей. Укажите значение до 10 000. Если вы укажете значение больше 10 000, GetRecords сгенерирует InvalidArgumentException. Значение по умолчанию — 10 000.

--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.

Получение записей из раздела

Следующий пример get-records получает записи данных из раздела потока данных Kinesis, используя указанный итератор раздела.

aws kinesis get-records \
    --shard-iterator AAAAAAAAAAF7/0mWD7IuHj1yGv/TKuNgx2ukD5xipCY4cy4gU96orWwZwcSXh3K9tAmGYeOZyLZrvzzeOFVf9iN99hUPw/w/b0YWYeehfNvnf1DYt5XpDJghLKr3DzgznkTmMymDP3R+3wRKeuEw6/kdxY2yKJH0veaiekaVc4N2VwK/GvaGP2Hh9Fg7N++q0Adg6fIDQPt4p8RpavDbk+A4sL9SWGE1

Вывод:

{
    "Records": [],
    "MillisBehindLatest": 80742000
}

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

Вывод

Записи -> (список)

Данные записей, извлечённые из раздела.

(структура)

Единица данных потока данных Kinesis, которая состоит из порядкового номера, ключа раздела и блока данных.

SequenceNumber -> (строка)

Уникальный идентификатор записи в её разделе.

ApproximateArrivalTimestamp -> (метка времени)

Приблизительное время, когда запись была добавлена в поток.

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

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

PartitionKey -> (строка)

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

EncryptionType -> (строка)

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

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

NextShardIterator -> (строка)

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

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

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

ChildShards -> (список)

Список дочерних разделов текущего раздела, возвращаемый в ответе API GetRecords только при достижении конца текущего раздела.

(структура)

Параметр вывода API GetRecords. Существующий дочерний раздел текущего раздела.

ShardId -> (строка)

Идентификатор раздела существующего дочернего раздела текущего раздела.

ParentShards -> (список)

Текущий раздел, являющийся родителем существующего дочернего раздела.

(строка)

HashKeyRange -> (структура)

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

StartingHashKey -> (строка)

Начальный ключ хеширования диапазона ключей хеширования.

EndingHashKey -> (строка)

Конечный ключ хеширования диапазона ключей хеширования.

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

Spec-Zone.ru

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