Чтение данных из потока в AWS CLI
Статья создана
Обновлена 24 апреля 2024 г.
CLI
Чтобы получить данные из потока из первого сегмента, выполните команду:
SHARD_ITERATOR=$(aws kinesis get-shard-iterator \
--endpoint <эндпоинт> \
--shard-id shard-000001 \
--shard-iterator-type LATEST \
--stream-name <идентификатор_потока> \
--query 'ShardIterator'| tr -d \")
aws kinesis get-records \
--endpoint <эндпоинт> \
--shard-iterator $SHARD_ITERATOR
Где:
-
--endpoint— для чтения данных из потока по протоколу AWS Kinesis Data Streams укажите эндпоинтhttps://yds.serverless.yandexcloud.net. -
--stream-name— состоит из зоны доступности, идентификатора каталога, идентификатора базы данных Yandex Managed Service for YDB и имени потока.Например, укажите идентификатор потока
/ru-central1/aoeu1kuk2dht********/cc8029jgtuab********/aws_stream, если:aws_stream— имя потока;ru-central1— регион;aoeu1kuk2dht********— идентификатор каталога;cc8029jgtuab********— идентификатор базы данных YDB.
Пример команды:
SHARD_ITERATOR=$(aws kinesis get-shard-iterator \
--endpoint https://yds.serverless.yandexcloud.net \
--shard-id shard-000001 \
--shard-iterator-type LATEST \
--stream-name /ru-central1/aoeu1kuk2dht********/cc8029jgtuab********/aws_stream
--query 'ShardIterator'| tr -d \")
aws kinesis get-records \
--endpoint https://yds.serverless.yandexcloud.net \
--shard-iterator $SHARD_ITERATOR
Пример результата:
{
"Records": [
{
"SequenceNumber": "0",
"Data": "eyJ1c2VyX2lkIjoidXNlcjEiLCJzY29yZSI6MTAwfQ==",
"PartitionKey": "1"
},
{
"SequenceNumber": "1",
"Data": "eyJ1c2VyX2lkIjoidXNlcjEiLCJzY29yZSI6MTAwfQ==",
"PartitionKey": "1"
},
...
}
В примере выше данные в поле Data выводятся закодированными в кодировке BASE64, если данные декодировать, то будет выведена строка:
{"user_id":"user1","score":100}