目標
lambdaからslackに投稿する
手順
1. slackのincoming webhooksを作成 -> URLをゲット
slackのapp manage ページに行ってincoming webhooksを作成し、どこのChannelに飛ばすかを設定する。
2. 必要なLibraryをローカルでインストールしてzipにする
https://qiita.com/Hironsan/items/0eb5578f3321c72637b4
今回は slackweb
を使用(https://qiita.com/satoshi03/items/14495bf431b1932cb90b)
import slackweb
slack = slackweb.Slack(url="<コピーしたURL>")
slack.notify(text="This is a test.")
3. Lambdaの設定画面でzipをUpload
4. SLACK_URLに先ほどのURLを登録+コード内では、以下のようにEnvを読み込む
import os
print os.environ["SLACK_URL"]
5. 試しに送ってみる
Lambdaをトリガーして送る。
失敗したときは、Cloudwatchのlogsからエラーを確認
6. 環境変数の暗号化
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/env_variables.html#env_encrypt
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/tutorial-env_console.html
SlackのURLを暗号化しておく
7. KMSを作成していない場合は、IAMから作成
作成するときに、policyでlambdaに使用権限を与えておけば良い
8. Enable helpers for encryption in transitにチェックを入れる
チェックを入れるとKMSを選択する部分になるので、作成したKMSを選択し、Encryptすると環境変数が見れなくなる