

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

# `Build` 區段
<a name="Build-v3"></a>

**（必要）** 指定要在其中建置映像的組態。

```
Build:
  Imds:
    ImdsSupport: string
  InstanceType: string
  SubnetId: string
  ParentImage: string
  Iam:
    InstanceRole: string
    InstanceProfile: string
    CleanupLambdaRole: string
    AdditionalIamPolicies:
      - Policy: string
    PermissionsBoundary: string
  Components:
    - Type: string
      Value: string
  Tags:
    - Key: string
      Value: string
  SecurityGroupIds:
    - string
  UpdateOsPackages:
    Enabled: boolean
  Installation:
    NvidiaSoftware: 
      Enabled: boolean
    LustreClient:
      Enabled: boolean
```

## `Build` 屬性
<a name="Build-v3.properties"></a>

`InstanceType` (**必要**，`String`)  
指定用於建置映像之執行個體的執行個體類型。

`SubnetId` (**選用**，`String`)  
指定要佈建執行個體以建置映像的現有子網路 ID。提供的子網路需要網際網路存取。請注意，如果建置失敗[，您可能需要修改子網路的 IP 定址屬性](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-public-ip.html)。  
`pcluster build-image` 使用預設 VPC。如果已刪除預設 VPC，可能是使用 AWS Control Tower 或 AWS 登陸區域，則必須指定子網路 ID。
當您指定 SubnetId 時，建議您也指定 SecurityGroupIds 屬性。如果您離開 SecurityGroupIds， AWS ParallelCluster 將使用預設安全群組或依賴指定子網路中的預設行為。當您同時使用兩者時，您會獲得這些優勢：  
+ 精細控制：當您明確定義兩者時，可確保在映像建置程序期間啟動的執行個體放置在正確的子網路中，並擁有建置元件和任何必要服務的精確網路存取 （例如針對建置指令碼存取 S3)。
+ 安全最佳實務：當您定義適當的安全群組時，這有助於限制網路只能存取必要的連接埠和服務，進而增強建置環境的安全性。
+ 避免潛在問題：如果您只依賴預設值，這可能會導致安全群組太開放或太嚴格，這可能會在建置過程中導致問題。

`ParentImage` (**必要**，`String`)  
指定基礎映像。父系映像可以是非 AWS ParallelCluster AMI 或相同版本的官方 AWS ParallelCluster AMI。您無法從不同版本的 使用 AWS ParallelCluster 官方或自訂 AMI AWS ParallelCluster。格式必須是映像的 ARN `arn:Partition:imagebuilder:Region:Account:image/ImageName/ImageVersion`或 AMI ID `ami-12345678`。

`SecurityGroupIds` (**選用**，`[String]`)  
指定映像的安全群組 IDs清單。

### `Imds`
<a name="Build-v3-Imds"></a>

#### `Imds` 屬性
<a name="Build-v3-Imds.properties"></a>

**（選用）** 指定 Amazon EC2 ImageBuilder 建置和測試執行個體中繼資料服務 (IMDS) 設定。

```
Imds:
  ImdsSupport: string
```

