本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon 監控AMI事件 EventBridge
當 Amazon 機器映像(AMI)的狀態發生變化時,Amazon EC2 生成一個發送到 Amazon 的事件 EventBridge (以前稱為 Amazon CloudWatch 活動)。事件會以JSON格式傳送至預設 EventBridge 事件匯流排。您可以使用 Amazon EventBridge 偵測這些事件並做出回應。您可以透過在其中建立規則 EventBridge 來觸發動作以回應事件來執行此操作。例如,您可以建立 EventBridge 規則來偵測建AMI立程序何時完成,然後叫用 Amazon SNS 主題以傳送電子郵件通知給您。
Amazon 在AMI進入以下任何狀態時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 (
available
、、failed
或disabled
) 的 AMI ID 和狀態。deregistered
如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的以下內容:
如需如何建立 Lambda 函數的教學課程以及執行 Lambda 函數的 EventBridge 規則,請參閱AWS Lambda 開發人員指南 EventBridge中的教學課程:使用記錄 Amazon EC2 執行個體的狀態。
available 事件
以下是 Amazon 在成功CreateImage
、、CopyImage
或EnableImage
操作後AMI進入available
狀態時EC2產生的事件範例。RegisterImage
CreateRestoreImageTask
"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 事件
以下是 Amazon 在失敗CreateImage
、、CopyImage
或CreateRestoreImageTask
操作後AMI進入failed
狀態時EC2產生的事件範例。RegisterImage
下列欄位會提供相關資訊:
-
"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 事件
以下是 Amazon 在成功DeregisterImage
操作後AMI進入deregistered
狀態時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 事件
以下是 Amazon 在成功DisableImage
操作後AMI進入disabled
狀態時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": "" } }