暖集區範例事件和模式 - Amazon EC2 Auto Scaling

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

暖集區範例事件和模式

Amazon EC2 Auto Scaling 支持 Amazon 中的多種預定義模式 EventBridge。這簡化了事件模式的建立方式。您可以在表單上選取欄位值,然後為您 EventBridge 產生模式。目前,Amazon EC2 Auto Scaling 不支援由具有暖集區的 Auto Scaling 群組發出之任何事件的預先定義模式。您輸入的模式必須以 JSON 物件的形式呈現。本節和 建立暖池事件的 EventBridge 規則 主題向您示範如何使用事件模式來選取事件並將其傳送到目標。

若要建立 EventBridge 規則以篩選 Amazon EC2 Auto Scaling 傳送到的暖池相關事件 EventBridge,請包括事件detailDestination段中的Origin和欄位。

OriginDestination 的值可為以下項目:

EC2 | AutoScalingGroup | WarmPool

範例事件

當您將生命週期掛鉤新增到自動擴展群組時,Amazon EC2 Auto Scaling 會在執行個體轉換為等待狀態 EventBridge時傳送事件至。如需詳細資訊,請參閱 結合使用 lifecycle hook 與暖集區

本節包括 Auto Scaling 群組具有暖集區時這些事件的範例。盡可能發出事件。

注意

如需擴展成功時 Amazon EC2 Auto Scaling 傳送 EventBridge 到的事件,請參閱成功的擴展事件。如需擴展不成功的事件,請參閱 不成功的擴展事件

橫向擴展生命週期動作

在橫向擴展時將執行個體轉換到等待狀態時,交付的事件會以 EC2 Instance-launch Lifecycle Action 作為 detail-type 的值。在 detail 物件中,OriginDestination 屬性的值顯示執行個體的來源和目的地。

在此範例橫向擴展事件中,新執行個體會啟動,且由於已新增至暖集區,因此其狀態會變更為 Warmed:Pending:Wait。如需詳細資訊,請參閱 暖集區中的執行個體生命週期狀態轉換

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance-launch Lifecycle Action", "source": "aws.autoscaling", "account": "123456789012", "time": "2021-01-13T00:12:37.214Z", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "LifecycleActionToken": "71514b9d-6a40-4b26-8523-05e7eEXAMPLE", "AutoScalingGroupName": "my-asg", "LifecycleHookName": "my-launch-lifecycle-hook", "EC2InstanceId": "i-1234567890abcdef0", "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING", "NotificationMetadata": "additional-info", "Origin": "EC2", "Destination": "WarmPool" } }

在此範例橫向擴展事件中,由於執行個體已從暖集區新增至 Auto Scaling 群組,因此其狀態會變更為 Pending:Wait。如需詳細資訊,請參閱 暖集區中的執行個體生命週期狀態轉換

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance-launch Lifecycle Action", "source": "aws.autoscaling", "account": "123456789012", "time": "2021-01-19T00:35:52.359Z", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "LifecycleActionToken": "19cc4d4a-e450-4d1c-b448-0de67EXAMPLE", "AutoScalingGroupName": "my-asg", "LifecycleHookName": "my-launch-lifecycle-hook", "EC2InstanceId": "i-1234567890abcdef0", "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING", "NotificationMetadata": "additional-info", "Origin": "WarmPool", "Destination": "AutoScalingGroup" } }

縮減生命週期動作

在縮減時將執行個體轉換到等待狀態時,交付的事件會以 EC2 Instance-terminate Lifecycle Action 作為 detail-type 的值。在 detail 物件中,OriginDestination 屬性的值顯示執行個體的來源和目的地。

在此範例縮減事件中,由於執行個體已傳回至暖集區,因此其狀態會變更為 Warmed:Pending:Wait。如需詳細資訊,請參閱 暖集區中的執行個體生命週期狀態轉換

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance-terminate Lifecycle Action", "source": "aws.autoscaling", "account": "123456789012", "time": "2022-03-28T00:12:37.214Z", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "LifecycleActionToken": "42694b3d-4b70-6a62-8523-09a1eEXAMPLE", "AutoScalingGroupName": "my-asg", "LifecycleHookName": "my-termination-lifecycle-hook", "EC2InstanceId": "i-1234567890abcdef0", "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING", "NotificationMetadata": "additional-info", "Origin": "AutoScalingGroup", "Destination": "WarmPool" } }

事件模式範例

前一節提供了由 Amazon EC2 Auto Scaling 發出的範例事件。

EventBridge 事件模式與它們相符的事件具有相同的結構。該模式引用您欲比對的欄位,並提供您正在尋找的數值。

事件中的下列欄位會形成規則中定義的事件模式,以呼叫動作:

"source": "aws.autoscaling"

識別該事件是來自 Amazon EC2 Auto Scaling。

"detail-type": "EC2 Instance-launch Lifecycle Action"

識別事件類型。

"Origin": "EC2"

識別執行個體的來源。

"Destination": "WarmPool"

識別執行個體的目的地。

使用下列範例事件模式來擷取與進入暖集區的執行個體相關聯的所有 EC2 Instance-launch Lifecycle Action 事件。

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-launch Lifecycle Action" ], "detail": { "Origin": [ "EC2" ], "Destination": [ "WarmPool" ] } }

使用下列範例事件模式來擷取與因橫向擴展事件而離開暖集區的執行個體相關聯的所有 EC2 Instance-launch Lifecycle Action 事件。

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-launch Lifecycle Action" ], "detail": { "Origin": [ "WarmPool" ], "Destination": [ "AutoScalingGroup" ] } }

使用下列範例事件模式來擷取與直接啟動至 Auto Scaling 群組的執行個體相關聯的所有 EC2 Instance-launch Lifecycle Action 事件。

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-launch Lifecycle Action" ], "detail": { "Origin": [ "EC2" ], "Destination": [ "AutoScalingGroup" ] } }

使用下列範例事件模式來擷取與在縮減時將執行個體傳回至暖集區相關聯的所有 EC2 Instance-terminate Lifecycle Action 事件。

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-terminate Lifecycle Action" ], "detail": { "Origin": [ "AutoScalingGroup" ], "Destination": [ "WarmPool" ] } }

使用下列範例事件模式擷取與 EC2 Instance-launch Lifecycle Action 相關聯的所有事件,無論原始伺服器或目的地為何。

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-launch Lifecycle Action" ] }