在Google Cloud Platform中如何将监控通知发送到Google Chat

87次阅读
没有评论

问题描述

想要在Google Cloud Platform中将监控通知发送到Google Chat。在”监控” > “警报” > “编辑通知渠道”下,并没有看到Google Chat的选项(仅有竞争对手Slack,有趣的是…)。

尝试使用Webhook时,消息从未到达Google Chat。这是因为Google发送的Webhook请求具有错误的格式——JSON主体中没有包含”text”键(详情请参阅此处关于Google发送的请求格式)。

即使竞争对手Slack可用,是否不可能将监控通知发送到Google Chat?

解决方案

请注意以下操作可能涉及版本差异或风险,建议在操作前做好备份。

使用脚本发送Google Chat通知

当前的解决方案是通过实现脚本来发送通知。您可以按照这个指南编写一个Python Cloud Function来实现通知功能。

以下是基本步骤:
1. 创建一个Python Cloud Function。
2. 在Cloud Function中编写代码,以使用Google Chat的Webhook发送通知。
3. 配置监控警报,将通知发送到Cloud Function的触发器。

下面是一个简单的示例,演示如何使用Python发送Google Chat通知的Cloud Function:

import json
import requests

def send_chat_notification(request):
    # 解析Cloud Function触发的请求
    data = request.get_json()

    # Google Chat Webhook URL
    webhook_url = "YOUR_GOOGLE_CHAT_WEBHOOK_URL"

    # 准备要发送的通知消息
    message = {
        "text": "您的监控通知内容..."
        # 可根据需要添加其他字段
    }

    # 发送POST请求以发送通知
    response = requests.post(webhook_url, json=message)

    if response.status_code == 200:
        return "Notification sent successfully."
    else:
        return "Failed to send notification."

在上面的示例中,我们定义了一个Python Cloud Function,它接受请求并使用Google Chat的Webhook URL发送通知消息。您需要替换YOUR_GOOGLE_CHAT_WEBHOOK_URL为您自己的Google Chat Webhook URL。

这个Cloud Function可以在收到监控警报时被触发,从而将通知发送到Google Chat。

请注意,这个解决方案可能需要根据您的需求进行调整和扩展。您可以根据自己的情况,自定义消息的格式和内容,以及处理其他相关逻辑。

总结

虽然Google Cloud Platform没有直接提供将监控通知发送到Google Chat的内置选项,但您可以通过编写脚本和使用Webhook来实现这一功能。通过创建类似上述示例的Cloud Function,您可以将监控通知发送到Google Chat,以便及时了解您的系统状态。

正文完