5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCIイベント通知の内容を見やすくする

Last updated at Posted at 2024-09-05

概要

Oracle Cloud Infrastructure(OCI)の監視機能としてモニタリングやイベント等があり、あらかじめ設定したメールIDやSlack等の通知先に通知することができます。
モニタリングについては通知内容は情報を見やすくフォーマットする機能がありますが、イベントについてはJSON形式の内容をそのまま送信します。
今回はSlackに送付するイベント通知内容をFunctionsで処理して見やすくしました。

Functions作成

OCIのAlarmをLINE Notifyを利用して通知を参考にFunctionsを作成します。
コードは以下のように作成しました。

  • OCIイベントが作成するJSONを読み込み、必要な要素を抽出して通知テキストを作成しました。今回はブロックボリュームバックアップ作成イベント情報から日付やボリューム名等の情報を抽出しています
  • 送信元をわかりやすくするためユーザー名や絵文字を追加しています
  • これらの情報を事前に取得したSlackのWebhook URLにPostします
func.py
import io
import json
import logging
import requests

def handler(ctx, data: io.BytesIO = None):
    try:
        body = json.loads(data.getvalue())
        text =  "eventType: " + body["eventType"] + "\n" \
                + "eventTime: " + body["eventTime"] + "\n" \
                + "volumeName: " + body["data"]["additionalDetails"]["volumeName"] + "\n" \
                + "status: " + body["data"]["additionalDetails"]["status"]
       
        data = json.dumps({
           "text": text,
           "icon_emoji" : ":cloud:",
           "username" : "OCI Events"
        })

        requests.post('https://hooks.slack.com/services/.....', data=data)

    except Exception as e:
        print('ERROR: bad Event!', flush=True)
        raise
func.yaml
schema_version: 20180708
name: event2slack
version: 0.0.3
runtime: python
build_image: fnproject/python:3.11-dev
run_image: fnproject/python:3.11
entrypoint: /python/bin/fdk /function/func.py handler
memory: 256
requirements.txt
fdk>=0.1.75
requests

イベントのアクションに追加

通知したいイベントのアクションに以下のいずれかを登録します

  • アクションタイプ:ファンクションで作成したFunctionsを登録
  • アクションタイプ:通知でトピックにFunctionsを登録

結果

イベント結果のJSONをそのままNotoficationsでSlackに送信した場合とFunctionsで見やすくしてSlackに送信した場合の比較です。

NotoficationsでSlackに送信した場合

Functionsで見やすくしてSlackに送信した場合

5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?