LoginSignup
6
2

More than 5 years have passed since last update.

最低限の実装でAmazon Kinesis Streamの動作を確認する

Last updated at Posted at 2016-11-08

急にボールが来たので。
もとい、急に "Kinesis Streamクライアントが正常に動いたか確認したいんだけど" と言われた時の対処を書いておきます

TL;DR

AWS LambdaでAmazon Kinesis StreamのTriggerをフックしてCloudWatchのログに流し込んだだけです
しかもBlueprintをそのまま使ってるので、実質コードは書いてません

手順

前提: Amazon Kinesis Streamのストリームは作成済みとします (ここでは ks-test-st0 とします)

1. Select Blueprint / テンプレ探し

新規 AWS Lambda function を作成します
その際、Blueprintを探して使います

  • Runtime: Python 2.7
  • Filter: kinesis

と入力すれば kinesis-process-record-python が見つかるので、これを選択します

1.png

2. Configure Trigger / 対象ストリームとトリガー設定

  • Kinesis Stream: ks-test-st0
  • Starting position: Latest
  • Enable Trigger: ON
  • (ほかはデフォルト)

2.png

3. Configure Function / Lambda関数の設定

  • Name: 適宜 (ここでは ks-testfunc0 としました)
  • Existing role: 適宜 (ここでは作成済みの lambda_basic_execution ロールを選択しました)
  • (ほかはデフォルト)

※Roleはこの画面で新規に作成できるので、気軽に作っちゃってOKです(削除忘れずに)

31.png

32.png

レビューを経たら Create Function しましょう

4. Test

Test ボタンを押したら Sample event template から Kinesis を選び、 Save and test します

4.png

5. CloudWatchで確認

CloudWatchに移動し、ログを見てみると /aws/lambda/ks-testfunc0 というロググループができています
ここでログを確認できます

Decoded payload: .... が中身です。テストの時は Hello, this is a test 123. と出ているのが正常です

5.png

これでおしまいです。全工程で10分くらいでできます。

ちゃんとput-recordしてみる

aws cliを使って put-record してみます

$ aws kinesis put-record --stream-name ks-test-st0 --data '{"foo":1}' --partition-key 1
{
    "ShardId": "shardId-000000000000", 
    "SequenceNumber": "49567441242410188585246498180921316713103945544971059202"
}

CloudWatchで確認

6.png

できてますねー

あとかたづけ

削除対象はこんなところです

  • Amazon Kinesis Stream
  • AWS Lambda ファンクション
  • CloudWatch ロググループ
  • IAMロール (必要なら)

特にKinesisはカネがかかりますので、ストリーム削除忘れのないように。

あとがき

久々に書いたよ。次はAWS IoTだ。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2