Spec-Zone.ru › AWS CLI v2

[ aws . firehose ]

put-record-batch

Описание

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

Firehose накапливает и публикует определённую метрику для учётной записи клиента с интервалом в одну минуту. Возможны ситуации, когда всплески входящих байтов/записей, поступающих в поток Firehose, длятся всего несколько секунд. Из-за этого реальные пики трафика могут не полностью отображаться в метриках CloudWatch клиента, рассчитанных с интервалом в 1 минуту.

Информация о квотах сервиса доступна в разделе квоты Amazon Firehose.

Каждый запрос PutRecordBatch поддерживает до 500 записей. Каждая запись в запросе может быть размером до 1000 КБ (до кодирования в base64), до максимального размера запроса в 4 МБ. Эти лимиты не могут быть изменены.

При использовании PutRecord необходимо указать имя потока Firehose и запись данных. Запись данных состоит из блока данных размером до 1000 КБ, содержащего любой тип данных. Например, это может быть фрагмент из файла журнала, данные географического местоположения, данные кликов на веб-сайте и т.д.

Для многозаписистой деагрегации нельзя помещать более 500 записей, даже если длина блока данных меньше 1000 КБ. Если вы включите более 500 записей, запрос выполняется успешно, но деагрегация записей работает некорректно, и лямбда-функция трансформации вызывается с полным кодированным в base64 блоком данных вместо деагрегированных записей, закодированных в base64.

Firehose буферизует записи перед передачей их в пункт назначения. Для однозначной интерпретации блоков данных в пункте назначения часто используется разделитель в данных, такой как перевод строки (\n ) или какой-либо другой уникальный символ в данных. Это позволяет приложению-потребителю анализировать отдельные элементы данных при чтении данных из пункта назначения.

Ответ PutRecordBatch включает счётчик необработанных записей, FailedPutCount, и массив ответов, RequestResponses. Даже если вызов PutRecordBatch успешен, значение FailedPutCount может быть больше 0, указывая на то, что есть записи, для которых операция не выполнилась успешно. Каждый элемент массива RequestResponses содержит дополнительную информацию о обработанной записи. Он напрямую сопоставляется с записью в массиве запроса с использованием того же порядка, сверху вниз. Массив ответов всегда содержит такое же количество записей, что и массив запроса. RequestResponses включает как успешно, так и неуспешно обработанные записи. Firehose пытается обработать все записи в каждом запросе PutRecordBatch. Неудача с одной записью не останавливает обработку последующих записей.

Успешно обработанная запись содержит значение RecordId, уникальное для записи. Неуспешно обработанная запись содержит значения ErrorCode и ErrorMessage. ErrorCode отражает тип ошибки и может принимать одно из следующих значений: ServiceUnavailableException или InternalFailure . ErrorMessage предоставляет более подробную информацию об ошибке.

В случае внутренней ошибки сервера или таймаута запись может быть завершена или завершена неудачно. Если значение FailedPutCount больше 0, повторите запрос, отправляя только те записи, обработка которых могла завершиться неудачно. Это минимизирует возможные дубликаты записей и уменьшает общее количество отправленных байтов (и соответствующие сборы). Рекомендуется обрабатывать любые дубликаты в пункте назначения.

Если PutRecordBatch вызывает ServiceUnavailableException, API автоматически вызывается (повторно вызывается) 3 раза. Если ошибка сохраняется, возможно, были превышены лимиты пропускной способности для потока Firehose.

Повторный вызов операций Put API (например, PutRecord и PutRecordBatch) может привести к дублированию данных. Для больших наборов данных, предоставьте более длительный таймаут перед повторной отправкой операций Put API.

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

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

Не конкатенируйте две или более строк base64, чтобы сформировать поля данных ваших записей. Вместо этого, конкатенируйте исходные данные, а затем выполните кодирование в base64.

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

Синтаксис

  put-record-batch
--delivery-stream-name <value>
--records <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]

Параметры

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

Имя потока Firehose.

--records (список)

Одна или несколько записей.

(структура)

