本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
取得 Spot 執行個體請求的狀態
為了協助您追蹤競價型執行個體請求並規劃使用 Spot 執行個體,請使用 Amazon 提供的請求狀態EC2。例如,請求狀態可提供 Spot 請求尚未完成的理由,或列出阻礙完成 Spot 請求的限制。
在程序的每個步驟中— (此程序也稱為 Spot 請求生命週期)—,特定的事件會決定相繼請求的狀態。
下圖顯示了 Spot 執行個體請求的運作方式。請注意,請求類型 (一次性或永久性) 會決定當 Amazon EC2 中斷 Spot 執行個體或停止 Spot 執行個體時是否再次開啟請求。如果是持久性請求,則會在 Spot 執行個體中斷之後再次開啟。如果是持久性請求,而且您停止 Spot 執行個體,只會在您啟動 Spot 執行個體後開啟請求。
取得請求狀態資訊
您可以使用 AWS Management Console 或命令列工具取得要求狀態資訊。
使用主控台取得要求狀態資訊
-
在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/
。 -
在瀏覽窗格中,選取 Spot 請求 ,然後選取 Spot 請求。
-
若要檢查狀態,請在描述索引標籤上檢查狀態欄位。
使用命令列來取得請求狀態資訊
您可以使用下列其中一個命令。如需有關這些命令列介面的詳細資訊,請參閱訪問 Amazon EC2。
-
describe-spot-instance-requests (AWS CLI)
-
Get-EC2SpotInstanceRequest (AWS Tools for Windows PowerShell)
Spot 請求狀態碼
Spot 請求狀態資訊包含狀態碼、更新時間和狀態訊息。綜合這些資訊,可協助您決定 Spot 請求的處理方式。
下列是 Spot 請求的狀態碼:
az-group-constraint
-
Amazon EC2 無法在相同可用區域中啟動您請求的所有執行個體。
bad-parameters
-
Spot 請求的一個或多個參數無效 (例如,AMI您指定的不存在)。狀態訊息會顯示哪個參數無效。
canceled-before-fulfillment
-
Spot 請求在完成之前已遭到使用者取消。
capacity-not-available
-
您所請求的執行個體沒有足夠的可用容量。
constraint-not-fulfillable
-
無法完成 Spot 請求,因為有一個或多個限制條件無效 (例如,可用區域不存在)。狀態訊息會顯示哪個限制條件無效。
fulfilled
-
競價型請求是
active
,Amazon EC2 正在啟動您的競價型執行個體。 instance-stopped-by-price
-
您的執行個體已停止,因為 Spot 價格超過您的最高價格。
instance-stopped-by-user
-
您的執行個體已停止,因為使用者已停止該執行個體或從該執行個體執行關機命令。
instance-stopped-no-capacity
-
您的執行個體因為EC2容量管理需求而停止。
instance-terminated-by-price
-
您的執行個體已終止,因為 Spot 價格超過您的最高價格。如果請求為永久性,程序會重新開始執行,因此請求會處於等待評估的狀態。
instance-terminated-by-schedule
-
您的 Spot 執行個體已在排程持續時間結束時終止。
instance-terminated-by-service
-
執行個體會從停止狀態終止。
instance-terminated-by-user
或spot-instance-terminated-by-user
-
您終止了已完成的 Spot 執行個體,因此請求狀態為
closed
(除非為持久性請求),而執行個體狀態為terminated
。 instance-terminated-launch-group-constraint
-
啟動群組中的一個或多個執行個體已終止,因此不再滿足啟動群組的限制條件。
instance-terminated-no-capacity
-
由於標準容量管理程序,您的執行個體已終止。
launch-group-constraint
-
Amazon EC2 無法同時啟動您要求的所有執行個體。啟動群組中的所有執行個體會同時啟動和終止。
limit-exceeded
-
超過磁碟區數量或總EBS磁碟區儲存的限制。如需詳細資訊,請參閱 Amazon EBS使用者指南EBS中的 Amazon 配額。
marked-for-stop
-
Spot 執行個體已標記停止。
marked-for-termination
-
Spot 執行個體已標記終止。
not-scheduled-yet
-
在尚未達到排程日期之前,將不會評估 Spot 請求。
pending-evaluation
-
在您發出 Spot 執行個體請求後,在系統評估請求的參數時,該請求會進入
pending-evaluation
狀態。 pending-fulfillment
-
Amazon EC2 正在嘗試佈建您的競價型執行個體。
placement-group-constraint
-
尚無法完成 Spot 請求,因為目前無法將 Spot 執行個體加入置放群組。
price-too-low
-
尚無法完成 Spot 請求,因為最高價格低於 Spot 價格。在這種情況中,不會啟動任何執行個體,而請求的狀態仍為
open
。 request-canceled-and-instance-running
-
您在 競價型執行個體仍在執行時取消了 Spot 請求。請求已
cancelled
,但執行個體仍處於running
狀態。 schedule-expired
-
Spot 請求已過期,因為未在指定日期之前完成。
system-error
-
出現未預期的系統錯誤。如果這是一個經常性的問題,請聯繫 AWS Support 尋求幫助。
EC2競價型執行個體請求履行
完成競價型執行個體請求後,Amazon EC2 會將EC2競價型執行個體請求履行事件傳送給 Amazon EventBridge。您可以建立規則以在發生此事件時採取動作,例如叫用 Lambda 函數或通知 Amazon SNS 主題。
以下是此事件的範例資料。
{
"version": "0",
"id": "01234567-1234-0123-1234-012345678901
",
"detail-type": "EC2 Spot Instance Request Fulfillment",
"source": "aws.ec2",
"account": "123456789012
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-2
",
"resources": ["arn:aws:ec2:us-east-2
:123456789012
:instance/i-1234567890abcdef0
"],
"detail": {
"spot-instance-request-id": "sir-1a2b3c4d
",
"instance-id": "i-1234567890abcdef0
"
}
}
如需詳細資訊,請參閱 Amazon EventBridge 使用者指南。