0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初めてのAWS Lambda〜自作関数を動かす

Posted at

前回の記事

初めてのAWS Lambda〜Hello World

今回の目標

Lambdaで自作関数を作成して、Slackに通知を送る

前準備

Slack通知を行いたいワークスペースにIncoming Webhookを追加し、Webhook URLを取得する
slack_webhook.png

関数の作成

AWSコンソール

今回は関数を自作するので、「一から作成」を選択し、関数名を入力。
言語はお好きなものを選択。今回はNode.jsにしてみた

lambda.png

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からの通知"
}

結果

コンソール上でテスト実行が成功
result_success.png

Slackに通知がきていることも確認
result.png

まとめ

今回はLambdaで自作関数を作成して実行するところまでを試してみました。関数を設計図を使用するか自分で作るかの違いだけで主にやることは変わりませんね。
実際は何かイベントをトリガーにLambda関数を実行させるのだと思うので、次の機会にやってみようかと思います。result_success.png

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?