跳至主要内容

AWS 解决方案库

AWS 上自我修复代码的实现指南

概览

本指南将帮助软件公司建立用于检测错误日志、生成错误修复和创建拉取请求的系统。任何开发软件的公司都难免需要在解决错误与应对产品和功能开发的压力之间取得平衡。错误会分散开发者的注意力,降低用户体验,并导致产生误导性指标。本指南将帮助软件公司实施自动化系统,以检测并修复错误,从而提高应用程序的可靠性,并改善整体客户体验。

工作原理

这些技术细节包含一张架构图,用于说明如何有效使用本解决方案。该架构图展示了关键组件及其相互作用,并逐步概述了架构的结构和功能。

Well-Architected 支柱

上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。

CloudWatch 日志订阅会预先筛选应用程序错误日志,并自动调用 Lambda 函数进行进一步处理以修复错误。CloudWatch Lambda 可以帮助自动检测和分类应用程序错误。

阅读卓越运营白皮书

密钥存储在启用加密的参数存储库中,只能由具有明确权限的用户或角色读取。通过将密钥存储在参数存储中,您可以为每个参数创建精细的权限。所有 IAM 策略的范围均限定为服务和集成所需的最低权限。对参数进行加密还有助于在 AWS 管理控制台中隐藏密钥的值。限定范围的 IAM 政策有助于确保将每个 IAM 角色的爆炸半径限制在最低限度内。

阅读安全白皮书

Lambda DynamoDB Amazon SQS 是托管服务,可在多个可用区 (AZ) 之间提供自动可扩展性和可靠性。Lambda 提供无服务器计算以专注于代码,并提供无状态计算层。DynamoDB 是一个完全托管的 NoSQL 数据库,具有备份和复制功能,并提供原生备份和还原功能。Amazon SQS 通过服务之间的松散耦合来帮助确保分布式系统中的消息传输,从而减少系统出现故障的机会。

阅读可靠性白皮书

Lambda 具有高度可扩展性,可以实现项目的并行处理。DynamoDB 具有无状态 API 层和共享存储层,可实现几乎无限的存储和吞吐量。DynamoDB 流还允许对下游结构的项目更新进行高效的事件驱动处理。Amazon Bedrock 负责所有基础设施管理和模型扩展。

DynamoDB、Dy namoDB Streams、 Amazon Bedrock Lambda 的组合使您能够高效地扩展数据库,近乎实时地对数据变化做出反应,并按需处理事件,而无需承担服务器管理的开销。这对于该系统尤其重要,因为该系统的调用率可能不一致或不稳定。

阅读性能效率白皮书

Lambda DynamoDB 亚马逊 SQS Amazon Bedrock 都是无服务器服务,按使用量收费,而不是产生静态成本。该系统的调用率可能会不一致,经常出现无活动的时间段。无服务器服务可实现对按需资源的高效利用,并且仅在系统调用期间产生成本。

阅读成本优化白皮书

CloudWatch Lambda DynamoDB 亚马逊 SQS Amazon Bedrock 都是无服务器服务,它们不需要静态配置的服务器,在不活动期间也不会消耗资源。通过无服务器服务,您可以高效地使用按需资源,当不再使用这些资源时,会自动取消其预置,从而减少总体资源占用量。

阅读可持续发展白皮书

实施资源

提供了在 AWS 账户中进行实验和使用的详细指南。构建指南的每个阶段(包括部署、使用和清理)都将被检查,以便为部署做好准备。

示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。

开放实施指南在 GitHub 上打开示例代码

免责声明

示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。

找到今天要查找的内容了吗?

请提供您的意见,以便我们改进网页内容的质量。