Единица данных в потоке Firehose.

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

Блок данных, кодированный в base64 при сериализации. Максимальный размер блока данных до кодирования в base64 — 1000 КБ.

Сокращённый синтаксис:

--records Data1 Data2 Data3

Синтаксис JSON:

[
  {
    "Data": blob
  }
  ...
]

--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
  • text
  • table
  • yaml
  • yaml-stream

--query (строка)

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

--profile (строка)

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

--region (строка)

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

--version (строка)

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

--color (строка)

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

  • on
  • off
  • auto

--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 для получения дополнительной информации.

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

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

В следующем put-record-batch примере три записи записываются в поток. Данные закодированы в формате Base64.

aws firehose put-record-batch \
    --delivery-stream-name my-stream \
    --records file://records.json

Содержание myfile.json:

[
    {"Data": "Rmlyc3QgdGhpbmc="},
    {"Data": "U2Vjb25kIHRoaW5n"},
    {"Data": "VGhpcmQgdGhpbmc="}
]

Вывод:

{
    "FailedPutCount": 0,
    "Encrypted": false,
    "RequestResponses": [
        {
            "RecordId": "9D2OJ6t2EqCTZTXwGzeSv/EVHxRoRCw89xd+o3+sXg8DhYOaWKPSmZy/CGlRVEys1u1xbeKh6VofEYKkoeiDrcjrxhQp9iF7sUW7pujiMEQ5LzlrzCkGosxQn+3boDnURDEaD42V7GiixpOyLJkYZcae1i7HzlCEoy9LJhMr8EjDSi4Om/9Vc2uhwwuAtGE0XKpxJ2WD7ZRWtAnYlKAnvgSPRgg7zOWL"
        },
        {
            "RecordId": "jFirejqxCLlK5xjH/UNmlMVcjktEN76I7916X9PaZ+PVaOSXDfU1WGOqEZhxq2js7xcZ552eoeDxsuTU1MSq9nZTbVfb6cQTIXnm/GsuF37Uhg67GKmR5z90l6XKJ+/+pDloFv7Hh9a3oUS6wYm3DcNRLTHHAimANp1PhkQvWpvLRfzbuCUkBphR2QVzhP9OiHLbzGwy8/DfH8sqWEUYASNJKS8GXP5s"
        },
        {
            "RecordId": "oy0amQ40o5Y2YV4vxzufdcMOOw6n3EPr3tpPJGoYVNKH4APPVqNcbUgefo1stEFRg4hTLrf2k6eliHu/9+YJ5R3iiedHkdsfkIqX0XTySSutvgFYTjNY1TSrK0pM2sWxpjqqnk3+2UX1MV5z88xGro3cQm/DTBt3qBlmTj7Xq8SKVbO1S7YvMTpWkMKA86f8JfmT8BMKoMb4XZS/sOkQLe+qh0sYKXWl"
        }
    ]
}

Дополнительную информацию см. в разделе Отправка данных в поток доставки Amazon Kinesis Data Firehose в руководстве разработчика Amazon Kinesis Data Firehose.

Вывод

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

Количество записей, обработка которых, возможно, завершилась неудачно. Это число может быть больше 0, даже если вызов PutRecordBatch успешен. Проверьте FailedPutCount, чтобы определить, есть ли записи, которые необходимо повторно отправить.

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

Указывает, был ли включён шифрование на стороне сервера (SSE) во время этой операции.

RequestResponses -> (список)

Массив результатов. Для каждой записи индекс элемента ответа совпадает с индексом, используемым в массиве запроса.

(структура)

Содержит результат для отдельной записи из запроса PutRecordBatch. Если запись успешно добавлена в ваш поток Firehose, она получает идентификатор записи. Если запись не добавлена в ваш поток Firehose, результат включает код ошибки и сообщение об ошибке.

RecordId -> (строка)

Идентификатор записи.

ErrorCode -> (строка)

Код ошибки для результата отдельной записи.

ErrorMessage -> (строка)

Сообщение об ошибке для результата отдельной записи.

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

Spec-Zone.ru

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