Cloudflare WorkersとCron Triggerで毎日Discordのサーバー名を変える

この記事は🎅GMOペパボエンジニア Advent Calendar 20232日目の記事です。 昨日は 仕様をより深く理解する&Webエンジニアとより円滑に連携する際に取り組んできた事 - Pepabo Tech Portal でした。


手元で動かしてたCronスクリプトを別な場所で動かしたい欲があり、試しに Cloudflare Workers に入門したのでその記録。

何を作ったか

https://github.com/ikaruga777/jcounter_workers

DiscordのAPIを叩いてサーバーネームを変えるだけ。

読んだドキュメントたち

作り方は以下のドキュメントを読んだら大体わかる。DiscordのドキュメントにCloudflare Workersの項目があり、bot動かす先として案内があるのが印象的。

WranglerCLIがしっかりしていていい感じ。initするときにnode_modulesをignoreしてくれなくて破滅したのだけどうにかしてほしい。

設定

CloudflareのコントロールパネルからCron Triggerを追加するだけ。Heroku Schedulerを思い出す。

デプロイ

wrangler secret環境変数設定できるので、トークンと更新したいサーバーのGuild IDを置いてdeployコマンドぽちるだけ。簡単。

$ npx wrangler secret put DISCORD_TOKEN # DiscordのBotのトークン
$ npx wrangler secret put DISCORD_TEST_GUILD_ID # サーバーのGuild ID

$ npx wrangler deploy

それが出来たら何になるのよ

毎日高専の同期が居るサーバーの名前が更新される。数字は入学時からの経過年数。本当に歳をとってしまった…

という感じで、定期的なスクリプト実行であればそこそこお手軽に書けたのでおすすめ。