本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
當 Amazon Machine Image (AMI) 的狀態變更時,Amazon EC2 會產生傳送至 Amazon EventBridge (之前稱為 Amazon CloudWatch Events) 的事件。事件會以 JSON 格式傳送至預設 EventBridge 事件匯流排。您可以使用 Amazon EventBridge 來偵測並對這些事件做出反應。為此,您可以在 EventBridge 中建立觸發動作以回應事件的規則。例如,您可以建立 EventBridge 規則,以偵測 AMI 建立程序完成的時間,然後呼叫 Amazon SNS 主題來傳送電子郵件通知給您。
當 AMI 進入下列任何狀態時,Amazon EC2 會產生 EC2 AMI State Change
事件:
-
available
-
failed
-
deregistered
-
disabled
盡可能產生事件。
下表列出 AMI 操作和 AMI 可以進入的狀態。在該表中,是表示當對應操作執行時 AMI 可進入的狀態。
AMI 操作 | available | failed | deregistered | disabled |
---|---|---|---|---|
CopyImage |
是 |
是 |
||
CreateImage |
是 |
是 |
||
CreateRestoreImageTask |
是 |
是 |
||
DeregisterImage |
是 |
|||
DisableImage |
是 |
|||
EnableImage |
是 |
|||
RegisterImage |
是 |
是 |
EC2 AMI State Change 事件
事件詳細資訊
您可以使用事件中的下列欄位來建立觸發動作的規則:
"source": "aws.ec2"
-
識別該事件是來自 Amazon EC2。
"detail-type": "EC2 AMI State Change"
-
識別事件名稱。
"detail": { "ImageId": "ami-0123456789example", "State": "available", }
-
提供 AMI ID 和 AMI 狀態 (
available
、failed
、deregistered
、或disabled
)。
如需詳細資訊,請參閱「Amazon EventBridge 使用者指南」中的以下內容:
如需如何建立 Lambda 函數和執行 Lambda 函數的 EventBridge 規則的教學課程,請參閱「AWS Lambda 開發人員指南」中的教學課程:使用 EventBridge 記錄 Amazon EC2 執行個體的狀態。
available 事件
以下是 CreateImage
、CopyImage
、RegisterImage
、CreateRestoreImageTask
或 EnableImage
操作成功之後,AMI 進入 available
狀態時,Amazon EC2 產生的事件範例。
"State": "available"
表示操作成功。
{
"version": "0",
"id": "example-9f07-51db-246b-d8b8441bcdf0",
"detail-type": "EC2 AMI State Change",
"source": "aws.ec2",
"account": "012345678901",
"time": "yyyy-mm-ddThh:mm:ssZ",
"region": "us-east-1",
"resources": ["arn:aws:ec2:us-east-1::image/ami-0123456789example"],
"detail": {
"RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
"ImageId": "ami-0123456789example",
"State": "available",
"ErrorMessage": ""
}
}
failed 事件
以下是 CreateImage
、CopyImage
、RegisterImage
或 CreateRestoreImageTask
操作失敗之後,AMI 進入 failed
狀態時,Amazon EC2 產生的事件範例。
下列欄位會提供相關資訊:
-
"State": "failed"
- 表示操作失敗。 -
"ErrorMessage": ""
- 提供操作失敗的原因。
{
"version": "0",
"id": "example-9f07-51db-246b-d8b8441bcdf0",
"detail-type": "EC2 AMI State Change",
"source": "aws.ec2",
"account": "012345678901",
"time": "yyyy-mm-ddThh:mm:ssZ",
"region": "us-east-1",
"resources": ["arn:aws:ec2:us-east-1::image/ami-0123456789example"],
"detail": {
"RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
"ImageId": "ami-0123456789example",
"State": "failed",
"ErrorMessage": "Description of failure"
}
}
deregistered 事件
以下是在 DeregisterImage
操作成功之後,AMI 進入 deregistered
狀態時,Amazon EC2 產生的事件範例。如果操作失敗,則不會產生任何事件。因為 DeregisterImage
是一個同步操作,所以會立刻發現所有失敗。
"State": "deregistered"
表示 DeregisterImage
操作成功。
{
"version": "0",
"id": "example-9f07-51db-246b-d8b8441bcdf0",
"detail-type": "EC2 AMI State Change",
"source": "aws.ec2",
"account": "012345678901",
"time": "yyyy-mm-ddThh:mm:ssZ",
"region": "us-east-1",
"resources": ["arn:aws:ec2:us-east-1::image/ami-0123456789example"],
"detail": {
"RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
"ImageId": "ami-0123456789example",
"State": "deregistered",
"ErrorMessage": ""
}
}
disabled 事件
以下是在 DisableImage
操作成功之後,AMI 進入 disabled
狀態時,Amazon EC2 產生的事件範例。如果操作失敗,則不會產生任何事件。因為 DisableImage
是一個同步操作,所以會立刻發現所有失敗。
"State": "disabled"
表示 DisableImage
操作成功。
{
"version": "0",
"id": "example-9f07-51db-246b-d8b8441bcdf0",
"detail-type": "EC2 AMI State Change",
"source": "aws.ec2",
"account": "012345678901",
"time": "yyyy-mm-ddThh:mm:ssZ",
"region": "us-east-1",
"resources": ["arn:aws:ec2:us-east-1::image/ami-0123456789example"],
"detail": {
"RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
"ImageId": "ami-0123456789example",
"State": "disabled",
"ErrorMessage": ""
}
}