yamamanx

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 おはよう」のように投稿すれば返事が帰ってきます。

@yamamanx
開発ベンダー5年、ユーザ企業システム部門通算8年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

 - AWS , , ,

ad

ad

Message

メールアドレスが公開されることはありません。

  関連記事

slackのbotに天気を教えてもらう(Python on AWS Lambda + API Gateway)

slackのbotにAPIの定番ともいえる天気情報を教えてもらいました。 環境は …

Route53でドメインを新規取得してDNSレコードを設定する

Elastic IPをAWSで発行しているのですから、DNSの設定も同じようにマ …

JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo 2016 アップデート追っかけ会

「JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo …

RDS + VPC + Lambda + API Gateway + CloudFront + WAF + ACMでAPIを構築する

RDSのMySQLの情報を与えられたリクエストをキーにしてjsonで返すAPIを …

MySQL WorkbenchからRDSに接続する

MySQL WorkbenchからAWS RDSのMySQLに接続するために、「 …

Amazon LinuxにRedmine をインストールする(手順整理版)

Amazon LinuxにRedmineをインストールしました手順を記載します。 …

EC2とRDSのMySQLを他のAWSアカウントへ移設する

他のAWSアカウントへシステムごと移設した場合の手順です。 構成はEC2とRDS …

AWS Summit 2016 Tokyoに参加してきました (Day3)

飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …

AWS Code Commitをプライベートリポジトリとして使う

GitHubでもいいんですが、アクセスキーとかパスワードとかコンフィグ系で書いて …

AWS Toolkit for Eclipseをセットアップする

AWSでそろそろ課金がされつつありますので、夜中はインスタンスを自動停止して朝自 …