かべぎわブログ

ブログです

Kinesis Data Streamsになにかデータつっこんで確認してみる

Kinesis Data Streamsにてきとーなデータをつっこんでみます。

手順

1. データストリームの作成

aws kinesis create-stream --stream-name kabegiwa-stream --shard-count 1

確認

aws kinesis list-streams
{
    "StreamNames": [
        "kabegiwa-stream"
    ]
}

2. レコードをストリームにPUTする

AWSCLIv2の場合は--cli-binary-format raw-in-base64-outオプションをつけないとInvalid base64になる。

 aws kinesis put-record --stream-name kabegiwa-stream --partition-key 123 --data file://test.json --cli-binary-format raw-in-base64-out

3. シャードイテレータを取得する

 aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name kabegiwa-stream

出力されたShardIteratorの値をコピーしておく。

4. ストリームからレコードを取得する

さっきの手順で取得したシャードイテレータをわたしてget-recordしてあげる。

aws kinesis get-records --shard-iterator シャードイテレータ
{
    "Records": [
        {
            "SequenceNumber": "496073672870212182446181045",
            "ApproximateArrivalTimestamp": "2020-05-26T14:11:12.435000+00:00",
            "Data": "eyJuYW1lIjogImthYmVnaXdhIiwgImFnZSI6IDI4fQo=",
            "PartitionKey": "123"
        }
    ],
    "NextShardIterator": "AAAAAAAAAAGer6NTuyaqLamS1d57xdbhuhHoSEPN7h9f+LBKhMLWAiz6dZb1hzVc8BljWNZniBgo05xKmtQdrWBOA2O2C",
    "MillisBehindLatest": 0
}

5. 人間の目で確認する

Dataをbase64デコードしてあげる。

echo 'eyJuYW1lIjogImthYmVnaXdhIiwgImFnZSI6IDI4fQo=' | base64 -d
{"name": "kabegiwa", "age": 28}