前回の記事
今回の目標
Lambdaで自作関数を作成して、Slackに通知を送る
前準備
Slack通知を行いたいワークスペースにIncoming Webhookを追加し、Webhook URLを取得する
関数の作成
AWSコンソール
今回は関数を自作するので、「一から作成」を選択し、関数名を入力。
言語はお好きなものを選択。今回はNode.jsにしてみた
SlackのWebhookへリクエストする関数
const https = require('https');
exports.handler = (event, context) => {
const options = {
host: "hooks.slack.com",
path: "{Incoming Webhookで取得したWebhook URL}",
method: "POST",
headers: {
"Content-Type": "application/json; charset=utf-8"
}
};
const request = https.request(options, resp => {
if (resp.statusCode === 200) {
context.succeed();
}
}).on('error', e => {
console.log(e.message);
context.fail(e.message);
});
// { "message": "ほげほげ" }のようなjsonを想定
request.write(JSON.stringify({ text : event.message }));
request.end();
};
テストの実行
これは前回と同じ。今回は{ "message": "ほげほげ" }
のようなjsonを想定しているのでテスト用のjsonを作成しテスト
- テスト用json
{
"message": "AWS Lambdaからの通知"
}
結果
まとめ
今回はLambdaで自作関数を作成して実行するところまでを試してみました。関数を設計図を使用するか自分で作るかの違いだけで主にやることは変わりませんね。
実際は何かイベントをトリガーにLambda関数を実行させるのだと思うので、次の機会にやってみようかと思います。