ヤマムギ

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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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

 - AWS , , ,

ad

ad

  関連記事

共有AMIのコピー時にエラー「You do not have permission to access the storage of this ami」

他アカウントから共有されたAMIをコピーする際に、「You do not hav …

AWS Lambda(Python)からTwitterに投稿する

「GoogleフォームからAPI Gatewayで作成したREST APIにPO …

AWS Personal Health Dashboardのパブリックイベントの記録

東京リージョンで発生したので、スクリーンショットを取っておいたので記録しておきま …

AWS認定試験の自宅受験で壁のポスターを注意されちゃいました

AWS認定オンライン受験をしてみましたに書きましたとおり、自宅受験デビューしまし …

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

馬込は非常に良い天気です。 泊まっている部屋が2Fでしたので窓を明けると歩いてい …

ENAが有効なEC2インスタンスの帯域幅をiperf3で確認してみた

同じ Amazon VPC 内で Amazon EC2 Linux インスタンス …

Amazon SESでメール受信

Amazon SES(Simple Email Service)にメールドメイン …

AWS APIリクエストにPostmanで署名を作成する

新年明けましておめでとうございます! 署名バージョン4 「AWSはマネジメントコ …

EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効期限は短くできるのでしょうか

「EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効 …

Amazon Linux2のPHPを7.2から7.3へアップデートしました

WordPressのサイトヘルスの推奨に従って使っていないテーマを削除したの推奨 …