つくったもの
ブログ記事を新たに執筆してCMSに投稿すると、ホスティング先への反映を待ってからTwitterへ記事の公開について自動的にツイートする仕組みを作りました。
せっかくなので内容を記事として公開してみました。
対象としている読者
ある程度Webの開発に慣れている方、AWSの操作に慣れている方を想定して記事を記述しています。
それなりには詳細に記述しているので、それ以外の方でもある程度参考になると思います。
記事の投稿からツイートまでの流れ
- ブログの記事を書く
- 記事の情報を管理しているCMSへアップロードする
- ホスティングしているサービスなどへ追加記事の反映を行う
- Twitterで記事の公開について自動でツイートする
仕組みの概要
ホスティングサービスなどでビルドが進んでいる間、CMSへのアップロードに連動してAWS上の処理が動きます。
API Gatewayで用意したREST APIにてリクエストを受け付け、Step Functionsにてホスティング用のビルド時間を待機します。
待機時間が過ぎると、リクエスト時に受け取った記事情報を使ってLambdaの処理でTwitterへの投稿が行われます。
Step Functionsを採用している理由
ホスティング先への反映が瞬時に完了する場合、API GatewayとLambdaだけを使って同期処理でTwitterへツイートすることも可能です。
しかし私のブログではGatsbyを使ったSSGを採用しているため、数分かけてブログのビルドを行う必要があります。
API GatewayやLambdaを単純に使うとSleepを使用した際にタイムアウトするため、Step Functionsを使って非同期処理にしています。
作成手順
流 れ
- Twitterへの投稿を行うための認証情報の生成を行う
- Twitterへの投稿を行うLambda関数を作成する
- Step FunctionsのWorkflowを作成する
- API GatewayでREST APIを作成する
- CMSで新規記事公開時のWebhookを設定する