SlackBotを試しに作る際の選択肢としてGlitchの使い方及びメリットについてまとめてみた

SlackBotを試したい場合に利用しているGlitchについて、サービスそのものについての紹介等を見た覚えがほぼなく、仕様や手続きについても毎回検索している状態だったため、SlackBotを実装したい場合のGlitch操作解説について振り返りながらまとめてみました。
2022.08.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

業務効率化の一端としてSlackBotの開発及び動作検証を行うスペースにGlitchを使っていますが、Glitchに関する解説記事はそれほど多くは見つからないため試行錯誤を挟むことも多いです。

Glitchのメリットや注意すべきポイント等を触った上でまとめてみました。

Glitchについて

サポートされている言語はJavaScriptあるいはNodeJSのみでのサーバレス開発環境です。Pythonも一応動かせます。利用言語が絞られているAWS Lambdaのようなものです。

Glitch無料プランの場合、作成したプロジェクトは一部リソースを除いてパブリック扱いになります。そして、Glitchの大きな特徴の一つとしてパブリックなプロジェクトに対しては手軽にGitHubのFork宜しく複製が可能です。Remixと呼ばれます。チュートリアル記事に沿って一からコードを組み立てずとも、Remixで準備が整うわけですね。なお、一部のリソースについては複製対象外です。

複製対象外リソースについて

無料プランでは基本的に全てパブリックになりますが、例外的に製作者だけが編集できるファイルとして .env があります。

自身が作成したプロジェクトの .env についてはこのように編集ができるのですが、

他のユーザが作成したプロジェクトの .env については見ることもできません。共同編集者としてのリクエストを出して承諾して貰う必要があります。

実装では以下のように呼び出しを行います。

// .env
ENV_NAME=test

// xx.js
process.env.ENV_NAME

GlitchでのSlackBot作成

Pythonコードになりますが、Slackにてテンプレートが用意されています。BlockKitのチュートリアルも兼ねているので、初めて触る場合はこれがおすすめかもしれません。

とはいえ、nodeベースでもそこまで大変ではありません。手続きとしては以下の記事がまとまっていました。

Remixしたい場合は以下プロジェクトにします。上記記事内のプロジェクトはアクセスできなかったためです。

GitHubからの取り込み

GlitchでGitHubリポジトリを元にプロジェクトを作成する流れとなります。Glitchに手続きが掲載されているため、沿って操作しましょう。

なお、取り込みサイズ上限は無料プランで200MB、有料プランで400MBです。

実装上での注意点

RequestURL指定

Slack側でBot登録する際のRequestURLは https://unique-legend-breeze.glitch.me/slack/events のような構成で登録します。ドメインにはGlitchアプリのパスを含めて、/slack/events は固定決め打ちです。

glitch slackapp
https://glitch.com/dit/#!/XXXX-XXXX-XXXX https://XXXX-XXXX-XXXX.glitch.me/slack/events

Botプロセスの維持時間

Glitchの無料プランはプロセス維持が5分までとなります。一度立ったBotは5分立つと接続が切れるため、必要に応じて再起動させます。常設したい場合は有料プラン ($10 per Month) にするか、AWS Lambdaにレスポンス実装を移設するとよいでしょう。

無料プランでのコード公開

無料プランは基本パブリックが前提です。アクセスキー等の文字列であればセキュアに保ちたいなら .env でカバーできますが、コードそのものをパブリックにしたくない場合は有料プランにするか、Glitchを選択から外すべきです。

あとがき

無料プランとしても、試しに作る場合には十分な環境となっています。

  • アクセスレート上限は1時間辺り4000リクエスト
  • 月当たりの稼働上限は1000時間
  • 起動後5分で停止
  • ブラウザ上から編集可能
  • 編集後自動で再起動(要追加設定)
  • コードのシンタックスチェック機能
  • .envファイルの保護
  • 依存パッケージ追加時に最新バージョン自動取得
  • 外部サイトへの編集ウィンドウ埋め込み

月額$10については以下の要件にメリットが感じられる場合(特にプロセス常駐)は選択肢としても十分かもしれません。

  • コードの秘匿
  • プロセス常駐