Amplifyのデプロイ通知をSlackに通知する(Slack App編)

Slack, Slack App, Lambda, Incoming Webhooks
2019-07-11

パネル

前回の記事でレガシーになっているSlackのIncoming Webhooksでの通知方法を書いたので、 今回はそれを新しい方のSlack Appで実行する方法を書きたいと思います。

といってもやり方は簡単で、

  • Slack Appを作成、自分のSlack環境にインストール
  • Incoming WebhookのURLが新たに発行されるのでそれに置き換える
  • 若干のメッセージの形式に変更があるので直す

というような順になります。

Slack Appの作成

https://api.slack.com/apps で新たにAppを作成します。

作成されたアプリのIncoming Webhooksを選択し、有効化します。

An image from Notion
An image from Notion

通知先のチャンネルを選択します。

An image from Notion

そうすると新たなURLが発行されるので、LambdaのPOSTリクエストしている箇所に貼り付けます。

  const options = {
    hostname: 'hooks.slack.com',
    port: 443,
    path: '/services/XXXXXXX/XXXXXXX/YYYYYYYYYYYYYY', // ← 新しいURLに変える
    method: 'POST',
    headers: {
      'Content-Type': 'application/json', // ← x-www-urlencodedの場合、jsonに変更
      'Content-Length': data.length
    }
  };

旧Incoming Webhooksではchannel,usernameやemoji_iconが都度変更可能でしが、Slack Appの場合は変更不可能になりました。 その代わり?に柔軟なmessagingが作成可能になりました。

Reference

Written by Kyohei Tsukuda who lives and works in Tokyo 🇯🇵 , building useful things 🔧.