Amazon ec2 如何删除连接到不存在实例的cloudwatch警报?

Amazon ec2 如何删除连接到不存在实例的cloudwatch警报?,amazon-ec2,ansible,amazon-cloudwatch,Amazon Ec2,Ansible,Amazon Cloudwatch,当我创建新的EC2实例时,我使用ansible创建新的cloudwatch度量警报。到目前为止一切顺利: -名称:设置AWS CloudWatch报警 主持人:tag_env_production 变量: 警报松弛:“arn:aws:sns:123:metrics警报松弛” 任务: -名称:“CPU>70%” ec2_公制_报警: 国家:现在 名称:“{ec2_tag_name}}-CPU” 地区:“{ec2_地区}” 尺寸: 实例id:“{ec2_id}” 名称空间:“AWS/EC2” 指标:

当我创建新的EC2实例时,我使用ansible创建新的cloudwatch度量警报。到目前为止一切顺利:

-名称:设置AWS CloudWatch报警
主持人:tag_env_production
变量:
警报松弛:“arn:aws:sns:123:metrics警报松弛”
任务:
-名称:“CPU>70%”
ec2_公制_报警:
国家:现在
名称:“{ec2_tag_name}}-CPU”
地区:“{ec2_地区}”
尺寸:
实例id:“{ec2_id}”
名称空间:“AWS/EC2”
指标:CPU利用率
统计:平均值
比较:“>=”
阈值:70.0
单位:百分比
期间:300
评估周期:1
描述:当CPU利用率超过70%并持续5分钟时触发
报警动作:['{{alarm\u slack}}']
时间:ec2_标记_组=='lazyservers'
执行如下:

ansible-playbook -v ec2_alarms.yml -i inventories/ec2/ec2.py
创建新实例后,我(手动)删除旧实例。问题是,我需要删除连接到旧实例的现有度量的警报

我是否遗漏了什么,或者无法通过动态库存做到这一点


我目前的想法是删除处于“终止”状态的实例的指标,但缺点是,如果我在这些实例终止后运行playbook,它们将不可见。

在删除实例之前,请删除警报尝试以下操作:

- name: delete alarm
  ec2_metric_alarm:
    state: absent
    region: ap-southeast-2
    name: "cpu-low"
    metric: "CPUUtilization"
    namespace: "AWS/EC2"
    statistic: Average
    comparison: "<="
    threshold: 5.0
    period: 300
    evaluation_periods: 3
    unit: "Percent"
    description: "This will alarm when a bamboo slave's cpu usage average is lower than 5% for 15 minutes "
    dimensions: {'InstanceId':'{{ instance_id }}'}
    alarm_actions: ["action1","action2"]
-名称:删除报警
ec2_公制_报警:
国家:缺席
地区:ap-东南-2
名称:“cpu低”
指标:“CPU利用率”
名称空间:“AWS/EC2”
统计:平均值

比较:“为什么要为每个实例创建不同的警报?@RaulHugo:我已经更新了这个问题。新服务器始终分配了新名称,报警名称使用这些实例名称。如果仍然相关,请您解释一下您的方法好吗?是的,我可以使用这种方法,但现在我通过动态库存创建新的服务器和警报,但到目前为止手动删除旧的服务器和警报。动态清单的问题是,我看不到已经终止的服务器——我已经提到,我可以删除那些处于“终止”状态的服务器,但当实例已经终止时,已经太晚了。