Amazon ガンプラ再販祭りを検知出来るようにしてみた

だいたい月イチで開催されるガンプラ再販祭りを検知して通知出来るようにしてみました。以下が検知すると発砲されるツイートです。テストアカウント(鍵アカウント)なので画像です。

前回の記事で15分ぐらいの間に30個以上の再販があれば再販祭りだと分かったので、その状況を検知出来るようにしました。

ガンプラ祭りの検知条件

15分の間に30個以上のガンプラが予約が開始される。

Amazon ガンプラ再販祭りの通知を受け取りには

bot GunplaNotice をフォローすることで受け取れます。ぜひともフォローしてください。

検知方法

ここからはテクニカルな話題。
PA-API から受け取った情報を集計するだけなので難しいことではありませんが、なるべく自分でコードを書くのがイヤだったので Cloudwatch Alarm に任せることにしました。

自分のプログラムは予約が始まったガンプラの数をカスタムメトリクスとして Cloudwatch に送るだけになります。一定時間内に予約が始まったガンプラの数の集計や条件を満たした際のアクションは Cloudwatch Alarm 側に任せることが出来ます。値を保持しておく仕組み(データベース等)を作る必要もありません。

ドキュメントに書いてありますが、以下がカスタムメトリクスの送り方です。

cloudwatch.put_metric_data(
    Namespace=env.cloudwatch_metrics_namespace,
    MetricData=[
        {
            'MetricName': '<メトリクス名>',
            'Value': <予約が始まったガンプラ数>,
            'Unit': 'Count'
        },
    ]
)

Cloudwatch Alarm のしきい値は以下の通りです。上述した15分以内で30個以上でアクションが実施されます。なおアクションは SNS です。SNS 経由でツイートしているプログラムにメッセージを送り再販祭りをツイートするようにしています。

15 分内の1データポイントの<メトリクス名> >= 30