CloudWatch + SNS + Lambda + SlackでSlackにMetrics画像を送信する


上記の設定でだいぶ詰まったのでメモ

  • SlackBotを作る

  • TOKENのメモ

    • https://api.slack.com/apps/xxx/oauth?
    • 色々TOKENとかあるけどOAuth Access Token
  • 上記ページでSCOPEも適切なものを選択

    • 今回のBotは以下のポリシー適応(要らないものも入ってるかも)
    • 設定したのちに画面上部のメッセージから承認作業も

  • Lambda関数についてはここを参考に
    • ロールに必要な権限はCloudWatch,LambdaExecute
    • Lambdaの環境変数に設定するChannelIDはチャンネル名ではなくChannelIDが必要
      • 下のSlackAPIからも取得出来るがSlackのWebサイトのURLから取得可能

おまけ

  • この辺でSlackAPIをお試し出来る
  • Lambdaのタイムアウト時間を伸ばさないと3秒だとタイムアウトする

おまけのおまけ

aws cloudwatch --profile <profilename> list-metrics
  • Lambdaデプロイコマンド
    • IAMユーザにUpdateFunctionCodeの権限ないと出来ない
    • aws credentialでregionも指定しないと怒られる
aws lambda update-function-code --profile <profilename> --function-name <lambda function name> --zip-file fileb://<zip file name> --publish

TODO

  • Dockerを用いたLambdaのローカル開発環境構築の記事を書く。