

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

# AMI 選擇順序
<a name="ami-selection-order"></a>

AWS Batch 會使用下列優先順序來決定運算資源的 Amazon Machine Image (AMI)。了解此順序可協助您了解為什麼要為您的運算環境 AWS Batch 選擇特定的 AMI：

1. **啟動範本覆寫 AMI** - 如果啟動執行個體的啟動範本覆寫具有映像，則會使用其映像。

1. **運算資源映像 ID （已棄用）** - 如果設定，則會使用此運算環境 AMI。*注意：已棄用欄位；請改用 ec2Configuration.imageIdOverride。*

1. **EC2 組態映像 ID 覆寫** - 如果指定，則會使用此欄位中的映像。

1. **啟動範本 AMI** - 如果運算環境具有與映像相關聯的啟動範本，則會使用此映像。

1. **AWS 預設 AMI** - 如果未設定上述任何項目， 會根據 AWS Batch ec2Configuration 中指定的 imageType 選取預設 AMI。

**注意**  
ec2Configuration 參數是選用的。省略時， 會根據運算環境中啟動的執行個體類型， AWS Batch 自動選取適當的 ec2Configuration 和預設 AMI。

**注意**  
此 AMI 選擇順序不適用於 Fargate 運算環境。

## 從最高到最低優先順序的 AMI 選擇順序
<a name="ami-order"></a>

1. **啟動範本覆寫 AMI** （最高優先順序）

   **API 欄位：**`overrides[].launchTemplateId`具有目標執行個體類型

   **參考：** [LaunchTemplateSpecification](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html)

   覆寫範本以特定執行個體類型為目標，並提供比預設啟動範本更精細的控制。它們優先於所有其他符合執行個體類型的 AMI 規格。

   ```
   {
     "computeResources": {
       "launchTemplate": {
         "launchTemplateId": "lt-default",
         "overrides": [
           {
             "launchTemplateId": "lt-gpu-optimized",
             "targetInstanceTypes": ["p3.2xlarge", "g4dn.xlarge"]
           }
         ]
       }
     }
   }
   ```

1. **運算資源映像 ID**

   **API 欄位：** `computeResources.imageId`

   **參考：**[CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html)

   您可以直接在運算環境層級指定 AMI。這優先於 EC2 組態覆寫和啟動範本 （覆寫範本除外）。

   在具有多個 EC2 組態的運算環境中 （例如 `ECS_AL2023`和 `ECS_AL2023_NVIDIA`)，此處指定的 AMI ID 用於所有 EC2 組態。
**重要**  
`imageId` 欄位已棄用。請`ec2Configuration.imageIdOverride`改用 。

   ```
   {
     "computeResources": {
       "imageId": "ami-12345678",
       "instanceTypes": ["m5.large", "m5.xlarge"]
     }
   }
   ```

1. **EC2 組態映像 ID 覆寫**

   **API 欄位：** `computeResources.ec2Configuration[].imageIdOverride`

   **參考：**[Ec2Configuration](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html)

   EC2 組態提供影像類型特定的覆寫。此設定會覆寫指定映像類型的預設 AMI 選擇和啟動範本 AMI。

   ```
   {
     "computeResources": {
       "ec2Configuration": [
         {
           "imageType": "ECS_AL2",
           "imageIdOverride": "ami-87654321"
         }
       ]
     }
   }
   ```

1. **啟動範本 AMI**

   **API 欄位：**在 Amazon EC2 啟動範本`ImageId`中

   **參考：** [搭配 使用 Amazon EC2 啟動範本 AWS Batch](launch-templates.md)

   當您在啟動範本中指定 AMI 時，其優先順序高於預設 AMI 選擇，但會由優先順序較高的設定覆寫。

   ```
   // EC2 Launch Template content
   {
     "LaunchTemplateName": "my-batch-template",
     "LaunchTemplateData": {
       "ImageId": "ami-12345678"
     }
   }
   ```

   由 AWS Batch 啟動範本參考：

   ```
   // Batch Launch Template content
   {
     "computeResources": {
       "launchTemplate": {
         "launchTemplateName": "my-batch-template",
         "version": "$Latest"
       }
     }
   }
   ```

1. **AWS 預設 AMI** （最低優先順序）

   **API 欄位：**由 決定 `computeResources.ec2Configuration[].imageType`

   **參考：**[Ec2Configuration imageType](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html)

   未指定自訂 AMI 時， 會根據映像類型 AWS Batch 自動選取最新核准的 Amazon ECS 最佳化 AMI。
**注意**  
`ec2Configuration` 為選用。如果`ec2Configuration`未指定， AWS Batch 將選取適當的預設 AMI。

   ```
   {
     "computeResources": {
       "ec2Configuration": [
         {
           "imageType": "ECS_AL2023"
         }
       ]
     }
   }
   ```