📝

Amazon SNSのイベントをLambda(Python)経由でSlackに通知する

2021/11/16に公開

概要

通知に関する構成でSNS->Lambda->Slackのピタゴラはよくあるものかと思いますが、久しぶりにAWSを触るとPythonのコードやLambdaにてPyPiを取り込んで使う手法など結局調べてしまうのでまとめました。

やること

  • SNSのtopicを用意してsubscriptionにLambdaを指定、そしてLambdaでeventをparseして必要な情報を抽出しslackに通知します。
  • SNS topicにメッセージをpublishする部分は割愛します

なお、今回はPython3.8のラインタイムで実装しています。

webhookの取得

ここからできます。(該当のワークスペースにログインしている状態を想定)
https://slack.com/services/new/incoming-webhook

コード

  • 取得したwebhookを埋めます
  • SNS messageはprintしているので、必要な情報を抜き出します

Lambdaのdeploy

コードで使っているpytzはinstallしてあげる必要があるので、以下を参考してインストール、圧縮、uploadまで行います

やり方はこの記事がとても分かりやすかったです

https://www.playfulit.net/articles/2019/01/28/aws-lambda-no-module-named-pytz-error/

Discussion