

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

# 在運算環境中管理 AMI 版本
<a name="managing-ami-versions"></a>

AWS Batch 可讓您了解運算環境使用的 Amazon Machine Image AMIs)。

## 檢視 AMI 狀態
<a name="viewing-ami-status"></a>

您可以透過主控台或使用 [describe-compute-environments](https://docs.aws.amazon.com/cli/latest/reference/batch/describe-compute-environments.html) 命令，檢視運算環境中 AWS Batch 使用的 AMIs 狀態。

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

在 AWS Batch 主控台中，AMI 狀態資訊會顯示在具有下列狀態值的兩個位置：
+ **最新** – 使用 支援的最新 AMI AWS Batch。
+ **可用的更新** – 可用的更新。

**注意**  
AMI 狀態資訊只會針對 AWS Batch受管 AMIs顯示。在預設啟動範本的 `imageId`（已棄用）`imageIdOverride`、 或 中指定映像時，狀態不會出現。當運算環境具有啟動範本覆寫時，狀態不會顯示。如需 AMI 選擇的詳細資訊，請參閱 [AMI 選擇順序](ami-selection-order.md)。

運算環境頁面會顯示**批次映像狀態**欄，其中顯示`batchImageStatus`每個運算環境的整體 。如果運算環境有多個 AMIs，且任何一個 AMI 都有**可用的更新**，則主控台會顯示**適用於整個運算環境的更新**。

**注意**  
狀態會在運算環境開始擴展任何**映像類型**之後顯示。

在運算環境詳細資訊頁面上，**運算資源**索引標籤的 **Ec2 組態**區段會顯示運算環境中每個**影像類型的****批次影像狀態**。如果**映像類型**具有多個 AMIs，且任何一個 AMI 都有**可用的更新**，則主控台會顯示該**映像類型的****可用更新**。

**注意**  
只有在運算環境開始擴展該特定**映像類型的**執行個體之後，每個**映像類型的**狀態才會顯示。

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

當您呼叫 [describe-compute-environments](https://docs.aws.amazon.com/cli/latest/reference/batch/describe-compute-environments.html) 時，回應會包含 欄位`batchImageStatus`，提供具有下列值的 AMI 可見性：
+ `LATEST` – 使用 支援的最新 AMI AWS Batch。
+ `UPDATE_AVAILABLE` – 有可用的更新。

**注意**  
`batchImageStatus` 欄位僅顯示受 AWS Batch管 AMIs。在預設啟動範本的 `imageId`（已棄用）`imageIdOverride`、 或 中指定自訂 AMIs 時，不會顯示此項目。當運算環境具有啟動範本覆寫時，狀態不會顯示。如需如何 AWS Batch 選取 AMIs的詳細資訊，請參閱 [AMI 選擇順序](ami-selection-order.md)。  
欄位會針對每個 獨立顯示，`Ec2Configuration`且只有在運算環境開始使用該 擴展執行個體之後才會顯示`imageType`。

```
{
    "computeEnvironments": [
        {
            "computeEnvironmentName": "my-compute-environment",
            "computeResources": {
                "ec2Configuration": [
                    {
                        "imageType": "ECS_AL2023"
                    },
                    {
                        "imageType": "ECS_AL2023_NVIDIA",
                        "batchImageStatus": "UPDATE_AVAILABLE"
                    }
                ]
            }
        }
    ]
}
```

------

## 更新 AMI 版本
<a name="updating-ami-versions"></a>

當 AWS Batch 指出有可用的 AMI AMIs 更新時，您可以透過將運算環境更新為最新版本設定為 true，來更新運算環境以使用較新的 **AMI**。

您不需要指定新的 AMI IDs – 當您將更新 AMIs 設定為最新版本時 AWS Batch ， 會自動選取最新的支援 AMI。 ****

**重要**  
更新 AMIs 會觸發[基礎設施更新](infrastructure-updates.md)，而不是擴展更新。這表示 會將現有執行個體 AWS Batch 取代為使用更新 AMI 的新執行個體。更新程序需要比擴展更新更長的時間，並且可能會根據您的更新政策組態中斷執行中的任務。

**重要**  
如果您的配置策略是 `BEST_FIT` ，則必須執行[藍/綠更新](blue-green-updates.md)。

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

若要使用 AWS Batch 主控台更新 AMIs：

1. 在 https：//[https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) 開啟 AWS Batch 主控台。

1. 在導覽窗格中，選擇 **Environments (環境)**。

1. 選取顯示具有更新之 AMI 狀態的運算環境。

1. 選擇**立即更新** （依 AMI 狀態） 或**動作** > **編輯**以開啟更新模式。

1. 在 AMI 更新模態中，檢閱目前的 AMI 版本及其狀態。

1. 選擇**確認**或**儲存**以開始基礎設施更新。

在基礎設施更新`UPDATING`期間，運算環境狀態會變更為 。您可以在 主控台中監控進度。

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

若要使用 CLI AWS 更新 AMIs，請使用 `update-compute-environment`命令。

```
aws batch update-compute-environment \
    --compute-environment my-compute-environment \
    --compute-resources updateToLatestImageVersion=true
```

此命令會觸發基礎設施更新，以使用最新 AWS Batch支援的 AMIs將執行個體取代為新執行個體。

------

## 自訂 AMI 考量事項
<a name="custom-ami-considerations"></a>

如果您的運算環境使用自訂 AMIs，即 `ComputeResources.imageId`（已棄用）`Ec2Configuration.imageIdOverride`、、預設啟動範本或啟動範本覆寫中 AMIs 指定的 AMI， AWS Batch 則 無法提供這些 AMIs 的狀態資訊。
+ **狀態可見**性 – 自訂 AMIs會在主控台中顯示**批次映像狀態**的「**-**」，且不會在 API 回應中包含 `batchImageStatus` 欄位。
+ **手動管理** – 您負責維護和更新自訂 AMIs。隨時了解 AMI 供應商的安全性和軟體修補程式，並相應地更新您的自訂 AMIs。
+ **EC2 管理** – 使用 Amazon EC2 主控台或 APIs 來管理自訂 AMI 生命週期，包括建立新的版本和棄用舊版本。

如需管理自訂 AMIs的詳細資訊，請參閱 [運算資源 AMIs](compute_resource_AMIs.md)。

## AMI 更新的最佳實務
<a name="ami-update-best-practices"></a>

本節同時適用於自訂和預設 AMIs。
+ **定期監控** – 定期檢查運算環境的 AMI 狀態，以識別何時提供更新。對於預設 AMIs， `batchImageStatus`會在有可用的更新時顯示 。對於自訂 AMIs，您將需要使用其他資源，例如 AWS 安全公告。
+ **維護時段** – 在可接受任務中斷的維護時段期間排程 AMI 更新，因為基礎設施更新會取代現有的執行個體。
+ **任務重試策略** – 設定任務重試策略來處理在基礎設施更新期間可能中斷的任務。如需詳細資訊，請參閱[自動化任務重試](job_retries.md)。
+ **更新政策組態** – 設定適當的更新政策，以控制在基礎設施更新期間如何處理執行中的任務。如需詳細資訊，請參閱[執行基礎設施更新](infrastructure-updates.md)。
+ **測試** – 在開發環境中測試 AMI 更新，然後再將其套用至生產運算環境。