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?

AWSの利用状況をTeamsに自動的に投稿する ①webhookを使ってteamsのチャネルに投稿する

Last updated at Posted at 2024-10-04

目的

2024年現在、自部署ではAWSのコストの増加が問題となっています。
ドル建てなので基本料金が増加してしまうことは仕方がないことですが、
AWSリソースの使いっぱなしによる予算の無駄遣いは見過ごせません。

そこでAWSのコストカットが必要となってくるわけですが、今回の一連の記事では使用していないAWSリソースの棚卸等のダイレクトにコストが減少するような対策ではなく、利用者一人一人のAWS利用料節約の意識を芽生えさせることを目的としたシステムの構築を行っていきたいと思います。
なお、このシステムが実際に採用されるかどうかは別の話です。

ざっくりとしたシステム概要は次のようにします。
料金やEC2の稼働状況をTeamsに定期的・自動的にチャネルに投稿することでリアルなAWSのコストを周知する。

複数回に分けて以下のシステムを構築していきます。
EventBridgeで定期的に起動し、Lambdaから各種情報をTeamsへPOST投稿する簡素なものです。

image.png

第1回はTeamsのwebhookを使って実際にPOSTリクエストを送ることでTeamsのチャネルに投稿することができることを確認します。

image.png

Webhook URLを取得する

まず投稿したいチャネルのWebhook URLを取得します。
※プライベートチャネルでも投稿はできますが、設定が必要なためここでは一般チャネルを対象にします。

対象のチャネルをTeamsアプリで開き、チャネル画面の右上の横向き3点リーダー(その他のチャネルオプション)から「ワークフロー」を選択します。
image.png

ワークフロー画面のダイアログが出るのでここでは「Webhook 要求を受信するとチャネルに投稿する」を選択します。

image.png

Webhook要求受信するとチャネルに投稿するといったタイトルのダイアログ画面に遷移しますので、作成するワークフローの名前を入力します。Webhookの目的が分かるような名前を入力しましょう。
名前の入力が完了したら「次へ」を選択します。

image.png

次に投稿先のTeamsのチームとチャネルを選択します。先ほど投稿したい対象のチャネルを開いてからここまでの手順を踏んでいれば初期値に対象のチームとチャネルがはいっているはずですが、もし投稿先を変えたい場合はここで変更できます。
Microsoft Teams Team :投稿先のTeamsのチームを選択する
Microsoft Teams Channel :投稿先のTeamsのチャネルを選択する(Generalは一般)
投稿先を決定した後、「ワークフローを追加する」を選択します。

image.png

これでWebhook URLが払い出されるためコピーしておきます。
コピーしたら「完了」を選択してダイアログを閉じます。

image.png

Postリクエストでteamsのチャンネルに投稿する

先ほど払い出したWebhook URLに対してPOST送信を行い、
実際にTeamsに投稿されるのか確認していきます。

本記事ではPOST送信を行うためにPostmanを使用しますが、POST送信とその内容に間違いがなければかまいませんのでお好きな方法でPOSTしてください。

POSTのリクエストbodyは以下のJSONとします。

body
{
    "type": "message",
    "attachments": [
        {
            "contentType": "application/vnd.microsoft.card.adaptive",
            "content": {
                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
                "type": "AdaptiveCard",
                "version": "1.0",
                "body": [
                    {
                        "type": "TextBlock",
                        "text": "Incoming WebHookのテキストメッセージです",
                        "wrap": true,
                        "size": "Medium"
                    }
                ]
            }
        }
    ]
}

(Postman画面)

image.png

送信し実際に対象のチャネルに投稿されていることを確認する。

image.png

これでwebhookを使用したTeamsへの投稿を行えることを確認できました。

おまけ ─ワークフローを管理する─

作成したワークフローは管理画面から編集や削除を行えます。
環境をクリーンにするため今回作成したワークフローを削除してみます。

Teamsアプリの左ペインから「アプリ」を選択しアプリ画面を開きます。
アプリ画面から「ワークフロー」タブを選択し、「ワークフローを管理」を選択します。

image.png

Workflows画面が表示されました。
ワークフローの一覧が表示されるので、削除したいフロー名を選択します。

image.png

対象のワークフローの詳細が表示されました。
画面上部の「削除」を選択します。

image.png

削除ダイアログが表示されるので削除対象に間違いがないことを確認したのちに、「削除」を選択することでワークフローが削除されます。

image.png

次回

以上でWebhookを利用したTeams投稿できることを確認できました。
今回はローカルからPOSTを行いましたが、次回はAWS lambdaからPOSTを行う様子を確認していきます。

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?