

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 取得 Spot 執行個體請求狀態
<a name="spot-request-status"></a>

為協助您追蹤 Spot 執行個體請求並規劃 Spot 執行個體的使用，請使用 Amazon EC2 提供的請求狀態。例如，請求狀態可提供 Spot 請求尚未完成的理由，或列出阻礙完成 Spot 請求的限制。

在程序的每個步驟中— (此程序也稱為 Spot 請求*生命週期*)—，特定的事件會決定相繼請求的狀態。

下圖顯示了 Spot 執行個體請求的運作方式。請注意，請求類型 (一次性或持久性) 會決定在 Amazon EC2 中斷 Spot 執行個體時或者如果您停止 Spot 執行個體，是否會再次開啟請求。如果是持久性請求，則會在 Spot 執行個體中斷之後再次開啟。如果是持久性請求，而且您停止 Spot 執行個體，只會在您啟動 Spot 執行個體後開啟請求。

![\[Spot 執行個體請求的運作方式。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/spot_lifecycle.png)


**Topics**
+ [取得請求狀態資訊](#get-spot-instance-request-status)
+ [Spot 請求狀態碼](#spot-instance-request-status-understand)
+ [EC2 Spot 執行個體請求履行事件](#spot-request-fulfillment-event)
+ [Spot 請求的狀態變更](spot-instances-request-status-lifecycle.md)

## 取得請求狀態資訊
<a name="get-spot-instance-request-status"></a>

您可取得 Spot 執行個體請求的狀態資訊。

------
#### [ Console ]

**取得請求狀態資訊**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在瀏覽窗格中，選取 ** Spot 請求** ，然後選取 Spot 請求。

1. 若要檢查狀態，請在**描述**索引標籤上檢查**狀態**欄位。

------
#### [ AWS CLI ]

**取得請求狀態資訊**  
使用下列 [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html) 命令。

```
aws ec2 describe-spot-instance-requests --spot-instance-request-ids sir-0e54a519c9EXAMPLE
```

------
#### [ PowerShell ]

**取得請求狀態資訊**  
使用 [Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html) cmdlet。

```
Get-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE
```

------

## Spot 請求狀態碼
<a name="spot-instance-request-status-understand"></a>

Spot 請求狀態資訊包含狀態碼、更新時間和狀態訊息。綜合這些資訊，可協助您決定 Spot 請求的處理方式。

下列是 Spot 請求的狀態碼：

`az-group-constraint`  
Amazon EC2 無法在同一個可用區域中，啟動您請求的所有執行個體。

`bad-parameters`  
Spot 請求的一個或多個參數無效 (例如，指定的 AMI 不存在)。狀態訊息會顯示哪個參數無效。

`canceled-before-fulfillment`  
Spot 請求在完成之前已遭到使用者取消。

`capacity-not-available`  
您所請求的執行個體沒有足夠的可用容量。

`constraint-not-fulfillable`  
無法完成 Spot 請求，因為有一個或多個限制條件無效 (例如，可用區域不存在)。狀態訊息會顯示哪個限制條件無效。

`fulfilled`  
Spot 請求是 `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 使用者指南」**中的 [Amazon VPC 配額](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-resource-quotas.html)。

`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 支援 尋求協助。

## EC2 Spot 執行個體請求履行事件
<a name="spot-request-fulfillment-event"></a>

履行 Spot 執行個體請求後，Amazon EC2 會將 EC2 Spot 執行個體請求履行事件傳送至 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-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"],
    "detail": {
        "spot-instance-request-id": "sir-0e54a519c9EXAMPLE",
        "instance-id": "i-1234567890abcdef0"
    }
}
```

如需詳細資訊，請參閱[「Amazon EventBridge 使用者指南」](https://docs.aws.amazon.com/eventbridge/latest/userguide/)。