🐍

2022年にpythonとAWS Lambdaで作ったもの

2023/01/03に公開

1. まえがき

去年作ったプログラムのまとめ記事となります。

2. 競馬関係のTwitter BOT

2022年の初めに、「AWSではじめるインフラ構築入門」の本を購入し、アプリを作成
自分でも作成して見ようと、興味がある競馬関連のTwitterのBOTを4つ作成

  • 1号機(今日のハクサン地方競馬出走情報Bot)

https://twitter.com/hakusan_keiba

  • 2号機(明日のメイショウ冠名馬中央競馬出走情報と今日の競走結果情報BOT)

https://twitter.com/MeishoBot

  • 3号機(マカオ競馬の日本人騎手レース結果Bot)

https://twitter.com/BotKeiba

  • 4号機(地方競馬所属騎手のJRA出走情報BOT)

https://twitter.com/NARjockey

システム構成は、以下。
システム構成

2.1 苦労した点

  • Twitter APIの申請と、認証キーの取得に試行錯誤
     また、Twitter API V2を利用しており、ネット検索してもV1の参考コードが多くヒットし、初Twitterするまで試行錯誤
  • AWS Lambda の250MB容量制限に苦しみ、seleniumを使用したスクレイピングを諦め、beautifulsoupを使用
  • エラー検知についても、色々な方法を試したが、結局、AWS SNS(Simple Notification Service)でのEメール通知に落ち着く

2.2 今後の改善点

  • マカオ競馬の中野騎手が、2023年春にシンガポール競馬に移籍することから、シンガポール競馬の競走結果を取得処理を追加
  • 勝利レースのツイートには、Youtubeのレース映像を追加ツイートするように、改修を行う予定
    トリガーについては、pubsubhubbubを利用し、Youtubeチャンネルの更新契機にAWS Lambdaが起動する構成を検討中
    「AWS Lambda Function URL」を利用すれば、「Amazon API Gateway」を使用せずともAWS Lambdaのみで実現可能そう

3. Google Analytics 4(GA4)のTwitter BOT

GA4のリアルタイムのアクティブユーザ数を取得し、閾値を超えた場合に、
TwitterするBOTを作成して欲しいという依頼を受けて以下のTwitter BOTを2022年末に作成

https://twitter.com/applihuguai/status/1609210298749308933?s=20&t=yt5DAbzqSokQOuRcrVEl1Q

ちなみに、2023年7月1日に、旧Googleアナリティクスは廃止され、GA4へ完全移行する

3.1 苦労した点

  • 「Analytics Data API」を利用し、GA4のリアルタイム情報を取得しているのですが、あまりネット文献がなく試行錯誤
    そもそも新規APIのようで、やりたいことがまだ未実装だったりと、今後の機能追加に期待したい

3.2 今後の改善点

  • 「Analytics Data API」のリアルタイム情報には、ページタイトルとスクリーン名の取得ができるが、
    該当ページのURL情報の取得ができない。
    ※リアルタイム情報で無ければ、取得は可能・・・

4. あとがき

最後まで読んで頂き、ありがとうございます。
ご紹介した競馬関係のTwitter BOTの2号機の作り方については、
以下の書籍を作成しております。
興味があれば、こちらも参照下さい。

https://zenn.dev/motokoike/books/ef28866a3835cf

Discussion