

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 监控部署以实现自动回滚
<a name="monitoring-deployments"></a>

在部署期间，您可以结合使用 AWS AppConfig [部署策略](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html)和基于 Ama CloudWatch zon 警报的自动回滚来缓解配置数据格式错误或不正确导致应用程序错误的情况。配置完成后，如果在部署期间有一个或多个 CloudWatch 警报进入`ALARM`或`INSUFFICIENT_DATA`状态，则 AWS AppConfig 会自动将您的配置数据回滚到以前的版本，从而防止应用程序中断或出错。

**注意**  
如果在关联的 CloudWatch 警报中禁用了操作，则部署不会自动回滚。  
[您可以使用和 [EnableAlarmActions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_EnableAlarmActions.html)API 操作来禁用[DisableAlarmActions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DisableAlarmActions.html)和启用警报，也可以使用中的[禁用警报操作和启用警报操作命令](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/disable-alarm-actions.html)。](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/enable-alarm-actions.html) AWS CLI

您还可以在部署仍在进行时通过调用 [StopDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StopDeployment.html)API 操作来回滚配置。

**重要**  
对于成功完成的部署， AWS AppConfig 还支持在 [StopDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StopDeployment.html)API 操作中使用`AllowRevert`参数将配置数据恢复到以前的版本。对于某些客户来说，成功部署后还原到先前配置可以保证数据与部署前相同。还原操作还会忽略警报监视器，这可能会阻止在应用程序紧急情况下前滚。有关更多信息，请参阅 [还原配置](appconfig-deploying-reverting.md)。

**要配置自动回滚，请在创建（或编辑）环境时在警报字段中CloudWatch 指定一个或 CloudWatch 多个指标的 Amazon 资源名称 (ARN) AWS AppConfig 。**有关更多信息，请参阅 [在中为您的应用程序创建环境 AWS AppConfig](appconfig-creating-environment.md)。

