问题描述
想要在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,以便及时了解您的系统状态。