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
690
1
Share
Twitter Botを作ってカスタマイズとトラブルシュートをした話
2022/7/6 JAWS-UG朝会 #35 登壇資料
amarelo_n24
July 06, 2022
More Decks by amarelo_n24
See All by amarelo_n24
バケットポリシーの記述を誤りマネコンからS3バケットを操作できなくなりそうになり、ルートアクセス管理を有効にしたおひとり様Organizationsの話
amarelo_n24
0
36
AWS Certified Generative AI Developer - Professional Beta 不合格体験記
amarelo_n24
1
310
マルチパートアップロードをする時にS3はどのような挙動をしているのか?
amarelo_n24
0
73
ひとりAWS BuilderCards 会を開催した話_SecurityExpansion
amarelo_n24
1
85
ひとりAWS BuilderCards 会を開催した話
amarelo_n24
1
40
re:Invent初参加者が感じたre:Invent を楽しむために必要なこと
amarelo_n24
0
58
おひとり様Organizations管理者もルートアクセス管理を有効にしよう!
amarelo_n24
2
150
アウトプット再始動2025・つなげるアウトプット2026
amarelo_n24
0
79
AWS re_Invent に全力で参加したくて筋トレを頑張っている話
amarelo_n24
2
150
Other Decks in Technology
See All in Technology
GoとSIMDとWasmの今。
askua
3
490
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
6
3.1k
イベントストーミングとKiroの仕様駆動開発で実現する要件の認識合わせプロセス
syobochim
7
1.1k
Strands Agents超入門
kintotechdev
1
160
「嘘をつくテスト」の失敗例から学ぶ 良いテストコード #frontend_phpcon_do
asumikam
0
160
TROCCOで始めるクラウドコストを民主化するためのFinOps
tk3fftk
3
560
速さだけじゃない! VoidZero ツールが移行先に選ばれる理由
mizdra
PRO
6
730
脅威をエンジニアリングの糧にして:恐怖を乗り越えた先にあったもの / Turn threats into fuel for engineering: what lay beyond overcoming fear
nrslib
1
380
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
2
210
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
38
41k
美味しいスイスチーズを作ろう🧀🐭
taigamikami
1
230
サプライチェーンセキュリティの空白地帯 - 信頼できる”依存性”の未来を考える
rung
PRO
2
650
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Paper Plane
katiecoart
PRO
1
51k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Leo the Paperboy
mayatellez
7
1.8k
How to Ace a Technical Interview
jacobian
281
24k
Technical Leadership for Architectural Decision Making
baasie
3
390
Information Architects: The Missing Link in Design Systems
soysaucechin
0
960
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
It's Worth the Effort
3n
188
29k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
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