Python | 応用例:「レポート生成から PDF化・メール送信・クラウド共有までを一括自動化するパイプライン」

Python
スポンサーリンク

応用例:「ログをメール通知やチャット通知(Slack/Teams)に連携する」

スケジューリングしたパイプラインに ログ通知機能 を追加すると、エラーや完了状況をリアルタイムで把握できます。メールやチャット(Slack/Teams)に連携すれば、チーム全体で監視・共有が可能になります。


メール通知の例(エラー発生時に送信)

import logging
import smtplib
from email.mime.text import MIMEText

logging.basicConfig(filename="pipeline.log", level=logging.INFO)

def notify_email(message):
    sender = "your_email@example.com"
    receiver = "receiver@example.com"
    msg = MIMEText(message)
    msg["Subject"] = "パイプライン通知"
    msg["From"] = sender
    msg["To"] = receiver

    with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
        server.login("your_email@example.com", "your_password")
        server.sendmail(sender, receiver, msg.as_string())

def pipeline():
    try:
        logging.info("パイプライン開始")
        # 処理...
        logging.info("パイプライン完了")
        notify_email("パイプラインが正常に完了しました。")
    except Exception as e:
        logging.error(f"エラー発生: {e}", exc_info=True)
        notify_email(f"エラー発生: {e}")
Python

👉 エラーや完了時にメール通知が送られます。


Slack 通知の例(Webhook を利用)

Slack の Incoming Webhook URL を使って通知できます。

import requests

def notify_slack(message):
    webhook_url = "https://hooks.slack.com/services/XXXX/XXXX/XXXX"
    payload = {"text": message}
    requests.post(webhook_url, json=payload)

def pipeline():
    try:
        # 処理...
        notify_slack("✅ パイプラインが正常に完了しました。")
    except Exception as e:
        notify_slack(f"❌ エラー発生: {e}")
Python

👉 Slack チャンネルにリアルタイムで通知が届きます。


Microsoft Teams 通知の例(Webhook を利用)

Teams でも Incoming Webhook を設定して通知可能です。

import requests

def notify_teams(message):
    webhook_url = "https://outlook.office.com/webhook/XXXX/IncomingWebhook/XXXX"
    payload = {"text": message}
    requests.post(webhook_url, json=payload)

def pipeline():
    try:
        # 処理...
        notify_teams("✅ パイプラインが正常に完了しました。")
    except Exception as e:
        notify_teams(f"❌ エラー発生: {e}")
Python

👉 Teams チャネルに通知が届き、チーム全員で状況を確認できます。


解説ポイント

  • メール通知 → 個人や少人数向けに便利。
  • Slack/Teams通知 → チーム全体でリアルタイム監視に最適。
  • Webhook連携 → シンプルに HTTP POST で通知可能。
  • エラーハンドリングと組み合わせ → 成功/失敗を即座に共有できる。

応用の場面

  • 定期レポート配布の監視 → 成功/失敗をチームに通知。
  • 障害対応 → エラー発生を即座に共有して迅速対応。
  • 業務効率化 → ログを自動通知して人手による確認を不要に。

まとめ

  • ログを メール/Slack/Teams に通知すれば、リアルタイム監視が可能。
  • Webhook を使えば簡単にチャット連携できる。
  • チーム全体で状況を共有できるので、安定運用に役立つ。
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました