ヤマムギ

growing hard days.

*

slackのbotをAWS Lambda(Python)+API Gatewayで構築

   

slack-apigateway-lambda

slackで投稿した内容に応じて返信したり調べ物したりしてくれるbotですが、これをAWSのLambda(Python)+API Gatewayで構築しましたメモです。

AWS Lambdaで実装する

eventに辞書型でslackからusername,text,channel_nameなどがPOSTされるのでそれを受け取って、json形式で返します。

API Gatewayの設定

lambdaのAPI endpointsから設定します。

MethoはPOSTにします。

出来たAPI Gatewayの設定画面に行って、[統合リクエスト]の設定を展開します。

API_Gateway_mapping_template

[マッピングテンプレートの追加]でContent-Type 「application/x-www-form-urlencoded」を追加します。

保存します。

slackでOutgoing Webhooksを設定する

slackのログインしている状態でCustom IntegrarionsでOutgoing Webhooksを追加して設定します。
※Team Settingsで画面上部の検索窓(Search app directory)で「Outgoing Webhooks」を検索するとわりとたどりつきやすいです。

Configure_Outgoing_WebHooks

[Add Configuration]で設定します。

  • Channel トリガーとするチャンネルを指定します。全チャンネルにしたいので「Any」を設定しました。
  • Trigger Word(s) チャンネルを指定している時はブランクでもOKですが、「Any」にしている時は設定が必要です。今回はbotの名前をトリガーワードにしました。
  • URL(s) Lambda(API Gateway)で設定したAPI endpoint URLを設定します。
  • Customize Name botの名前を設定します。
  • Customize Icon botのアイコンを設定します。

これで準備完了です。

例えば、Trigger Word(s)を「test-bot」とかにしていれば、「test-bot おはよう」のように投稿すれば返事が帰ってきます。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , ,

  関連記事

AWS CloudShellでboto3(SDK for Python)使うならpython3

本の執筆をしていて、ちょっとAWS CLIやSDKのふるまいを確認したいことがあ …

AtomエディタでEC2のファイルを直接編集する

Webページを編集していてEC2のファイルをvimエディタでさわったりしています …

EC2 Linux ユーザーデータ実行ユーザーとカレントディレクトリの確認

きっと、rootなんだろうなあと認識してたのですが、自分の目で確認したことはなか …

既存のAWSアカウントをAWS Control Towerに追加

Account Factoryからは既存アカウントは追加できない? AWS Co …

AWS Toolkit for EclipseからLambda関数を直接作成できずにMavenでパッケージ化して作成

AWS Toolkit for EclipseからLambda関数を直接作成 チ …

AWS CodeDeployからEC2 Auto Scalingにデプロイするチュートリアル

公式チュートリアルチュートリアル: アプリケーションを CodeDeployグル …

Amazon Aurora Serverless 課金確認

Amazon Aurora Serverlessを使い始めてみましたの記事で書い …

Amazon Connectで電話を転送する

かかってきた電話を転送するようにしました。 問い合わせフローで[終了/転送]から …

AWS Control TowerにOUを追加する

AWS Control TowerにOUを追加する 管理アカウントでAWS Co …

CodeDeployでECR、ECSにデプロイするパイプラインのチュートリアル

チュートリアル: Amazon ECR ソースと、ECS と CodeDeplo …