見出し画像

SlackのEnableEventsとAWSAPIGatewayとAWSLamdaでオウム返しbotを作る

SlackとAWSLamdaでオウム返しbotを作ります!

この記事の対象となる人

・pythonの基本的な構文が読める人
・AWSのアカウントを持ってる人
・Slackのアカウントを持っている人

筆者の環境は
OS:Windows10
python:pyton3系
です

Mac環境の人などは一部動作が異なる可能性があります
随時読み替えてください。

アーキテクチャ

画像1

完成イメージ

画像22

userがチャンネルで「@AppName 文字列」を送信すると、@AppNameがその言葉そそっくりそのままチャンネルに返答します

SlackAppの新規作成

https://api.slack.com/apps
へアクセスします

画像2


・「Create New App」をクリック
・「App Name」に任意の名前を入力します。今回は「Oumukun」とします
・「Development Slack Workspace」を任意のワークスペースを選択してください
・「create」をクリック

画像3


・「Event Subscriptions」をクリックします
・「Enable Events」の横のバーを「On」にします

SlackAppのEnableEventsの使用条件を確認する

画面をSlackに戻って、Enable EventsはONにしただけでは使えません。requestURLにAWSAPIGatewayのエンドポイントを登録し、かかつchallengeをして検証に通らなければなりません。

requestURLにAWSのエンドポイントのURLを貼り付けると、貼り付けた瞬間にSlackからAWSにrequestが送られます。

送られてきたBodyは例えば下記のJSONです

AWS Lambdaの関数の登録

AWSマネジメントコンソールへログイン

画像4

・AWSのサービスから「Lambda」を選択する
・サービスを検索するから「lambda」を検索すると早いです
・よく使っている場合は最近アクセスしたサービスの中にいます

画像5

・「関数の作成」をクリック
・「一から作成」を選択
・「関数名」に任意の名前をつけます。今回は「Lambda_Oumukun」とします
・ランタイムはpythonを選択します
・「関数の作成」をクリック

AWS API Gatewayを追加する

画像6

・「トリガーを追加」をクリックします
・「API Getway」をクリック
・API「Create an API」を選択
・APItype「REST API」を選択
・セキュリティ「オープン」を選択
・「追加」をクリック

画像8

・「トリガーを追加」をクリックします
・「API Getway」をクリック
・API「Create an API」を選択
・APItype「REST API」を選択
・セキュリティ「オープン」を選択
・「追加」をクリック

画像9

・画面がLambda開発画面に戻ります
・Designer画面から「API Gateway」をクリック
・API Gatewayの画面から「Oumkun-API」をクリック
・画面が遷移してAPI Gatewayの画面に代わります

画像9


・「Oumkun」の文字の下にある「ANY」を選択します
・「アクション」ボタンをクリックして「メソッドの削除」をクリック
・「Oumkun」を選択中に「アクション」ボタンをクリックして「メソッドの作成」
・「Oumkun」の文字の下にプルダウンが現れます
・「POST」を選択してその隣にある「レ」チェックマークをクリックします

画像10


・POST - セットアップの画面で「Lambda関数」で「Oumkun」と入力
・「保存」ボタンをクリック

・「総合リクエスト」をクリック
・「マッピングプレート」の隣の「▶️」ボタンを押して開く
・「なし 」をクリック
・「マッピングテンプレートの追加」クリック
・名前を「application/json」とする


画像11

下記を保存します

ここから先は

6,725字 / 10画像

¥ 300

この記事が気に入ったらチップで応援してみませんか?