LoginSignup
4
3

More than 5 years have passed since last update.

AWS Lambdaを使ってSlackにメッセージを送る

Posted at

はじめに

  • この記事ではSlackのWebhookを利用して、AWS Lambda経由でメッセージを送るためのサンプルを記載します。

環境について

  • ローカルの環境にはPython 3.6が導入済みであるものとします。
  • また、対応するpipも導入されているものとします。

作成手順

フォルダ構成

  • 下記のようなフォルダ構成を前提とします。
- webhook
  - script.py
  - 必要なライブラリ類

ライブラリの導入

  • ライブラリとしてslackweb(https://pypi.python.org/pypi/slackweb)を利用します。
  • lambdaで外部のライブラリを利用する場合、ソースコードと依存するライブラリを1つのzipにまとめる必要があります。
  • そのため下記のように、これから書くソースコードと同じディレクトリにライブラリをインストールします。
$ pip3 install slackweb -t .

ソースコードの作成

  • 下記のような感じでコードを書きます。
script.py
# slackwebをインポート
import slackweb

# lambdaの処理するhandlerを作成
def lambda_handler(event, context):

    # urlでは取得済みのWEBHOOK URLを入力
    slack = slackweb.Slack(url="YOUR WEBHOOK URL PUTS HERE")
    # メッセージは適当。チャンネル名、ユーザ名も適宜修正すること。
    slack.notify(text="Hello, World!!", channel="#YOUR CHANNEL HERE", username="USERNAME HERE", icon_emoji=":smiling_imp:")
    return "succeeded"

zipの作成

  • zipを作成するときは、親となるディレクトリを含んではいけない点に注意します。
  • macであれば親ディレクトリでなく、全てのファイルを選択した状態で圧縮すればOKです。

Lambdaのデプロイ

  • 基本はそのまま進めていけば難しいことはありませんが、ハンドラのところはファイル名.ハンドラ名にする必要がありますので、今回であればscript.lambda_handlerを指定してください。
  • ここまで終わればあとは実行するだけです!

終わりに

  • ここまでできれば他のAWSサービスと組み合わせたり、コードを拡充するのは簡単ですね!
  • これをベースにbotや処理ツールなどを作成し、素敵なslack生活を送りましょう!僕も頑張ります笑
4
3
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
4
3