amazon-web-services - 我可以使用 boto 将“ok_action”添加到现有的 cloudwatch 警报而不创建新警报吗?
问题描述
我有 700 个 cloudwatch 警报,我的用户在“OKActions”中没有任何操作就创建了这些警报,这意味着他们不会自行解决。
这些已经在生产中,所以我很犹豫要删除\移动\等。
在 AWS 控制台中,我可以简单地添加一个新操作。但是我在boto的文档中找不到这样的操作:
can_paginate()
delete_alarms()
delete_dashboards()
describe_alarm_history()
describe_alarms()
describe_alarms_for_metric()
disable_alarm_actions()
enable_alarm_actions()
generate_presigned_url()
get_dashboard()
get_metric_data()
get_metric_statistics()
get_metric_widget_image()
get_paginator()
get_waiter()
list_dashboards()
list_metrics()
put_dashboard()
put_metric_alarm()
put_metric_data()
set_alarm_state()
我可以使用 boto 在现有 cloudwatch 警报中添加“ok_action”而不创建新警报吗?
AWS 命令行 ? 其他一些aws自动化?
解决方案
put_metric_alarm
与 Boto3 一起使用。我会在几分钟后添加一些示例代码,下面是 CLI 参考。
笔记!!
更新现有警报时,其状态保持不变,但更新会完全覆盖警报的先前配置。
我验证了使用命令行工具时这是相同的操作。
前:
{
"AlarmName": "CPU_High",
"AlarmArn": "arn:aws:cloudwatch:us-east-1:<redacted>:alarm:CPU_High",
"AlarmDescription": "Check for High CPU usage",
"AlarmConfigurationUpdatedTimestamp": "2019-02-04T17:53:54.236Z",
"ActionsEnabled": true,
"OKActions": [],
"AlarmActions": [
"arn:aws:sns:us-east-1:<redacted>:<redacted>"
],
<deleted non-pertinent info>
}
CLI 命令:
aws cloudwatch put-metric-alarm --alarm-name "CPU_High" --metric-name "CPUUtilization" --period 300 --ok-actions "arn:aws:sns:us-east-1:<redacted>:<redacted>" --evaluation-periods 1 --threshold 99.0 --comparison-operator "GreaterThanOrEqualToThreshold" --namespace "AWS/EC2" --statistic "Average"
后:
{
"AlarmName": "CPU_High",
"AlarmArn": "arn:aws:cloudwatch:us-east-1:<redacted>:alarm:CPU_High",
"AlarmConfigurationUpdatedTimestamp": "2019-02-04T18:05:02.592Z",
"ActionsEnabled": true,
"OKActions": [
"arn:aws:sns:us-east-1:<redacted>:<redacted>"
],
"AlarmActions": [],
<deleted non-pertinent info>
}
来自 AWS 支持
你好,
感谢您联系 AWS 高级支持。我的名字是 Sonal,我将协助您处理此案。
我了解到您希望在现有警报中添加 OK 操作,而不修改警报配置中的任何其他内容。由于您需要将此操作添加到所有警报中,因此您正在寻找一种方法来执行此自定义脚本。
“PutMetricAlarm”是用于创建和更新警报的唯一 API。请注意,当您使用“PutMetricAlarm”API 更新现有警报时,更新会完全覆盖警报的先前配置。这意味着您必须指定现有警报的所有参数以及要修改的参数。
因此,为了修改现有警报,您的自定义脚本需要执行以下操作: -->获取所有要更新的警报的列表。您可以使用 "DescribeAlarms" API 1 --> 您可以解析警报列表,提取所需参数 --> 使用上述参数与 OKActions 参数一起进行 "PutMetricAlarm" API[2] 调用。
请注意,为您的特定环境提供部署这些解决方案的实际代码将超出 AWS Support 的范围,但当然,如果您遇到任何问题,我们将能够在此过程中为您提供指导。
参考:
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cloudwatch.html
推荐阅读
- macos - 无法在 MacOS 上自定义终端提示
- python - 访问最后一个卷积层迁移学习
- xamarin.forms - 错误 MSB6006:“代码设计”在 appcenter 上构建时以代码 1 退出
- javascript - Vimeo 事件不适用于受密码保护的实时事件
- android - 打电话后无法录音
- java - 无法在 Spring Boot 中添加产品和测试配置文件
- python - 根据组重新定义熊猫数据框
- android - 在片段中传递数组时获取错误空对象引用
- java - 我想在日期中添加月份,例如 2021 年 6 月 5 日到 2021 年 6 月 6 日,但只有天数增加,月和年没有增加
- spring-boot - 后端使用注册 JWT 创建用户