**注意**  
如果您使用第三方监控解决方案（例如 Datadog），可以创建 AWS AppConfig 扩展，在 `AT_DEPLOYMENT_TICK` 操作点检查警报，并作为安全防护措施在触发警报时回滚部署。有关 AWS AppConfig 扩展的更多信息，请参阅[使用扩展程序扩展 AWS AppConfig 工作流程](working-with-appconfig-extensions.md)。有关使用自定义扩展的更多信息，请参阅[演练：创建自定义扩展 AWS AppConfig](working-with-appconfig-extensions-creating-custom.md)。要查看使用`AT_DEPLOYMENT_TICK`操作点与 Datadog 集成的 AWS AppConfig 扩展程序的代码示例，请参阅 aws-samples /a [ws-appconfig-tick-extn-for-](https://github.com/aws-samples/aws-appconfig-tick-extn-for-datadog) datadog GitHub

## 用于监控自动回滚的建议指标
<a name="monitoring-deployments-metrics"></a>

您选择监控的指标将取决于您的应用程序使用的硬件和软件。 AWS AppConfig 客户经常监控以下指标。有关按分组的推荐指标的完整列表 AWS 服务，请参阅 *Amazon CloudWatch 用户指南*中的[推荐警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html)。

确定要监控的指标后，使用 CloudWatch 来配置警报。有关更多信息，请参阅[使用 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。


****  

| 服务 | 指标 | Details | 
| --- | --- | --- | 
| [Amazon API Gateway](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway) | 4XXError | 此警报检测较高的客户端错误率。这可能表明授权或客户端请求参数存在问题。这也可能意味着资源已被删除，或者客户端正在请求一个不存在的资源。考虑启用 Ama CloudWatch zon Logs 并检查是否存在任何可能导致 4XX 错误的错误。此外，可以考虑启用详细 CloudWatch 指标，以便按资源和方法查看此指标，并缩小错误来源。超出配置的节流限制也可能导致错误。 | 
| [Amazon API Gateway](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway) | 5XXError | 此警报有助于检测较高的客户端错误率。这可能表明 API 后端、网络或 API 网关与后端 API 之间的集成存在问题。 | 
| [Amazon API Gateway](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway) | 延迟 | 此警报检测阶段中的高延迟。确定 `IntegrationLatency` 指标值以检查 API 后端延迟。如果这两个指标基本一致，则 API 后端是导致延迟更高的来源，您应该调查其中是否存在问题。还可以考虑启用 “ CloudWatch 日志” 并检查是否存在可能导致高延迟的错误。 | 
| [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#AutoScaling) | GroupInServiceCapacity | 此警报有助于检测组中的容量何时低于工作负载所需的理想容量。要排查问题，请检查您的扩展活动是否存在启动失败，并确认所需的容量配置是否正确。 | 
| [Amazon EC2](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EC2) | CPUUtilization | 此警报有助于监控 EC2 实例的 CPU 利用率。根据应用程序的不同，持续的高利用率级别可能是正常的。但是，如果性能下降，并且应用程序不受磁盘 I/O、内存或网络资源的限制，那么 CPU 用完可能表示存在资源瓶颈或应用程序性能问题。 | 
| [Amazon ECS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ECS) | CPUReservation | 此警报有助于检测 ECS 集群的高 CPU 预留。高 CPU 预留可能表示集群将耗尽为任务注册的 CPU。 | 
| [Amazon ECS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ECS) | HTTP Code\_Target \_5xx\_Count | 此警报有助于检测 ECS 服务的服务器端高错误计数。这可能表示存在导致服务器无法处理请求的错误。 | 
| [具有 Container Insights 的 Amazon EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EKS-ContainerInsights) | node\_cpu\_utilization | 此警报有助于检测 Amazon EKS 集群的 Worker 节点中的高 CPU 利用率。如果利用率一直很高，则可能表明需要将 Worker 节点替换为具有更高 CPU 的实例，或者需要横向扩展系统。 | 
| [具有 Container Insights 的 Amazon EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EKS-ContainerInsights) | node\_memory\_utilization | 此警报有助于检测 Amazon EKS 集群的 Worker 节点中的高内存利用率。如果利用率一直很高，则可能表明需要扩展容器组（pod）副本的数量或优化您的应用程序。 | 
| [具有 Container Insights 的 Amazon EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EKS-ContainerInsights) | pod\_cpu\_utilization\_over\_pod\_limit | 此警报有助于检测 Amazon EKS 集群的容器组（pod）中的高 CPU 利用率。如果利用率一直很高，则可能表明需要增加受影响容器组（pod）的 CPU 限制。 | 
| [具有 Container Insights 的 Amazon EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EKS-ContainerInsights) | pod\_memory\_utilization\_over\_pod\_limit | 此警报有助于检测 Amazon EKS 集群的容器组（pod）中的高 CPU 利用率。如果利用率一直很高，则可能表明需要增加受影响容器组（pod）的 CPU 限制。 | 
| [AWS Lambda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Lambda) | 错误 | 此警报检测高错误计数。错误包括代码引发的异常和 Lambda 运行时系统引发的异常。 | 
| [AWS Lambda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Lambda) | 节流 | 此警报检测大量受限调用请求。限制在无并发可用于纵向扩展时发生。 | 
| [Lambda Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#LambdaInsights) | memory\_utilization | 此警报用于检测 Lambda 函数的内存利用率是否接近配置的限制。 | 
| [Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3) | 4xxErrors | 此警报有助于我们报告为响应客户端请求而发出的 4xx 错误状态代码的总数。例如，403 错误代码可能表示 IAM 策略不正确，404 错误代码可能表示客户端应用程序操作不当。 | 
| [Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3) | 5xxErrors | 此警报有助于检测高客户端错误数。此类错误表明客户端发出了服务器无法完成的请求。这可以帮助您弄清楚您的应用程序因为 S3 而面临的问题。 | 