ヤマムギ

growing hard days.

*

Amazon Kinesis Data StreamsにTwitter検索データを送信する

      2021/08/09


Kinesis Data Streamsの作成

ストリーム名とシャード数を決定するだけです。

シャードは
「各シャードは最大で 1 MiB/秒および 1000 レコード/秒を取得し、最大 2 MiB/秒を出力します。」
ということですので、1レコード1kbなさそうなレコードを最大100件送信するのでシャードは1つで足りそうです。

シャードエスティメーターで確認しても問題なさそうです。

作成されました。
シャードの数、タグ以外の設定は、サーバー側の暗号化、データ保持期間、シャードレベルメトリクスでした。
デフォルトの24時間、暗号化なし、シャードレベルの追加メトリクスなしにしました。

AWS CLI を使用した基本的な Kinesis Data Stream オペレーションの実行の手順でレコードの送信、受信をやってみました。

送信

受信

shard-iteratorを入れ子コマンドで取得しました。

テストで作ったレコードが残っているとツイッターのデータが書き込めなかったので、一回ストリームを削除して作り直しました。

IAMロールの設定

AWS Lambdaから送信するので、専用のIAMロールを設定しました。

  • KinesisPutRecords

kinesis:PutRecordsを使うことにしました。
必要ないですが、PutRecordも許可しています。
TwitterのキーをSecretsManagerから取得するポリシーとParameterStoreでsince_idを管理しているのでそのポリシーも設定しています。

他には、AWS管理ポリシーのAWSLambdaBasicExecutionRoleを設定しています。

Lambda関数

Githubで公開しています。
yamamanx/TweetSearchAnalyze

取得したTweetをput_recordでKinesis Data Streamingに送信しています。

クエリーでOR検索が意図したように動作しなかったので、キーワードを配列にしてキーワードの数だけ検索を実行しています。

その他のコードは以下のブログをご確認ください。

Lambda関数はバージョンを作って、エイリアスprodに紐づけて、EventBridgeで5分おき実行にしました。


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

 - AWS , ,

ad

ad

  関連記事

ヤマムギ vol.8 (AWS)EC2でLinuxサーバー構築ハンズオン 手順

ヤマムギとは from Mitsuhiro Yamashita 「AWSではじめ …

ヤマムギ vol.9 (AWS)EC2からAWS CLIコマンドを実行してみようハンズオン 手順

このブログは2020/5/5に開催しました、「ヤマムギ vol.9 (AWS)E …

ヤマムギ vol.10 (AWS)EC2モニタリングハンズオン 手順

このブログは2020/5/6に開催しました、「ヤマムギ vol.10 (AWS) …

ALBにWAFを関連付けて特定のヘッダー以外はブロックする

おかげさまで、ブログのアクセスも増えてきて、t3.nano EC2インスタンス単 …

SendGridのイベントをAPI Gateway -> Lambda(Python) -> DynamoDBに格納する

SendGridのメールイベントログはコンソールで確認出来るのは直近7日分で一括 …

Lambda関数で自分自身の環境変数を更新する

Twitterでツイート検索するAPIを試してみるでツイートの取得を重複させない …

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」執筆裏話

今日2019/4/20発売となりました「AWS認定資格試験テキスト AWS認定ク …

AWS Lambda KMSを使って環境変数を暗号化、復号化する(Python)

Lambda内で外部APIを使用する場合などをユースケースとして、環境変数をKM …

GoogleフォームからAPI Gatewayで作成したREST APIにPOSTリクエストする

「API GatewayからLambdaを介さずにSNSトピックへ送信」の続きで …

Amazon LinuxのNginx+RDS MySQLにレンタルWebサーバーからWordPressを移設する(失敗、手戻りそのまま記載版)

勉強のためブログサイトを長らくお世話になったロリポップさんから、AWSに移設する …