ABlog

Ablazeメンバーによるブログ

GASで便利なものを作ったお話

calendar 2021/11/08

GASで便利なものを作ったお話

このブログを見ている人なら一度は聞いたことがあるだろう
Google Apps Script(通称:GAS)でAblazeの内部システムを作ってみました!

名前は「Ablaze Emergency System(通称:AES)」!!
GASで作られたこのAESは最大震度6弱以上の地震が発生した時に、
Ablazeを維持するための自動化スクリプトです。

AES は AEP(Ablaze Emergency Protocol)という、
災害時などの対応方法を記したプロトコルと一緒に
制定・開発が進められました。

使ったシステムとかいろいろ

  • GAS
  • Google Drive™
  • Cloudflare API
  • Cloudflare Pages™
  • Realtime Database ( Firebase™ )
  • SendGrid® ( 構造計画研究所 )
  • Twitter API
  • Webhook ( Discord )
  • 地震情報API ( なりかくん )

AESが勝手にやってくれること

  • WebhookでDiscordに災害情報の投函
  • SendGridを使用した、安否確認メールの一斉配信
  • Twitter APIを使用した、緊急情報の配信
  • Cloudfllare APIを使用した、バックアップサーバーへの自動切換え

どんなふうに動くの?

色々やってくれる。

  1. 地震情報を定期的に取得
  2. (最大震度6弱地震以上の場合)
    すでにAESが実行されていないか Realtime Database にアクセスし、確認する
  3. (実行してない場合)
    Realtime Database のステータス状況を「実行済み」にセットする
  4. Webhook で Discord の特設チャンネルに地震に関する主な情報を投稿
    画像は Google Drive に保存してるため、地震規模により最適な画像を選択
  5. SendGrid で安否確認メールを自動配信
    メールアドレスのリストは Google Drive に保存してるので取得
  6. Cloudflare API を使用して「ablaze.one」のAレコードを削除
  7. Cloudflare API を使用して「ablaze.one」のバックアップサーバーへのCNAMEを追加
  8. Twitter APIを使用して、Twitter にて自動的に対応を終わらせたことを公表する
  9. 実行結果を Webhook で Discord に自動投稿

作成時間とかなんとか

AEP/AES プロジェクト始動開始日: 2021/10/07
AES 製作開始日:2021/10/11 (多分)
AEP 草案完成日:2021/10/15
AEP 制定日:2021/10/23
AES 完成日:(まだ作ってる)

作った人: kr-tukimi

思ったんだけど、なんで作ったの?

思いついたら作るしかないだろ 🤔

まぁ、そんな精神で作りました()

ちなみに作るきっかけになったのは、10/07 の 22時41分、
関東で10年ぶりに最大震度5強以上を観測した地震です。

以上!

画像コーナー

Webhookの画像に使われるやつ

Webhookの見た目

安否確認メールの見た目(初回のテスト配信は右のWelcomeメールが届けられます)

GoogleおよびGoogleロゴは、Google LLCの登録商標です。

Cloudflare、Cloudflareのロゴ、およびCloudflare Workersは、
米国およびその他の地域におけるCloudflare, Inc.の商標および/または登録商標です。

コメント

  • AESってGASで作ってたのか

    by 某PN氏 €2021/11/08 17:51

    • せやで~

      by kr_tukimi €2021/11/08 17:51

down

コメントする




フォローする