如何查詢
使用上述查詢,目的是為了得知 RequestSpotFleet 該事件
Spot Fleet 的請求類型 (Persistence) 有 2 種狀態,一種是 request 而另一種是 maintain [1],定義如下。
request
如果您將請求類型設定為 request,Spot Fleet 會針對您所需容量送出非同步的一次性請求。如果容量因為 Spot 中斷而減少,機群不會嘗試補充 Spot 執行個體;如果無法使用容量,也不會在替代的 Spot 容量集區中提交請求。
maintain
如果您將請求類型設定為 maintain,Spot Fleet 會針對您所需容量送出非同步請求,並自動補充所有中斷的 Spot 執行個體以維持容量。
透過 CloudTrail 查詢 RequestSpotFleet 的 'requestParameters' 當中 'RequestSpotFleetRequest.SpotFleetRequestConfig.Type' 的輸出內容[2],定義如下。
客戶剛好是使用預設 request 故不會再長新的 Spot 機器。
使用CloudTrail Event name 篩選 BidEvictedEvent,可以判斷是否為 Spot 中斷導致機器消失。
也建議參閱文件[3][4]利用Amazon EventBridge 來串接通知您 Spot 中斷通知,來繞過潛在的中斷問題。
[1] Spot Fleet 請求類型 - https://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/spot-fleet-requests.html
[2] SpotFleetRequestConfigData - https://docs.aws.amazon.com/zh_tw/AWSEC2/latest/APIReference/API_SpotFleetRequestConfigData.html
[3] https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-instance-termination-notices.html