お役立ち Twitter Bot を作りながら学ぶ AWS ドリル
~第 8 回 総集編 & 夏休みの自由研究のすすめ
Author : 金澤 圭
ソリューションアーキテクト(SA)の金澤 (@ketancho) です。8 月になりましたが、皆さまいかがお過ごしでしょうか ? この記事が公開されるのは 8 月上旬だと思いますので、「もう少しで夏休みだ !」という方も多いと思います。私もちょうどこの記事が公開される翌日からお休みなので、ニコニコしながら働いていると思います。(なお、この記事を書いている 7 月前半時点では、ヒーヒー言いながら働いています。)
さて、この AWS ドリル連載が始まって半年以上が経ちましたが、連載を始めるときに編集長から「年に 1 回だけは休んでもいいぞ !」と言われていたので、元々 8 月はお休みにしようかなと思っていました。ただ、ここまできたら 1 年間走りきりたいという想いが湧いてきたのと、長期休みは新しいチャレンジができるうってつけのタイミングなので、8 月をスキップにしてしまうのはなんだかもったいない気がしてきました。そこで、休載イラストならぬ、休載まとめ記事として「AWS ドリルを活用して、夏休みの自由研究終わらせちゃいませんか ?」というテーマで寄稿してみようと思います。
「この夏こそは AWS を始めたい !」「何か新しいことにチャレンジしたい !」というエンジニアの皆さまはもちろん、「子どもが夏休みの自由研究に困ってるから、親子でプログラミング始めてみるか !」という親子でできるチャレンジを探している親御さん & お子さんもターゲットにして、これまでの AWS ドリル連載を整理をしつつ、ドリルを応用して作れる新しい Bot のアイデアを示します。ぜひご参考にしていただき、皆さまのオリジナルな Bot を作ってみてください。新しいドリルではない & いつもより短めな記事にはなりますが、読者の皆さまのものづくりのきっかけになれば嬉しいです。
この連載記事のその他の記事はこちら
- 選択
- 第 1 回 おはよう Bot 編
- 第 2 回 昔書いた記事の宣伝 Bot 編
- 第 3 回 リファクタリング & 曜日ごとのツイート 編
- 第 4 回 新章突入 ! 気になるワード検索 & 通知 Bot 編
- 第 5 回 皆さまの代わりに英語でツイートしておくよ Bot 編
- 第 6 回 AWS Step Functions を使って Well-being Bot を作ろう ! (前編)
- 第 7 回 AWS Step Functions を使って Well-being Bot を作ろう ! (後編)
- 第 8 回 - 総集編 & 夏休みの自由研究のすすめ
- 第 9 回 - IaC 入門しながら作るリマインダー Bot (前編)
- 第 10 回 - IaC 入門しながら作るリマインダー Bot (中編)
- 完結回 - IaC & CI/CD 入門しながら作るリマインダー Bot (後編)
このクラウドレシピ (ハンズオン記事) を無料でお試しいただけます »
毎月提供されるクラウドレシピのアップデート情報とともに、クレジットコードを受け取ることができます。
これまでの AWS ドリル
これまで全 7 回にわたり連載してきた AWS ドリルでは、下記の AWS サービス・機能を使ってきました。まとまった時間を確保していただければ 1-2 日程度で全てのドリルを実施いただけるボリューム感だと思います。もし使ったことがないサービスがありましたら、キャッチアップにお役立ていただければと思います。
各ドリルの内容についても、クイックにおさらいしていきます。まだやっていないもので面白そうなものがあれば、どんどん取り組んでみてください。
ドリル 第 1 ~ 3 回 : 毎朝あいさつする Bot
ドリル 第 1 回 から 第 3 回 では、朝のあいさつとともに、曜日ごと・日ごとに違うツイートを投稿する Bot を作りました。
Twitter API を呼び出すのは AWS Lambda で行い、ツイート文言は Amazon DynamoDB や Systems Manager の Parameter Store に格納しておき、そこから取り出す形にしました。
クリックすると拡大します
ドリル 第 4 回 : 定期的にツイート検索し、通知する Bot
ドリル 第 4 回 では、毎朝「目黒線」というワードで検索し、何かトラブルが起きていないかをチェックする Bot を作りました。平常時よりもツイート数が多いときは、メンションとともに Amazon SNS でメール通知する仕組みにしています。
実はこの 4 ヶ月間、この機能が発動することはなかったのですが (目黒線ありがとう🙏)、最近通勤で使っている別の路線で運休が発生してワタワタしたので、他の路線にもこの機能を仕込もうと考えています。
AWS ドリル 第 4 回 新章突入 ! 気になるワード検索 & 通知 Bot 編 »
クリックすると拡大します
ドリル 第 5 回 : 代わりに英語でツイートしておく Bot
ドリル 第 5 回 では、英語ペラペラ風 Bot を作りました。皆さまの普段づかいのアカウントを定期的に検索し、それを勝手に翻訳するという Bot です。翻訳部分は Amazon Translate を活用しました。
普段づかいのアカウント「自体に」この機能を組み込んで、「こいつ、急に英語でツイートするようになったぞ」と思わせるのも一興だと思います。(友達が減っても責任は取れません。)
AWS ドリル 第 5 回 皆さまの代わりに英語でツイートしておくよ Bot 編 »
クリックすると拡大します
ドリル 第 6 ~ 7 回 : 皆さまの健やかな日々を願う Well-being Bot
そして、直近のドリル 第 6 回 と 第 7 回 では、Well-being Bot を作成しました。ツイートが一定期間なかったり、ネガティブなことばかり呟いていたら、心配するという Bot です。
ツイート文言の感情分析として Amazon Comprehend を使いました。そして、AWS Step Functions でワークフローを組む形で Bot の処理を定義した、というのもこの Bot の特徴と言えます。
クリックすると拡大します
夏休みの自由研究案
以上がこれまでの AWS ドリルのクイックな振り返りになります。面白そうなテーマはありましたでしょうか ? ここからは、これらのドリルを活かした自由研究の案を幾つか示したいと思います。
難易度の凡例は下記の通りで、私の独断と偏見で付けております。
★☆☆:はじめて AWS を触る方でも or お子様のはじめてのものづくりに最適
★★☆:これまでの AWS ドリルを終えている方ならきっと問題なく作れるはず
★★★:これまでの AWS ドリル +α なチャレンジをしたい方へ
夏休みカウントダウン Bot (難易度 : ★☆☆)
初手からいきなり気持ちが萎えるような Bot で申し訳ないのですが、シンプルな構成で作れるので最初に持ってきました。毎朝 (あるいは毎晩)、夏休みが後何日で終わってしまうかをメンションする Bot です。学生の方だと 1 ヶ月以上夏休みがある ! という方も多いと思うので、このような仕掛けで 1 日 1 日のありがたみ ( ? ) を噛みしめてもらうのはどうかなと思っています。(羨ましい !)
AWS ドリル 第 1 回 のおはよう Bot の構築 、あるいは AWS ドリル 第 4 回 の 3.3 まで をやっていただけば、あとは Lambda 関数上で動く Python のコードをひと工夫するだけで実装できるはずです。
夏休みの宿題やってるかな?Bot (難易度 : ★★☆)
なんだか憂鬱な Bot ばかりですみません。でも、計画的に宿題や学習を進めるためには、お尻叩きしてくれる存在が必要だと思います。私も最近同僚と一緒に英語の勉強を励まし合い (≒ 煽り合い) ながら進めているのですが、「煽られたくない !」という一心でなんだか勉強が順調に進んでいる今日この頃です。
皆さまが宿題をしたときには「宿題」を含むツイートを Bot にメンションするというルールにします。もしそれが 21 時までになければ「今から少しでもいいからやりなよ !」と Bot からツイートする動きです。
応用パターンとして、勉強した報告があった日は褒めるリプライを送ったり、何日続けて勉強しなかったか (したか) を DB に保持しておき、「おいおい、3 日続けて宿題しないとはいい度胸だな !」的に文言を変えても良いかもしれません。
外部の Web API と連携し、日々のルーチンワークをおまかせする Bot (難易度 : ★★★)
やっと憂鬱ではない Bot の提案ができてホッとしています。ドリル 第 4 回 で「普段乗っている路線が遅延していないか (厳密に書くと、路線名のツイートが増えていないか)」を確認する Bot を作りました。朝のルーチンワークとしてチェックすることもできるのですが、朝バタバタして忘れがちだったので、それを Bot に任せたというストーリーですね。
読者の皆さまもこのような毎日やっているけど忘れがちな何かがあれば、それを自由研究のテーマにするのはどうでしょうか。
例えば、天気予報の Web API が無償で公開されているものがありますので、日中雨が振りそうであれば、朝イチでメンションで注意する Bot があれば便利そうです。(これは私も欲しいのでどこかで自分の Bot に組み込もうと思ってます。)
こちらも基本的には AWS ドリル 第 1 回 のおはよう Bot の構築、あるいは AWS ドリル 第 4 回 の 3.3 まで で取り上げた部分が基本になると思います。ただし、外部の Web API を呼ぶ部分は、その API ごとの仕様やルールを守る必要がある点に注意が必要ですので、難易度を★★★としています。この部分は Twitter API を呼び出す実装を参考にしていただけると思いますが、Web API ごとのお作法については、ぜひ調べた上で開発を進めてみてください。
Scratch でミニ Twitter クライアントを親子で作る (難易度 : ★★★)
最後にお子さんと何かしたい ! という方向けのアイデアとして、Scratch を活用することをご提案します。一昨年、下記のような親子でものづくり連載をしていました。
こちらと AWS ドリル連載の内容を組み合わせて、Scratch 上からツイートができるようなミニ Twitter クライアントを作ってみるのはどうでしょうか ?「親子でできる !」連載では、AWS ドリルの中では使っていない AWS サービス・機能も使っているので、少しチャレンジングな部分もあるかと思います。ただ、Scratch 側はお子さん、AWS 側は親御さんと担当を分け、ひと夏のチーム開発をするのはとてもいい思い出になるのかなと思います。
まとめ
AWS ドリルを応用して、夏休みの自由研究をしよう ! なテーマでお送りしました。何かひとつでも皆さまのインスピレーションに繋がるものがあるといいなと思っています。
最近、AWS ドリルの記事を応用して開発したよ ! というツイートや、それに関連する登壇をしてくださる方を見かけることが増えてきており、著者冥利に尽きるなーと思っています。また、たまに開発途中に私にメンションを飛ばす方もおり (記事のサンプル文言に私のツイッターアカウント @ketancho を含めているものが多いので)、それも喜んでいます (笑) ドリルを応用して何かを作っていただいた方は、ぜひ #AWSウェブマガジン タグをつけて共有していただければ嬉しいです。
それでは暑い季節が続きますが、夏バテに気をつけて、楽しい Developer ライフを送っていただければと思います ! また来月の連載では新しいネタを進めていければと思っていますので、お楽しみにしていただければと思います。それでは ! ✋
この連載記事のその他の記事はこちら
- 選択
- 第 1 回 おはよう Bot 編
- 第 2 回 昔書いた記事の宣伝 Bot 編
- 第 3 回 リファクタリング & 曜日ごとのツイート 編
- 第 4 回 新章突入 ! 気になるワード検索 & 通知 Bot 編
- 第 5 回 皆さまの代わりに英語でツイートしておくよ Bot 編
- 第 6 回 AWS Step Functions を使って Well-being Bot を作ろう ! (前編)
- 第 7 回 AWS Step Functions を使って Well-being Bot を作ろう ! (後編)
- 第 8 回 - 総集編 & 夏休みの自由研究のすすめ
- 第 9 回 - IaC 入門しながら作るリマインダー Bot (前編)
- 第 10 回 - IaC 入門しながら作るリマインダー Bot (中編)
- 完結回 - IaC & CI/CD 入門しながら作るリマインダー Bot (後編)
筆者プロフィール
金澤 圭 @ketancho
アマゾン ウェブ サービス ジャパン合同会社
技術統括本部 ソリューションアーキテクト
サーバーレスが好きなソリューションアーキテクト。業種業界問わず、お客様のプロダクト開発をサポートさせていただいています。「AWS Hands-on for Beginners」というオンデマンドで視聴できるハンズオンも企画・推進しており、楽しく学べるコンテンツを日々考えています。好きなサービスは AWS Lambda、AWS Step Functions、Amazon Personalize で、好きな休日の過ごし方は娘ふたりと川の字になって昼寝👧👧と赤ん坊を抱っこしながらの散歩です👶
さらに最新記事・デベロッパー向けイベントを検索
AWS を無料でお試しいただけます