首页 > web前端 > js教程 > 正文

掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应

碧海醫心
发布: 2025-01-07 11:35:54
原创
772人浏览过

处理 aws lambda 持续增长的错误率需要对错误进行分类并定义升级路径。本指南介绍如何利用 aws systems manager 事件管理器有效地自动化事件处理和升级。此工作流程包含使用 runbook 收集错误详细信息,并通过 amazon sns 通知相关人员。

为何选择 AWS Systems Manager 事件管理器?

AWS Systems Manager 事件管理器为 AWS 环境中的事件响应提供集中管理。主要优势包括:

  1. 原生 AWS 集成: 与 Amazon CloudWatch、AWS Lambda 和 Amazon EventBridge 等服务无缝集成。
  2. Runbook 自动化: 支持自动化或半自动化工作流程来排查问题和解决事件。
  3. 多渠道通知: 支持通过 Amazon SNS、Slack 和 Amazon Chime 发送通知。
  4. 成本效益: 对于中小型环境而言,是商业解决方案的理想替代方案。

局限性

对于需要详细报告、复杂团队层级和多级升级流程的大型组织,PagerDuty 或 ServiceNow 等专用工具可能更适合。

架构概述

该架构使用 CloudWatch 警报监控 AWS Lambda 函数的错误。事件管理器自动创建事件并执行 Runbook 以处理错误和发送通知。

掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应

错误场景

  • 错误 A: 标准事件,带有电子邮件通知。
  • 错误 B: 严重事件,需要短信通知和升级。

CloudWatch 警报配置区分这些错误类型,从而触发相应的事件响应。

分步配置

步骤 1:为 Lambda 错误创建 CloudWatch 警报

Lambda 函数示例:

import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)

def lambda_handler(event, context):
    error_type = event.get("errortype")

    try:
        if error_type == "a":
            logger.error("错误 A:发生标准异常。")
            raise Exception("发生错误 A")
        elif error_type == "b":
            logger.error("错误 B:发生严重运行时错误。")
            raise RuntimeError("发生严重错误 B")
        else:
            logger.info("未触发错误。")
            return {"statusCode": 200, "body": "成功"}
    except Exception as e:
        logger.exception("发生错误:%s", e)
        raise
登录后复制

配置 CloudWatch 指标和警报:

  1. 指标过滤器: 为错误 A 和错误 B 创建过滤器。

掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应

  1. 警报: 将这些过滤器与具有适当阈值和周期的警报关联。

掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应

  1. 警报操作: 设置触发器以启动事件管理器工作流程。

掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应

步骤 2:设置事件管理器

  1. 启用事件管理器: 在 AWS 管理控制台中导航到事件管理器设置并加入您的账户。

步骤 3:配置通知联系人

  • 电子邮件: 通知管理员错误 A。

掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应

  • 短信: 通知相关人员错误 B 升级。

掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应

步骤 4:定义升级计划

  • 错误 A: 如果未解决,首先发送电子邮件通知,然后发送短信。
  • 错误 B: 立即发送短信通知。

掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应

步骤 5:创建操作手册

运行手册模板:

{
  "schemaVersion": "0.3",
  "description": "Lambda 错误处理的运行手册。",
  "parameters": {
    "AlarmName": {
      "type": "String",
      "description": "CloudWatch 警报的名称"
    },
    "snsTopicArn": {
      "type": "String",
      "description": "用于通知的 SNS 主题 ARN"
    }
  },
  "mainSteps": [
    {
      "name": "GatherErrorLogs",
      "action": "aws:executeScript",
      "inputs": {
        "Runtime": "python3.8",
        "Script": `
          def script_handler(events, context):
              return {"status": "已收集日志"}
        `
      }
    },
    {
      "name": "SendNotification",
      "action": "aws:executeAwsApi",
      "inputs": {
        "Service": "sns",
        "Api": "Publish",
        "TopicArn": "{{ snsTopicArn }}",
        "Message": "已检测到 Lambda 错误。警报名称:{{ AlarmName }}"
      }
    }
  ]
}
登录后复制

步骤 6:制定响应计划

  • 为错误 A 和错误 B 定义单独的响应计划。
  • 将运行手册和通知渠道链接到每个响应计划。

步骤 7:将 CloudWatch 警报链接到事件管理器

  • 编辑警报操作以触发相应的事件管理器响应计划。

掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应

演示

掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应

商业工具比较

功能 AWS 事件管理器 PagerDuty ServiceNow
成本效益
AWS 集成 无缝 有限 有限
升级灵活性 中等
报告和分析 基础 高级 高级

AWS 事件管理器的理想用例:

  • 具有以 AWS 为中心的架构的中小型环境。
  • 简单的升级和通知需求。
  • 成本敏感的部署。

结论

AWS Systems Manager 事件管理器是经济高效的工具,用于在以 AWS 为中心的 环境中进行事件响应。虽然它缺少一些商业解决方案的高级功能,但它提供了与 AWS 服务的强大集成以及许多用例都足够的功能。它易于设置且成本低廉,使其成为中小型运营的有吸引力的选择。

参考

  • AWS Systems Manager 事件管理器
  • AWS Lambda 监控
  • Amazon CloudWatch 警报
  • PagerDuty
  • ServiceNow

所有图片链接保持不变。 对文本进行了同义词替换、句子结构调整等伪原创处理,确保文章大意不变。

以上就是掌握 AWS 事件管理:使用 Systems Manager 事件管理器自动响应的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号