使用 Amazon 监控应用程序 Auto Scaling 事件 EventBridge - Application Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon 监控应用程序 Auto Scaling 事件 EventBridge

Amazon EventBridge(以前称为 CloudWatch 事件)可帮助您监控特定于 Application Auto Scaling 的事件,并启动使用其他事件的目标操作 Amazon Web Services。来自 Amazon Web Services 的事件以近乎实时 EventBridge 的方式传送到。

使用 EventBridge,您可以创建匹配传入事件规则,并将它们路由到目标进行处理。

有关更多信息,请参阅《亚马逊 EventBridge 用户指南》 EventBridge中的 “亚马逊入门”。

Application Auto Scaling 事件

以下是 Application Auto Scaling 的示例事件。事件会尽可能生成。

Application Auto Scaling 目前只有特定于缩放到最大值的事件和 API 调用通过 CloudTrail 的事件才可用。

状态更改的事件:扩展到最大容量

以下示例事件显示 Application Auto Scaling 将可扩展目标的容量增加(横向扩展)至其最大容量限制。如果需求再次增加,Application Auto Scaling 将无法进一步扩展目标,因为它已经扩展到其最大容量。

detail 对象中,resourceIdserviceNamespacescalableDimension 属性的值用来标识可扩展目标。newDesiredCapacityoldDesiredCapacity 属性的值用于指横向扩展事件完成后的新容量和横向扩展事件开始前的原始容量。maxCapacity 是可伸缩目标的最大容量限制。

{ "version": "0", "id": "11112222-3333-4444-5555-666677778888", "detail-type": "Application Auto Scaling Scaling Activity State Change", "source": "aws.application-autoscaling", "account": "123456789012", "time": "2019-06-12T10:23:40Z", "region": "us-west-2", "resources": [], "detail": { "startTime": "2022-06-12T10:20:43Z", "endTime": "2022-06-12T10:23:40Z", "newDesiredCapacity": 8, "oldDesiredCapacity": 5, "minCapacity": 2, "maxCapacity": 8, "resourceId": "table/my-table", "scalableDimension": "dynamodb:table:WriteCapacityUnits", "serviceNamespace": "dynamodb", "statusCode": "Successful", "scaledToMax": true, "direction": "scale-out" }

要创建捕获所有可扩展目标的所有 scaledToMax 状态更改事件的规则,请使用以下示例事件模式。

{ "source": [ "aws.application-autoscaling" ], "detail-type": [ "Application Auto Scaling Scaling Activity State Change" ], "detail": { "scaledToMax": [ true ] } }

通过以下方式进行的 API 调用事件 CloudTrail

跟踪是一种 Amazon CloudTrail 用于将事件作为日志文件传输到 Amazon S3 存储桶的配置。 CloudTrail 日志文件包含日志条目。一个事件代表一个日志条目,包括有关所请求操作的信息、操作的日期和时间以及请求参数。要了解如何开始使用 CloudTrail,请参阅Amazon CloudTrail 用户指南中的创建跟踪

通过传递的事件 CloudTrail AWS API Call via CloudTrail具有的价值detail-type

以下示例事件表示一个 CloudTrail 日志文件条目,该条目显示控制台用户调用了 Application Auto Scaling RegisterScalableTarget 操作。

{ "version": "0", "id": "99998888-7777-6666-5555-444433332222", "detail-type": "AWS API Call via CloudTrail", "source": "aws.autoscaling", "account": "123456789012", "time": "2022-07-13T16:50:15Z", "region": "us-west-2", "resources": [], "detail": { "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "123456789012", "arn": "arn:aws:iam::123456789012:user/Bob", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "123456789012", "arn": "arn:aws:iam::123456789012:role/Admin", "accountId": "123456789012", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2022-07-13T15:17:08Z", "mfaAuthenticated": "false" } } }, "eventTime": "2022-07-13T16:50:15Z", "eventSource": "autoscaling.amazonaws.com", "eventName": "RegisterScalableTarget", "awsRegion": "us-west-2", "sourceIPAddress": "AWS Internal", "userAgent": "EC2 Spot Console", "requestParameters": { "resourceId": "spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "serviceNamespace": "ec2", "scalableDimension": "ec2:spot-fleet-request:TargetCapacity", "minCapacity": 2, "maxCapacity": 10 }, "responseElements": null, "additionalEventData": { "service": "application-autoscaling" }, "requestID": "e9caf887-8d88-11e5-a331-3332aa445952", "eventID": "49d14f36-6450-44a5-a501-b0fdcdfaeb98", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management", "sessionCredentialFromConsole": "true" } }

要根据所有可扩展DeregisterScalable目标的所有DeleteScaling策略和 Target API 调用创建规则,请使用以下示例事件模式:

{ "source": [ "aws.autoscaling" ], "detail-type": [ "AWS API Call via CloudTrail" ], "detail": { "eventSource": [ "autoscaling.amazonaws.com" ], "eventName": [ "DeleteScalingPolicy", "DeregisterScalableTarget" ], "additionalEventData": { "service": [ "application-autoscaling" ] } } }

有关使用的更多信息 CloudTrail,请参阅使用记录应用程序 Auto Scaling API 调用 Amazon CloudTrail