本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
暖集區範例事件和模式
Amazon EC2 Auto Scaling 支持 Amazon 中的多種預定義模式 EventBridge。這簡化了事件模式的建立方式。您可以在表單上選取欄位值,然後為您 EventBridge 產生模式。目前,Amazon EC2 Auto Scaling 不支援由具有暖集區的 Auto Scaling 群組發出之任何事件的預先定義模式。您輸入的模式必須以 JSON 物件的形式呈現。本節和 建立暖池事件的 EventBridge 規則 主題向您示範如何使用事件模式來選取事件並將其傳送到目標。
若要建立 EventBridge 規則以篩選 Amazon EC2 Auto Scaling 傳送到的暖池相關事件 EventBridge,請包括事件detail
區Destination
段中的Origin
和欄位。
Origin
和 Destination
的值可為以下項目:
EC2
| AutoScalingGroup
| WarmPool
範例事件
當您將生命週期掛鉤新增到自動擴展群組時,Amazon EC2 Auto Scaling 會在執行個體轉換為等待狀態 EventBridge時傳送事件至。如需詳細資訊,請參閱 在 Auto Scaling 群組中搭配暖池使用生命週期掛接。
本節包括 Auto Scaling 群組具有暖集區時這些事件的範例。盡可能發出事件。
橫向擴展生命週期動作
在橫向擴展時將執行個體轉換到等待狀態時,交付的事件會以 EC2 Instance-launch Lifecycle Action
作為 detail-type
的值。在 detail
物件中,Origin
和 Destination
屬性的值顯示執行個體的來源和目的地。
在此範例橫向擴展事件中,新執行個體會啟動,且由於已新增至暖集區,因此其狀態會變更為 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
-13
T00
:12
:37
.214
Z",
"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
-19
T00
:35
:52
.359
Z",
"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
物件中,Origin
和 Destination
屬性的值顯示執行個體的來源和目的地。
在此範例縮減事件中,由於執行個體已傳回至暖集區,因此其狀態會變更為 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
-28
T00
:12
:37
.214
Z",
"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" ] }