ウェブエンジニア珍道中

日々の技術的に関する経験を書いていきます。脱線もしますが助けになれば幸いです。

AWS LambdaからSlackにメッセージを投げる(node.jsとhttpモジュールを使う)

AWS LambdaからSlackに対してメッセージをpostするためのソースを備忘録として残しておきます。

  • 動作環境
    • node.js
      • 8.10
const postToSlack = (message) => {

  const https = require('https');

  let postData = JSON.stringify({
    text: message
  });

  let options = {
    host: "hooks.slack.com",
    path: "<Slackのincomming webhookで発行したTokenのホストより後ろの部分(service/xxxx/xxxx)>",
    port: 443,
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Content-Length': postData.length
    }
  };

  let req = https.request(options)
  req.write(postData)
  req.end()
}

postToSlack("hogehoge")

requestモジュールの方がもう少しスッキリとしたコードになるのですが、AWS Lambdaにインストールされていないということで、httpsモジュールを使っています。Lambdaの環境を自分でzipで用意できるらしいのですが、まだ把握できていないのとブラウザ上でササッと作りたいと思いhttpモジュールで済ませました。

関数の中でrequireして良いんだっけ…?とりあえず動いたので今回はこんな感じで。

初めてまともにAWS Lambdaを触りましたが、色々試せそうです。