Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Twitter Botを作ってカスタマイズとトラブルシュートをした話
Search
amarelo_n24
July 06, 2022
Technology
1
580
Twitter Botを作ってカスタマイズとトラブルシュートをした話
2022/7/6 JAWS-UG朝会 #35 登壇資料
amarelo_n24
July 06, 2022
Tweet
Share
More Decks by amarelo_n24
See All by amarelo_n24
今年のふりかえりと来年目指すこと
amarelo_n24
0
700
ANS-C01を2回不合格になり認定試験受験に対する想い
amarelo_n24
0
790
鈍行列車の旅をやってみた話2023
amarelo_n24
0
120
DHCPオプションセットって何だろう??
amarelo_n24
2
5.7k
「UNIXという考え方」を読んでどう生きるか考えてみた
amarelo_n24
0
580
AWS認定、オンラインで受けるか?オフラインで受けるか?
amarelo_n24
0
490
情報量の単位についておさらいしよう
amarelo_n24
0
660
DynamoDBテーブルにAWSCLIでアイテムを一括登録する方法
amarelo_n24
0
780
ITエンジニアへのコーヒーのすすめ(抽出編)
amarelo_n24
0
310
Other Decks in Technology
See All in Technology
セマンティックレイヤー入門
ikkimiyazaki
9
3.3k
大規模サービスにおける カスケード障害
takumiogawa
3
690
年末調整プロダクトの内部品質改善活動について
kaomi_wombat
0
210
問題解決に役立つ数理工学
recruitengineers
PRO
8
2.3k
日本MySQLユーザ会ができるまで / making MyNA
tmtms
1
370
チームビルディング「脅威モデリング」ワークショップ
koheiyoshikawa
0
160
3/26 クラウド食堂LT #2 GenU案件を通して学んだ教訓 登壇資料
ymae
1
210
Cline、めっちゃ便利、お金が飛ぶ💸
iwamot
20
19k
SaaSプロダクト開発におけるバグの早期検出のためのAcceptance testの取り組み
kworkdev
PRO
0
490
Riverpod & Riverpod Generatorを利用して状態管理部分の処理を書き換えてみる簡単な事例紹介
fumiyasac0921
0
110
Restarting_SRE_Road_to_SRENext_.pdf
_awache
0
190
AIエージェント完全に理解した
segavvy
4
290
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
29
2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
12
620
It's Worth the Effort
3n
184
28k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Thoughts on Productivity
jonyablonski
69
4.5k
GitHub's CSS Performance
jonrohan
1030
460k
Fireside Chat
paigeccino
37
3.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.1k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Designing Experiences People Love
moore
141
23k
Testing 201, or: Great Expectations
jmmastey
42
7.4k
Transcript
Twitter Botを作ってカスタマイズと トラブルシュートをした話 2022/7/6 JAWS-UG 朝会 #35
自己紹介 名前 :藤田 直幸 Twitter :@amarelo_n24(コーヒー焙煎人兼エンジニア) Facebook:https://www.facebook.com/naoyuki.fujita.37 取得済AWS認定 :CLF、SAA、DVA、SCS 好きなAWSサービス:AWS
CLI、AWS CloudShell、Cloud9 好きなコーヒー豆 :ブラジル ブルボンアマレロ
1.builders.flash とは? 2.作成したTwitter Botの概要 3.カスタマイズポイント 4.トラブルシューティング 5.まとめ 話すこと
1. builders.flash とは?
変化を求めるデベロッパーの皆様へ楽しみながら実践的に学べる トピックをお届けする AWS のウェブマガジンです。 ・デベロッパーの方が持つ悩みや不安に対するヒントとなる様々なテクノロジーの解説 ・課題解決を AWS を活用しながら行う方法 ・デベロッパーインタビュー ・テクノロジーを日常の中で楽しむ体験記
・学校における最新のテクノロジー教育への取り組み ※抜粋 https://aws.amazon.com/jp/builders-flash/about/?awsf.filter-name=*all builders.flash とは?
None
None
2022/7/4現在、以下の記事が公開されています。 これらの記事を参考にTwitter Bot を作りました。 第1回 おはようBot編 第2回 昔書いた記事の宣伝 Bot 編
第3回 リファクタリング & 曜日ごとのツイート 編 第4回 新章突入 ! 気になるワード検索 & 通知 Bot 編 第5回 皆さまの代わりに英語でツイートしておくよ Bot 編 第6回 AWS Step Functions を使って Well-being Bot を作ろう ! (前編) 第7回 AWS Step Functions を使って Well-being Bot を作ろう ! (後編) お役立ち Twitter Bot を作りながら学ぶ AWS ドリル
2.作成したTwitter Botの概要
構成図
EventBridgeを使って自動投稿 Cron式で毎朝7時に実行
Systems Manager Parameter StoreにTwitter APIのKeyとTokenを保存 SecureStringで保存。
Systems Manager Parameter Storeに曜日ごとのメッセージを保存 曜日ごとに異なった文言 を入れてツイート
DynamoDBにツイート内容を格納
EveryDayCoffeeTweet_β @EVDY_Coffee_TWT ツイート結果
3.カスタマイズポイント
ツイートするコーヒー豆を毎日変えたい 要件 ・アイテムが増えても、コード変更せずにツイートに 使えるようにしたい。 ・アイテムの追加頻度と量はそれ程ではないため、 自動化まではしなくて良い。
パーティションキーを単純な数字に変更
DynamoDBの項目数を取得
ランダムで取得した値をキー参照してツイート 1~レコード数でランダム値を取 得。それをキーにしてツイートす るコーヒー豆をDynamoDBから取 得してツイートする。
ツイートする豆の種類が毎日変わったことを確認 ランダムに抽出するので、同 じコーヒー豆が2日連続で出 ることももちろんある。
アイテム追加、手動でやるのめんどくさい
アイテム追加をAWS CLIで aws dynamodb batch-write-item で読み込むJSONファイルを指定して実行。 “UnprocessedItems”:{} と表示されれば成功 事前にJSONファイルをアップ ロードしておく。
JSON書くのも大変…悩ましい… ひとまずExcel関数を駆使して作成。 batch-write-itemコマンドとJSON作成 については、以下をご参照ください。 https://speakerdeck.com/amarelo_n2 4/dynamodbteburuniawsclideaitemu wo-gua-deng-lu-surufang-fa 読み込ませたJSONファイル
追加データが使われたことも確認
4.トラブルシューティング
いつもの時間にツイートされていなかった。 EventBridgeの設定もLambdaのコードも変えていないのに… 7/1の朝
CloudWatch Logsで調査 Task timed out ???
正常時のログイベント
Twitter APIに障害が発生していたことが分かった。 翌日はちゃんとツイートしていた。 いろいろ調べてみたが…
ログイベントも問題なし
5.まとめと今後やってみたいこと
・builders.flashを参考にTwitter Bot 作ってみた話をしました。 ・やはりもっとコード書けるようになって、もっと効果的な Twitter Botにしたいと思った!! ・DynamoDBにアイテムを一括で追加する効率的な方法を もう少し検討したい。 ・この登壇までの間に、TwitterAPIが落ちた時の動作を 知れたのは良かった(?)
まとめ
・気温情報を取得し、気温によるツイート内容変化 - 暑い日はアイスコーヒーそれ以外はホットコーヒーを推奨。 - さらに、夏は水分補給の促進、冬は換気の促進も。 ※去年作った水分補給アラートをアップデートしたい。 ・一定期間、特定文言のツイートしてなかったら通知 - 焙煎に関するツイートしてなかったら:「焙煎の調子はどう?」 -
AWSに関するツイートしてなかったら:「次の認定試験頑張ろう!」 など・・・AWSドリル第6回と7回が参考になりそう。 今後やってみたいこと
None