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

使用 Amazon EventBridge 监控 Application Auto Scaling 事件

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

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

有关更多信息,请参阅 Amazon EventBridge 用户指南中的 Amazon EventBridge 入门

Application Auto Scaling 事件

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

当前,只有特定扩展到最大值的事件和通过 CloudTrail 的 API 调用才可用于 Application Auto Scaling。

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

以下示例事件显示 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 ] } }

通过 CloudTrail 调用 API 的事件

跟踪是一种配置,让 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" } }

要创建基于所有可扩展目标的 DeleteScalingPolicyDeregisterScalableTarget API 调用的规则,请使用以下示例事件模式:

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

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