LoginSignup
2
1

More than 5 years have passed since last update.

この記事は AWS初心者 Advent Calendar 2018 17日目の記事です。

概要

lambda + APIGatewayでslack botを作る際にAWSコンソールから設定してくいのがめんどくさかったのでCloudFormationのテンプレートで実現してみました。
channelで"ping"と打つと"pong"と反応する簡単なbotの例でご紹介します。

テンプレート

スタックを作る際に参照するので、適当な名前でローカルに保存しておいてください。
https://gist.github.com/tenmihi/6132f8140c6d3ef279bddaba175b5c47

botを動かすまでの手順

Slack Apiを設定する 1

スクリーンショット 2018-11-08 00.37.03.png
https://api.slack.com/apps のCreate New AppからSlack Appを作ります。

スクリーンショット 2018-12-05 01.26.13.png

Basic Information > Add features and functionalityアコーディオンのPermissionを選びます。

スクリーンショット 2018-12-05 01.26.53.png

Scopesから"chat:write:bot"のpermission scopeを割り当ててSaveします。
割り当てた終わったら、同じくPermissionsの設定ページのOAuth Tokens & Redirect URLs からinstall app to workspaceでAppをインストールします。

スクリーンショット 2018-12-05 01.35.57.png

インストール後にOAuth tokenが取得されていればOKです。

CloudFormationでスタックを作成する

スクリーンショット 2018-12-05 01.40.51.png

AWSコンソールからCloud Formationを選んでスタックの作成を行います。
ローカルファイルに保存しておいたものをテンプレートに指定します。

スクリーンショット 2018-12-05 01.42.23.png

スタック名は適当で、SlackBotUserOAuthAccessTokenには先程取得したOAuth Tokenを入力します。
このあと途中IAMロールの作成で注意が出ますが、チェックボックスを入れてスタックの作成をすれば大丈夫です。

スクリーンショット 2018-12-05 01.45.56.png

作成を始めたスタックの状況がCREATE_COMPLETEになったら、スタック名をクリックしてスタックの詳細ページに飛びます。
出力アコーディオンからApiEndpointが確認できればスタックの作成はOKです。

Slack Apiを設定する 2

Basic Information > Add features and functionalityアコーディオンのEvent Subscriptionsを選びます。

スクリーンショット 2018-12-05 01.53.56.png

右上のボタンから機能そのものをEnableしたあとに、Request URLにさきほど確認したApiEndpointの値を入れます。ローディング後に緑のチェックマークが付くはずです。
さらに、Add Workspace Eventからmessage.channelsを追加して、左下のsaveで設定を保存します。

保存するとパーミッションが変わって再インストールが求められる(黄色いnotificationが飛んでくる)ので再インストールを行います。以上でBotの設定はおしまいです。

テストする

スクリーンショット 2018-12-05 01.55.58.png

適当なチャンネルで ping > pong が帰ってくればOK。
あとは、lambdaのコンソールに行って直接書き換えるなり、短ければtemplateのZipFileの部分を書き換えて自分のbotを作ることができます。

さいごに

AWSでApi GatewayやLambdaなんかを1つ1つ設定すると管理がしにくいんですが、Cloud Formationを使ってスタック管理でできると要らなくなったときに一気に消せたりして便利です。またbotくらい簡単な関数であればtemplateにソース直書きでここまで完結するのは良いですね。

記事の公開遅くなってすいませんでした :bow:
明日は flat-8-kiki さんです!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1