# 通过函数接收告警通知
当CES现有的通知渠道（邮箱、短信、语音、飞书、钉钉、企业微信等）不能满足您的需求时，可以通过FunctionGraph函数计算编写代码来实现更为定制化的诉求。
![](https://support.huaweicloud.com/bestpractice-ces/public_sys-resources/note_3.0-zh-cn.png)
目前部分区域已将通知对象更改为联系人，通知组更改为联系组，其他区域持续上线中，具体请以控制台页面显示为准。本章节以新版本页面为您介绍告警通知的配置方式。
#### 前提条件
请确保您已开通FunctionGraph函数云服务。具体操作，请参见[FunctionGraph业务使用流程](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0110.html)。
#### 应用场景
- 通过函数服务对告警通知内容的格式进行处理，来实现云监控通知渠道以外的工具接收告警通知。
- 通过函数服务处理告警通知内容，以实现云监控告警通知内容的自定义。
 
 #### 创建FunctionGraph函数
1. 登录[函数工作流控制台](https://console.huaweicloud.com/functiongraph/?locale=zh-cn)。
2. 在左侧的导航栏选择"函数 \> 函数列表"。
3. 单击右上方的"创建函数"，进入"创建函数"页面。
4. 在"创建函数"页面，创建方式选择"创建空白函数"，函数类型选择"事件函数"，输入函数名称，运行时选择"Python 3.9"，其他参数保持默认即可。 关于创建函数的更多参数说明请参见[创建事件函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1441.html)。
   图1创建函数   
   ![](https://support.huaweicloud.com/bestpractice-ces/zh-cn_image_0000002563140538.png "点击放大") 
5. 配置完成后，单击"创建函数"。 页面跳转至函数详情页面，并且新增一条函数。
   
6. 在函数详情页面的代码源中插入需要的自定义字段及其他参数信息，参考示例如下：
   - 告警通知内容模板的通知类型为指标。
   
   - 告警接收方式为URL，且URL地址为：http://10.181.139.219:5000/callback。
   
   - 告警通知内容字段包含AlarmRecordID、AlarmTime、AlarmLevel。通过函数接收告警通知支持的通知内容模板字段为系统模板，支持的字段结构请参见[指标类型支持的通知内容]和[事件类型支持的通知内容]，您可以根据需要进行调整。
   
   
   ```
   # -*- coding:utf-8 -*-
   import json
   import requests
   def handler(event, context):
       record = event["record"][0]
       smn = record['smn']
       message_str = smn['message']
       message = json.loads(message_str)
       template_variable = message['template_variable']
       AlarmRecordID = message['AlarmRecordID']
       AlarmTime = template_variable['AlarmTime']
       AlarmLevel = template_variable['AlarmLevel']
       Source = 'Huawei'
       NewEvent = {
           "AlarmRecordID": AlarmRecordID,
           "AlarmTime": AlarmTime,
           "AlarmLevel": AlarmLevel,
           "Source": Source
       }
       print(NewEvent)
       URL = 'http://10.181.139.219:5000/callback'
       r = requests.post(URL, json=NewEvent)
       return {
           "statusCode": 200,
           "isBase64Encoded": False,
           "body": json.dumps(NewEvent),
           "headers": {
               "Content-Type": "application/json"
           }
       }
   ```
   
7. 单击"部署代码"完成部署。
 
#### 创建联系人
1. 登录[云监控服务管理控制台](https://console.huaweicloud.com/ces/?#/monitor/overview)。

2. 在左侧导航栏选择"告警 \> 告警通知"，进入告警通知界面。
3. 在"联系人"页签，单击"创建联系人"，根据界面提示配置参数。
   图2创建联系人   
   ![](https://support.huaweicloud.com/bestpractice-ces/zh-cn_image_0000002563154722.png "点击放大")
   表1创建联系人 
   | 参数    | 取值样例                       | 参数说明                                                                                                                                                                                                                                                                                                                                                                |
   |:---|:---|:---|
   | 联系人名称  | **notification_functiongraph** | 联系人名称，输入长度范围为1到42个字符。                                                                                                                                                                                                                                                                                                                                             |
   | 选择渠道 | **FunctionGraph（函数）**          | 联系人接收告警通知的渠道，渠道选择"**FunctionGraph（函数）**"，并在选择对应的函数和版本。 - **函数** ：单击函数输入框，在弹出的"选择终端"弹窗中选择[创建FunctionGraph函数]配置的函数。  - **版本**：选择函数名称后，在页面回显函数终端信息地址及版本号信息，版本需要手动选择。   |
      
   
4. 单击"立即创建"保存配置。 在联系人列表中新增名称为**notification_functiongraph**的联系人。
   
 
 #### 创建联系组
1. 登录[云监控服务管理控制台](https://console.huaweicloud.com/ces/?#/monitor/overview)。

2. 在左侧导航栏选择"告警 \> 告警通知"，进入告警通知界面。
3. 在"联系组"页签，单击"创建联系组"，根据界面提示配置参数。
   图3创建联系组   
   ![](https://support.huaweicloud.com/bestpractice-ces/zh-cn_image_0000002563017412.png "点击放大")
   表2 
   | 参数     | 取值样例                              | 参数解释                                                                                                                                                                                                     |
   |:---|:---|:---|
   | 组名称   | **group_functiongraph**            | 联系组名称。只能由中文、英文字母、数字、下划线、 中划线组成，长度不得超过64个字符。                                                                                                                                                            |
   | 归属企业项目 | **default**                    | 联系组所属的企业项目。只有拥有该企业项目权限的用户才可以查看和管理该告警联系组。创建企业项目请参考：[创建企业项目](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763964.html)。                                                               |
   | 联系人    | **notification_functiongraph** | 选择已添加的联系人，每次最多添加10个联系人。 单击"选择联系人"按钮，在"选择联系人"页面，勾选已创建的联系人并单击![](https://support.huaweicloud.com/bestpractice-ces/zh-cn_image_0000002563177794.png)，将联系人添加到已选项列表中，单击"确定"。 |
      
   
4. 单击"立即创建"，完成创建联系组。 在联系组列表中新增一条名称为**group_functiongraph**的联系组。
   
您还可以将联系人添加至已创建的联系组中，具体操作请参见[添加联系人至联系组](https://support.huaweicloud.com/usermanual-ces/ces_01_0219.html#section4)。如果您期望通过告警策略的通知方式接收告警通知，可以在配置告警策略时选择该联系组作为通知对象，具体操作请参见[创建通知策略](https://support.huaweicloud.com/usermanual-ces/ces_01_0229.html#section1)。
#### 创建告警规则
1. 登录[云监控服务管理控制台](https://console.huaweicloud.com/ces/?#/monitor/overview)。

2. 在左侧导航栏选择"告警 \> 规则配置"。
   
   ![](https://support.huaweicloud.com/bestpractice-ces/public_sys-resources/note_3.0-zh-cn.png)
   部分区域操作路径为："告警 \> 告警规则"，请以控制台显示为准。
   
3. 单击"创建告警规则"按钮。
4. 在"创建告警规则"页面，配置告警规则的基本信息、告警内容、告警策略及告警通知，告警通知方式选择联系组，并选择[创建联系组]中创建的**group_functiongraph** 。
   告警规则参数说明请参见[创建告警规则和通知](https://support.huaweicloud.com/usermanual-ces/zh-cn_topic_0084572213.html)。
   
5. 配置完成后，单击"立即创建"。
 
#### 查看告警通知
当监控指标触发告警规则时，会触发调用目标函数，向告警通知接收目标发送告警通知。
您还可以从函数服务控制台查看目标函数的调用日志，并判断调用日志是否符合预期，具体操作请参见[配置和查看函数的调用日志](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1834.html)。
 #### 指标类型支持的通知内容
本章节以弹性云服务器的CPU使用率为例，为您介绍指标类型通知内容支持的字段结构，具体示例如下：
![](https://support.huaweicloud.com/bestpractice-ces/public_sys-resources/note_3.0-zh-cn.png)
若您对告警通知内容的字段有疑问，可以通过[新建工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)联系技术支持人员。
```
{
"message_type": "alarm",
"alarm_id": "al260512T094501SwVt7****",
"alarm_name": "alarm-****",
"alarm_status": "alarm",
"time": 1778550457194,
"namespace": "SYS.ECS",
"metric_name": "cpu_util",
"dimension": "instance_id:6b42c3f4-666d-409c-afe7-c16268d7****",
"period": 1,
"filter": "Raw data",
"comparison_operator": "\u003e=",
"value": 10,
"unit": "%",
"count": 1,
"alarmValue": [{
"time": 1778550457000,
"value": 0.037267080745341616
}],
"sms_content": "[华北-北京四(cn-north-4)][企业项目：default][重要告警]尊敬的***：弹性云服务器-云服务器 “as-config-****” （私网IP：192.168.X.X，资源ID：6b42c3f4-666d-409c-afe7-c16268d7****）的CPU使用率连续1次原始值 \u003e= 10 %，\n维度信息：CPU使用率：云服务器：6b42c3f4-666d-409c-afe7-c16268d70da1\n当前数据：0.04 %，\n于2026/05/12 09:47:37 GMT+08:00触发告警，告警流水号：ah260512T094737SSSej****，告警规则：alarm-****，告警通知类型：指标，详情请访问云监控服务。\n",
"default_content": "[华北-北京四(cn-north-4)][企业项目：default][重要告警]尊敬的***：弹性云服务器-云服务器 “as-config-****” （私网IP：192.168.X.X，资源ID：6b42c3f4-666d-409c-afe7-c16268d7****）的CPU使用率连续1次原始值 \u003e= 10 %，\n维度信息：CPU使用率：云服务器：6b42c3f4-666d-409c-afe7-c16268d7****\n当前数据：10.04 %，\n于2026/05/12 09:47:37 GMT+08:00触发告警，告警流水号：ah260512T094737SSSe****，告警规则：alarm-****，告警通知类型：指标，详情请访问云监控服务。\n",
"template_variable": {
"AlarmNotificationType": "指标",
"AccountName": "***",
"Namespace": "弹性云服务器",
"DimensionName": "云服务器",
"ResourceName": "as-config-****",
"ResourceTags": "11=22",
"MetricName": "CPU使用率",
"IsAlarm": true,
"IsCycleTrigger": false,
"AlarmLevel": "重要",
"Region": "华北-北京四",
"RegionId": "cn-north-4",
"ResourceId": "6b42c3f4-666d-409c-afe7-c16268d7****",
"PrivateIp": "192.168.X.X",
"CurrentData": "10.04 %",
"AlarmTime": "2026/05/12 09:47:37 GMT+08:00",
"DataPoint": {
"2026/05/12 09:47:37 GMT+08:00": "10.04 %"
},
"DataPointTime": ["2026/05/12 09:47:37 GMT+08:00"],
"AlarmDurationTime": "0",
"AlarmRecordID": "ah260512T094737SSSej****",
"AlarmRuleName": "alarm-****",
"AlarmId": "al260512T094501SwVt7****",
"MonitoringRange": "全部资源",
"IsOriginalValue": true,
"Filter": "原始值",
"ComparisonOperator": "\u003e=",
"Value": "10 %",
"Unit": "%",
"Count": 1,
"Link": "https://console.huaweicloud.com/ces/?region=cn-north-4#/alarm/histories?alarmRecordId=ah260512T094737SSSej****",
"EpName": "default",
"IsIEC": false,
"IsAgentEvent": false,
"ShowImpactAndSolution": false,
"ResourceDimensionInfos": [{
"MetricName": "CPU使用率",
"DimensionInfos": [{
"Name": "云服务器",
"Value": "6b42c3f4-666d-409c-afe7-c16268d7****"
}]
}]
},
"AlarmRecordID": "ah260512T094737SSSej****"
}
```
 #### 事件类型支持的通知内容
本章节以重启弹性云服务器为例，为您介绍事件类型通知内容支持的字段结构，具体示例如下：
![](https://support.huaweicloud.com/bestpractice-ces/public_sys-resources/note_3.0-zh-cn.png)
若您对告警通知内容的字段有疑问，可以通过[新建工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)联系技术支持人员。
```
{
"message_type": "alarm",
"alarm_id": "al260514T104252SVeqi****",
"alarm_name": "alarm-8***",
"alarm_status": "alarm",
"time": 1778726924655,
"namespace": "SYS.ECS",
"metric_name": "rebootServer",
"dimension": "instance_id:095b058c-ae86-4544-b3b9-6dd4583a****",
"period": 0,
"filter": "average",
"comparison_operator": "\\u003e=",
"value": 1,
"unit": "count",
"count": 1,
"alarmValue": [{
"time": 1778726607943,
"value": 1
}],
"sms_content": "[华北-北京四(cn-north-4)][企业项目：default][重要告警]尊敬的***：弹性云服务器“ecs-***”（私网IP：192.168.X.X，ID：095b058c-ae86-4544-b3b9-6dd4583a****）的重启虚拟机于2026/05/14 10:48:44 GMT+08:00触发告警，告警流水号：ah260514T104844Shz0J****，告警规则：alarm-8***，告警通知类型：事件，事件影响范围: 虚拟机重启，建议处理措施: 确认业务是否恢复，详情请访问云监控服务。",
"default_content": "[华北-北京四(cn-north-4)][企业项目：default][重要告警]尊敬的***：弹性云服务器“ecs-***”（私网IP：192.168.X.X，ID：095b058c-ae86-4544-b3b9-6dd4583a****）的重启虚拟机于2026/05/14 10:48:44 GMT+08:00触发告警，告警流水号：ah260514T104844Shz0J****，告警规则：alarm-8***，告警通知类型：事件，事件影响范围: 虚拟机重启，建议处理措施: 确认业务是否恢复，详情请访问云监控服务。",
"template_variable": {
"PrivateIPV6": "XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX",
"AlarmNotificationType": "事件",
"AccountName": "***",
"Namespace": "弹性云服务器",
"ResourceName": "ecs-****",
"ResourceTags": "CES_TAG_XXX",
"MetricName": "重启虚拟机",
"IsAlarm": true,
"IsCycleTrigger": false,
"AlarmLevel": "重要",
"Region": "华北-北京四",
"RegionId": "cn-north-4",
"ResourceId": "095b058c-ae86-4544-b3b9-6dd4583a****",
"PrivateIp": "192.168.X.X",
"CurrentData": "1.00 ",
"AlarmTime": "2026/05/14 10:48:44 GMT+08:00",
"DataPoint": {
"2026/05/14 10:43:27 GMT+08:00": "1.00"
},
"DataPointTime": ["2026/05/14 10:43:27 GMT+08:00"],
"AlarmRecordID": "ah260514T104844Shz0J****",
"AlarmRuleName": "alarm-8***",
"AlarmId": "al260514T104252SVeqi****",
"MonitoringRange": "全部资源",
"IsOriginalValue": false,
"Filter": "平均值",
"ComparisonOperator": "\\u003e=",
"Count": 1,
"Link": "https://console.huaweicloud.com/ces/?region=cn-north-4#/alarm/histories?alarmRecordId=ah260514T104844Shz0J****",
"EpName": "default",
"IsIEC": false,
"IsAgentEvent": false,
"ShowImpactAndSolution": true,
"ImpactScope": "虚拟机重启",
"RecommendedSolution": "确认业务是否恢复"
},
"AlarmRecordID": "ah260514T104844Shz0J****"
}
```