`ImdsSupport` (**選用**，`String`)  
指定在 Amazon EC2 ImageBuilder 建置和測試執行個體中支援哪些 IMDS 版本。支援的值為 `v2.0` 和 `v1.0`。預設值為 `v2.0`。  
如果 `ImdsSupport` 設定為 `v1.0`，則同時支援 IMDSv1 和 IMDSv2。  
如果 `ImdsSupport` 設定為 `v2.0`，則僅支援 IMDSv2。  
如需詳細資訊，請參閱《Amazon EC[IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)2。 *Amazon EC2 *  
[更新政策：如果變更此設定，則不允許更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
從 3.7.0 AWS ParallelCluster 版開始，`ImdsSupport`預設值為 `v2.0`。我們建議您在自訂動作呼叫中`ImdsSupport`將 設定為 `v2.0`，並將 IMDSv1 取代為 IMDSv2。  
3.3.0 AWS ParallelCluster 版[`ImdsSupport`](#yaml-build-image-Build-Imds-ImdsSupport)新增了對 [`Imds`](#Build-v3-Imds) / 的支援。

### `Iam`
<a name="Build-v3-Iam"></a>

#### `Iam` 屬性
<a name="Build-v3-Iam.properties"></a>

(**選用**) 指定映像建置的 IAM 資源。

```
Iam:
  InstanceRole: string
  InstanceProfile: string
  CleanupLambdaRole: string
  AdditionalIamPolicies:
    - Policy: string
  PermissionsBoundary: string
```

`InstanceProfile` (**選用**，`String`)  
指定執行個體描述檔以覆寫 EC2 Image Builder 執行個體的預設執行個體描述檔。 `InstanceProfile` `InstanceRole`和 `AdditionalIamPolicies`無法一起指定。格式是 `arn:Partition:iam::Account:instance-profile/InstanceProfileName`。

`InstanceRole` (**選用**，`String`)  
指定執行個體角色以覆寫 EC2 Image Builder 執行個體的預設執行個體角色。 `InstanceProfile` `InstanceRole`和 `AdditionalIamPolicies`無法一起指定。格式是 `arn:Partition:iam::Account:role/RoleName`。

`CleanupLambdaRole` (**選用**，`String`)  
用於 AWS Lambda 函數的 IAM 角色 ARN，該函數支援 CloudFormation 自訂資源，可在建置完成時移除建置成品。Lambda 需要設定為允許擔任角色的委託人。格式是 `arn:Partition:iam::Account:role/RoleName`。

`AdditionalIamPolicies` (**選用**)  
指定要連接至用於產生自訂 AMI 之 EC2 Image Builder 執行個體的其他 IAM 政策。  

```
AdditionalIamPolicies:
  - Policy: string
```  
`Policy` (**選用**，`[String]`)  
IAM 政策清單。格式是 `arn:Partition:iam::Account:policy/PolicyName`。

`PermissionsBoundary` (**選用**，`String`)  
要用作由 建立之所有角色之許可界限的 IAM 政策 ARN AWS ParallelCluster。如需 IAM 許可界限的詳細資訊，請參閱《[IAM 使用者指南》中的 IAM 實體的許可界限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。 **格式是 `arn:Partition:iam::Account:policy/PolicyName`。

### `Components`
<a name="Build-v3-Components"></a>

#### `Components` 屬性
<a name="Build-v3-Components.properties"></a>

(**選用**) 除了預設提供的元件之外，指定要在 AMI 建置程序期間使用的 Amazon EC2 ImageBuilder 元件 AWS ParallelCluster。這類元件可用來自訂 AMI 建置程序。如需詳細資訊，請參閱[AWS ParallelCluster AMI 自訂](custom-ami-v3.md)。

```
Components:
  - Type: string
    Value: string
```

`Type` (**選用**，`String`)  
指定元件的類型值對類型。類型可以是 `arn`或 `script`。

`Value` (**選用**，`String`)  
指定元件的類型值對的值。當類型為 時`arn`，這是 EC2 Image Builder 元件的 ARN。當類型為 時`script`，這是指向指令碼的 https 或 s3 連結，以便在您建立 EC2 Image Builder 元件時使用。

### `Tags`
<a name="Build-v3-Tags"></a>

#### `Tags` 屬性
<a name="Build-v3-Tags.properties"></a>

(**選用**) 指定要在用於建置 AMI 的資源中設定的標籤清單。

```
Tags:
  - Key: string
    Value: string
```

`Key` (**選用**，`String`)  
定義標籤的名稱。

`Value` (**選用**，`String`)  
定義標籤的值。

### `UpdateOsPackages`
<a name="Build-v3-UpdateOsPackages"></a>

#### `UpdateOsPackages` 屬性
<a name="Build-v3-UpdateOsPackages.properties"></a>

(**選用**) 指定是否在安裝 AWS ParallelCluster 軟體堆疊之前更新作業系統。

```
UpdateOsPackages:
  Enabled: boolean
```

`Enabled` (**選用**，`Boolean`)  
如果為 `true`，作業系統會在安裝 AWS ParallelCluster 軟體之前更新並重新啟動。預設值為 `false`。  
啟用 `UpdateOsPackages` 時，所有可用的作業系統套件都會更新，包括核心。身為客戶，您有責任確認更新與更新中未包含的 AMI 相依性相容。  
例如，假設您想要為核心 AWS ParallelCluster 版本 Y.0 和某些元件版本 Z.0 隨附的版本 X.0 建置 AMI。假設可用的更新包含更新的核心版本 Y.1，而不更新元件 Z.0。在啟用 之前`UpdateOsPackages`，您有責任確認元件 Z.0 支援核心 Y.1。

### `Installation`
<a name="Build-v3-Installation"></a>

#### `Installation` 屬性
<a name="Build-v3-Installation.properties"></a>

**（選用）** 指定要在映像上安裝的其他軟體。

```
Installation:
  NvidiaSoftware: 
    Enabled: boolean
  LustreClient:
    Enabled: boolean
```

`NvidiaSoftware` 屬性 (**選用**)  
指定要安裝的 Nvidia 軟體。  

```
NvidiaSoftware: 
    Enabled: boolean
```  
`Enabled` (**選用**，`boolean`)  
如果為 `true`，則會安裝 Nvidia GPU 驅動程式和 CUDA。預設值為 `false`。

`LustreClient` 屬性 (**選用**)  
指定將安裝 Amazon FSx Lustre 用戶端。  

```
LustreClient:
    Enabled: boolean
```  
`Enabled` (**選用**，`boolean`)  
如果為 `true`，則會安裝 Lustre 用戶端。預設值為 `true`。