Чтение данных из потока в 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}