タイムトリガーでFunction ComputeからSlackに投稿する

やること

この記事ではFunction ComputeからSlackに投稿する最小のコードを紹介します。

関数、トリガーの作成

まずFunction Computeでタイムトリガーの関数を作成します。

以下のコードがFunction ComputeからSlackに現在時刻を投稿する最小の(多分)コードになります。webhook urlが分からない方ははググってください。私はいつもググってます。

const { IncomingWebhook } = require('@slack/client');

module.exports.handler = function(request, context, callback) {
  const url = 'https://hooks.slack.com/services/**********/*******************'; // YOUR_WEBHOOK_URL
  const webhook = new IncomingWebhook(url);
  const date = new Date();

  webhook.send(date.toString(), (err, res)  => {
    const message = err || res;
    callback(null, message);
  });
};

handlerの関数の引数がHTTPトリガーのものと違っていることに注意してください。私はここで結構ハマりました。

なお、ローカルでnpm installしてnode_modulesごとアップロードしなければ@slack/clientは動きません。

タイムトリガーを1分ごとに設定して動くことが確認できました。

f:id:asmsuechan:20180806143642p:plain

まとめ

タイムトリガーの「動く最小のコード」が見当たらなかったので書きました。