使用 Amazon 監控應用程式自動擴展事件 EventBridge - Application Auto Scaling

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon 監控應用程式自動擴展事件 EventBridge

Amazon EventBridge (以前稱為 CloudWatch 事件) 可協助您監控應用程式自動擴展特定的事件,並啟動使用其他功能的目標動作 AWS 服務。來自的事件 AWS 服務 會以近乎即時 EventBridge 的方式傳送至。

您可以使用建立符合傳入事件規則 EventBridge,並將其路由到目標進行處理。

如需詳細資訊,請參閱 Amazon EventBridge 使用者指南 EventBridge中的開始使用 Amazon

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

追蹤是 AWS CloudTrail 用來將事件當做日誌檔傳遞到 Amazon S3 儲存貯體的組態。 CloudTrail 記錄檔包含記錄項目。一個事件代表一個日誌項目,它包含所要求動作、動作日期和時間以及要求參數等資訊。若要瞭解如何開始使用 CloudTrail,請參閱《AWS CloudTrail 使用指南》中的「建立追蹤」。

透過傳送的事AWS API Call via CloudTrail件 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" } }

若要根據所有可縮放目標的 all DeleteScalingPolicyDeregisterScalableTargetAPI呼叫建立規則,請使用下列範例事件模式:

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

如需使用的更多資訊 CloudTrail,請參閱記錄應用程式自動調整API調整的 AWS CloudTrail