

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 的参考 AWS ParallelCluster
<a name="reference-version-3-chapter"></a>

**Topics**
+ [AWS ParallelCluster CLI 命令](commands-v3.md)
+ [配置文件](configuration-v3.md)
+ [AWS ParallelCluster API 参考](api-ref-v3.md)
+ [AWS ParallelCluster Python 库 API](pc-py-library-v3.md)

# AWS ParallelCluster CLI 命令
<a name="commands-v3"></a>

`pcluster`是主要 AWS ParallelCluster CLI 命令。您可以使用`pcluster`在和中启动和管理 HPC 集群来创建和管理自定义 AMI 映像。 AWS 云 

`pcluster3-config-converter`用于将 AWS ParallelCluster 版本 2 格式的集群配置转换为 AWS ParallelCluster 版本 3 格式。

```
pcluster [-h] ( build-image | configure | 
                create-cluster | dcv-connect | 
                delete-cluster | delete-cluster-instances | delete-image |
                describe-cluster | describe-cluster-instances | 
                describe-compute-fleet | describe-image |
                export-cluster-logs | export-image-logs | 
                get-cluster-log-events | get-cluster-stack-events | 
                get-image-log-events | get-image-stack-events |
                list-cluster-log-streams | list-clusters | 
                list-images | list-image-log-streams | list-official-images |
                ssh | update-cluster | 
                update-compute-fleet | version ) ...
pcluster3-config-converter [-h] [-t CLUSTER_TEMPLATE]
                [-c CONFIG_FILE]
                [--force-convert]
                [-o OUTPUT_FILE]
```

**Topics**
+ [`pcluster`](pcluster-v3.md)
+ [`pcluster3-config-converter`](pcluster3-config-converter.md)

# `pcluster`
<a name="pcluster-v3"></a>

`pcluster`是主要 AWS ParallelCluster CLI 命令。使用 `pcluster` 可以在 AWS 云中启动和管理 HPC 集群。

`pcluster` 将您的命令的日志写入 `/home/user/.parallelcluster/` 下的 `pcluster.log.#` 文件中。有关更多信息，请参阅 [`pcluster` CLI 日志](troubleshooting-v3-pc-cli-logs.md)。

要使用 `pcluster`，您必须拥有具有运行该命令所需的[权限](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-example-user-policies)的 IAM 角色。

```
pcluster [-h]
```

## 参数
<a name="pcluster.arguments-v3"></a>

**`pcluster command`**  
可能的选择：[`build-image`](pcluster.build-image-v3.md)\$1 [`configure`](pcluster.configure-v3.md)\$1 \$1 [`create-cluster`](pcluster.create-cluster-v3.md)\$1 [`dcv-connect`](pcluster.dcv-connect-v3.md)\$1 [`delete-cluster`](pcluster.delete-cluster-v3.md)\$1 [`delete-cluster-instances`](pcluster.delete-cluster-instances-v3.md)\$1 \$1 [`delete-image`](pcluster.delete-image-v3.md)\$1 [`describe-cluster`](pcluster.describe-cluster-v3.md)\$1 [`describe-cluster-instances`](pcluster.describe-cluster-instances-v3.md)\$1 \$1 [`describe-compute-fleet`](pcluster.describe-compute-fleet-v3.md)\$1 [`describe-image`](pcluster.describe-image-v3.md)\$1 [`export-cluster-logs`](pcluster.export-cluster-logs-v3.md)\$1 [`export-image-logs`](pcluster.export-image-logs-v3.md)\$1 \$1 [`get-cluster-log-events`](pcluster.get-cluster-log-events-v3.md)\$1 [`get-cluster-stack-events`](pcluster.get-cluster-stack-events-v3.md)\$1 [`get-image-log-events`](pcluster.get-image-log-events-v3.md)\$1 \$1 [`get-image-stack-events`](pcluster.get-image-stack-events-v3.md)\$1 [`list-clusters`](pcluster.list-clusters-v3.md)\$1 [`list-cluster-log-streams`](pcluster.list-cluster-log-streams-v3.md)\$1 [`list-images`](pcluster.list-images-v3.md)\$1 [`list-image-log-streams`[`list-official-images`](pcluster.list-official-images-v3.md)](pcluster.list-image-log-streams-v3.md)\$1 [`ssh`](pcluster.ssh-v3.md)\$1 [`update-cluster`](pcluster.update-cluster-v3.md)\$1 [`update-compute-fleet`](pcluster.update-compute-fleet-v3.md)\$1 [`version`](pcluster.version-v3.md)

**子命令：**

**Topics**
+ [参数](#pcluster.arguments-v3)
+ [`pcluster build-image`](pcluster.build-image-v3.md)
+ [`pcluster configure`](pcluster.configure-v3.md)
+ [`pcluster create-cluster`](pcluster.create-cluster-v3.md)
+ [`pcluster dcv-connect`](pcluster.dcv-connect-v3.md)
+ [`pcluster delete-cluster`](pcluster.delete-cluster-v3.md)
+ [`pcluster delete-cluster-instances`](pcluster.delete-cluster-instances-v3.md)
+ [`pcluster delete-image`](pcluster.delete-image-v3.md)
+ [`pcluster describe-cluster`](pcluster.describe-cluster-v3.md)
+ [`pcluster describe-cluster-instances`](pcluster.describe-cluster-instances-v3.md)
+ [`pcluster describe-compute-fleet`](pcluster.describe-compute-fleet-v3.md)
+ [`pcluster describe-image`](pcluster.describe-image-v3.md)
+ [`pcluster export-cluster-logs`](pcluster.export-cluster-logs-v3.md)
+ [`pcluster export-image-logs`](pcluster.export-image-logs-v3.md)
+ [`pcluster get-cluster-log-events`](pcluster.get-cluster-log-events-v3.md)
+ [`pcluster get-cluster-stack-events`](pcluster.get-cluster-stack-events-v3.md)
+ [`pcluster get-image-log-events`](pcluster.get-image-log-events-v3.md)
+ [`pcluster get-image-stack-events`](pcluster.get-image-stack-events-v3.md)
+ [`pcluster list-clusters`](pcluster.list-clusters-v3.md)
+ [`pcluster list-cluster-log-streams`](pcluster.list-cluster-log-streams-v3.md)
+ [`pcluster list-images`](pcluster.list-images-v3.md)
+ [`pcluster list-image-log-streams`](pcluster.list-image-log-streams-v3.md)
+ [`pcluster list-official-images`](pcluster.list-official-images-v3.md)
+ [`pcluster ssh`](pcluster.ssh-v3.md)
+ [`pcluster update-cluster`](pcluster.update-cluster-v3.md)
+ [`pcluster update-compute-fleet`](pcluster.update-compute-fleet-v3.md)
+ [`pcluster version`](pcluster.version-v3.md)

# `pcluster build-image`
<a name="pcluster.build-image-v3"></a>

在指定区域创建自定义 AWS ParallelCluster 镜像。

```
pcluster build-image [-h]
                 --image-configuration IMAGE_CONFIGURATION 
                 --image-id IMAGE_ID
                [--debug]
                [--dryrun DRYRUN]
                [--query QUERY]
                [--region REGION]
                [--rollback-on-failure ROLLBACK_ON_FAILURE]
                [--suppress-validators SUPPRESS_VALIDATORS [SUPPRESS_VALIDATORS ...]]
                [--validation-failure-level {INFO,WARNING,ERROR}]
```

## 命名的参数
<a name="pcluster-v3.build-image.namedargs"></a>

**-h, --help**  
显示 `pcluster build-image` 的帮助文本。

**--image-configuration, -c *IMAGE\$1CONFIGURATION***  
将映像配置文件指定为 YAML 文档。

**--image-id, -i *IMAGE\$1ID***  
指定将要构建的映像的 ID。

**--debug**  
启用调试登入

**--dryrun *DRYRUN***  
当为 `true` 时，该命令执行验证而不创建任何资源。您可以使用此参数来验证映像配置。（默认值为 `false`。）

**--query *QUERY***  
JMESPath 要对输出执行的查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用图像配置文件中的 “[区域](image-builder-configuration-file-v3.md#yaml-build-image-Region)” 设置、`AWS_DEFAULT_REGION`环境变量、文件`[default]`部分中的`region``~/.aws/config`设置或`--region`参数来指定。

**--rollback-on-failure *ROLLBACK\$1ON\$1FAILURE***  
当为 `true` 时，会在失败时自动启动映像堆栈回滚。（默认值为 `false`。）

**--suppress-validators * SUPPRESS\$1VALIDATORS* [*SUPPRESS\$1VALIDATORS ...*]**  
标识一个或多个要禁止的配置验证器。  
格式：(`ALL`\$1`type:[A-Za-z0-9]+`)

**--validation-failure-level \$1`INFO`,`WARNING`,`ERROR`\$1**  
指定将导致创建失败的最低验证级别。（默认值为 `ERROR`。）

**使用 AWS ParallelCluster 版本 3.1.2 的示例：**

```
$ pcluster build-image --image-configuration image-config.yaml --image-id custom-alinux2-image
{
  "image": {
    "imageId": "custom-alinux2-image",
    "imageBuildStatus": "BUILD_IN_PROGRESS",
    "cloudformationStackStatus": "CREATE_IN_PROGRESS",
    "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/custom-alinux2-image/1234abcd-56ef-78gh-90ij-abcd1234efgh",
    "region": "us-east-1",
    "version": "3.1.2"
  }
}
```

**警告**  
`pcluster build-image` 使用默认 VPC。如果默认 VPC 已被删除（可能使用 AWS Control Tower 或 AWS 着陆区域），则必须在映像配置文件中指定子网 ID。有关更多信息，请参阅 [SubnetId](HeadNode-v3.md#yaml-HeadNode-Networking-SubnetId)。

# `pcluster configure`
<a name="pcluster.configure-v3"></a>

启动 AWS ParallelCluster 版本 3 的交互式配置向导。有关更多信息，请参阅 [使用 AWS ParallelCluster 命令行界面配置和创建集群](install-v3-configuring.md)。

```
pcluster configure [-h]
                 --config CONFIG
                [--debug]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.configure.namedargs"></a>

**-h, --help**  
显示 `pcluster configure` 的帮助文本。

**--config *CONFIG***  
生成的配置文件的输出路径。

**--debug**  
启用调试登入

**--region, -r *REGION***  
指定 AWS 区域 要使用的。必须使用映像配置文件中的 [Region](image-builder-configuration-file-v3.md#yaml-build-image-Region) 设置、`AWS_DEFAULT_REGION` 环境变量、`~/.aws/config` 文件 `[default]` 部分中的 `region` 设置或 `--region` 参数指定区域。

# `pcluster create-cluster`
<a name="pcluster.create-cluster-v3"></a>

创建集 AWS ParallelCluster 群。

```
pcluster create-cluster [-h]
                 --cluster-configuration CLUSTER_CONFIGURATION
                 --cluster-name CLUSTER_NAME
                [--debug]
                [--dryrun DRYRUN]   
                [--query QUERY]
                [--region REGION]
                [--rollback-on-failure ROLLBACK_ON_FAILURE]
                [--suppress-validators SUPPRESS_VALIDATORS [SUPPRESS_VALIDATORS ...]]                        
                [--validation-failure-level {INFO,WARNING,ERROR}]
```

## 命名的参数
<a name="pcluster-v3.create-cluster.namedargs"></a>

**-h, --help**  
显示 `pcluster create-cluster` 的帮助文本。

**--cluster-configuration, -c *CLUSTER\$1CONFIGURATION***  
指定 YAML 集群配置文件。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定要创建的集群的名称。  
名称必须以字母字符开头。名称最多可以包含 60 个字符。如果启用 Slurm 会计，则名称最多可包含 40 个字符。  
有效字符：A-Z、a-z、0-9 和 -（连字符）。

**--debug**  
启用调试日志记录。

**--dryrun *DRYRUN***  
当为 `true` 时，该命令执行验证而不创建任何资源。您可以使用此参数来验证集群配置。（默认值为 `false`。）

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用群集配置文件中的[`Region`](cluster-configuration-file-v3.md#yaml-Region)设置、`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分的`region`设置或`--region`参数来指定。

**--rollback-on-failure *ROLLBACK\$1ON\$1FAILURE***  
当为 `true` 时，会在失败时自动启动集群堆栈回滚。（默认值为 `true`。）

**--suppress-validators *SUPPRESS\$1VALIDATORS* [*SUPPRESS\$1VALIDATORS* ...]**  
标识一个或多个要禁止的配置验证器。  
 格式：(`ALL`\$1type:`[A-Za-z0-9]+`)

**--validation-failure-level \$1`INFO`,`WARNING`,`ERROR`\$1**  
指定将导致创建失败的最低验证级别。（默认值为 `ERROR`。）

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster create-cluster -c cluster-config.yaml -n cluster-v3
{
  "cluster": {
    "clusterName": "cluster-v3",
    "cloudformationStackStatus": "CREATE_IN_PROGRESS",
    "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-v3/1234abcd-56ef-78gh-90ij-abcd1234efgh",
    "region": "us-east-1",
    "version": "3.1.4",
    "clusterStatus": "CREATE_IN_PROGRESS"
  }
}
```

# `pcluster dcv-connect`
<a name="pcluster.dcv-connect-v3"></a>

允许使用 Amazon DCV 通过交互式会话连接到头节点。

```
pcluster dcv-connect [-h]
                 --cluster-name CLUSTER_NAME 
                [--debug]
                [--key-path KEY_PATH]
                [--login-node-ip LOGIN_NODE_IP]
                [--region REGION]
                [--show-url]
```

## 命名的参数
<a name="pcluster-v3.dcv-connect.namedargs"></a>

**-h, --help**  
显示 `pcluster dcv-connect` 的帮助文本。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--debug**  
启用调试日志记录。

**--key-path *KEY\$1PATH***  
指定用于连接的 SSH 密钥的路径。

**--login-node-ip**  
指定集群中登录节点的公有或私有 IP 地址。使用该参数可以连接到集群中已启用 DCV 的登录节点。  
此参数已在 3.11.0 AWS ParallelCluster 版本中添加。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**--show-url**  
打印将用于 DCV 连接的 URL 并退出。

**使用 AWS ParallelCluster 版本 3.11 的示例**

```
$ pcluster dcv-connect -n cluster-3Dcv --login-node-ip 198.51.100.44 -r us-east-1 --key-path /home/user/.ssh/key.pem
```

 ![\[A screenshot of the DCV console.\]](http://docs.aws.amazon.com/zh_cn/parallelcluster/latest/ug/images/Dcv-image.png) 

# `pcluster delete-cluster`
<a name="pcluster.delete-cluster-v3"></a>

开始删除集群。

```
pcluster delete-cluster [-h] 
                 --cluster-name CLUSTER_NAME
                [--debug]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.delete-cluster.namedargs"></a>

**-h, --help**  
显示 `pcluster delete-cluster` 的帮助文本。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--debug**  
启用调试日志记录。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。必须使用 `AWS_DEFAULT_REGION` 环境变量、`~/.aws/config` 文件 `[default]` 部分中的 `region` 设置或 `--region` 参数指定区域。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster delete-cluster -n cluster-v3
   {
  "cluster": {
    "clusterName": "cluster-v3",
    "cloudformationStackStatus": "DELETE_IN_PROGRESS",
    "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-v3/1234abcd-56ef-78gh-90ij-abcd1234efgh",
    "region": "us-east-1",
    "version": "3.1.4",
    "clusterStatus": "DELETE_IN_PROGRESS"
  }
}
```

# `pcluster delete-cluster-instances`
<a name="pcluster.delete-cluster-instances-v3"></a>

开始强制终止所有集群计算节点。这不适用于集 AWS Batch 群。

```
pcluster delete-cluster-instances [-h] 
                 --cluster-name CLUSTER_NAME
                [--debug]
                [--force FORCE]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.delete-cluster-instances.namedargs"></a>

**-h, --help**  
显示 `pcluster delete-cluster-instances` 的帮助文本。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--debug**  
启用调试日志记录。

**--force *FORCE***  
当为 `true` 时，通过忽略验证错误强制删除。（默认值为 `false`。）

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

```
$ pcluster delete-cluster-instances -n cluster-v3
```

# `pcluster delete-image`
<a name="pcluster.delete-image-v3"></a>

开始删除自定义 AWS ParallelCluster 镜像。

```
pcluster delete-image [-h] 
                 --image-id IMAGE_ID
                [--debug]
                [--force FORCE]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.delete-image.namedargs"></a>

**-h, --help**  
显示 `pcluster delete-image` 的帮助文本。

**--image-id, -i *IMAGE\$1ID***  
指定将要删除的映像的 ID。

**--debug**  
启用调试日志记录。

**--force *FORCE***  
当为 `true` 时，如果有使用 AMI 的实例或者共享了 AMI，则强制删除。（默认值为 `false`。）

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster delete-image --image-id custom-alinux2-image
{
  "image": {
    "imageId": "custom-alinux2-image",
    "imageBuildStatus": "DELETE_IN_PROGRESS",
    "region": "us-east-1",
    "version": "3.1.4"
  }
}
```

# `pcluster describe-cluster`
<a name="pcluster.describe-cluster-v3"></a>

获取有关集群的详细信息

```
pcluster describe-cluster [-h] 
                 --cluster-name CLUSTER_NAME
                [--debug]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.describe-cluster.namedargs"></a>

**-h, --help**  
显示 `pcluster describe-cluster` 的帮助文本。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--debug**  
启用调试日志记录。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

描述集群详细信息：

```
$ pcluster describe-cluster -n cluster-v3
{
  "creationTime": "2022-07-12T17:19:16.101Z",
  "headNode": {
    "launchTime": "2022-07-12T17:22:21.000Z",
    "instanceId": "i-1234567890abcdef0",
    "publicIpAddress": "198.51.100.44",
    "instanceType": "t2.micro",
    "state": "running",
    "privateIpAddress": "192.0.2.0.196"
  },
  "loginNodes": [
      {
          "status": "active",
          "poolName": "pool1",
          "address": "cluster-v3-eMr9BYRKZVDa-e5bb34f40b24f51d.elb.us-east-1.amazonaws.com",
          "scheme": "internet-facing",
          "healthyNodes": 1,
          "unhealthyNodes": 0
      },
      {
          "status": "active",
          "poolName": "pool2",
          "address": "cluster-v3-PaQ7GgC27sic-aba10c890247b36b.elb.us-east-1.amazonaws.com",
          "scheme": "internet-facing",
          "healthyNodes": 1,
          "unhealthyNodes": 0
      }
  ],
  "version": "3.1.4",
  "clusterConfiguration": {
    "url": "https://parallelcluster-e5ca74255d6c3886-v1-do-not-delete..."
  },
  "tags": [
    {
      "value": "3.11",
      "key": "parallelcluster:version"
    }
  ],
  "cloudFormationStackStatus": "CREATE_COMPLETE",
  "clusterName": "cluster-v3",
  "computeFleetStatus": "RUNNING",
  "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-v3/1234abcd-56ef-78gh-90ij-abcd1234efgh",
  "lastUpdatedTime": "2022-07-12T17:19:16.101Z",
  "region": "us-east-1",
  "clusterStatus": "CREATE_COMPLETE"
}
```

使用 `describe-cluster` 检索集群配置：

```
$ curl -o - $(pcluster describe-cluster -n cluster-v3 --query clusterConfiguration.url | xargs echo)
Region: us-east-1
Image:
  Os: alinux2
HeadNode:
  InstanceType: t2.micro
  Networking:
    SubnetId: subnet-abcdef01234567890
  Ssh:
    KeyName: adpc
  Iam:
    S3Access:
      - BucketName: cluster-v3-bucket
        KeyName: logs
        EnableWriteAccess: true
Scheduling:
  Scheduler: slurm
  SlurmQueues:
  - Name: queue1
    ComputeResources:
    - Name: t2micro
      InstanceType: t2.micro
      MinCount: 0
      MaxCount: 10
    Networking:
      SubnetIds:
      - subnet-021345abcdef6789
```

# `pcluster describe-cluster-instances`
<a name="pcluster.describe-cluster-instances-v3"></a>

描述集群中的实例。

```
pcluster describe-cluster-instances [-h] 
                 --cluster-name CLUSTER_NAME
                [--debug]
                [--next-token NEXT_TOKEN]
                [--node-type {HeadNode,ComputeNode,LoginNode}]
                [--query QUERY]
                [--queue-name QUEUE_NAME]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.describe-cluster-instances.namedargs"></a>

**-h, --help**  
显示 `pcluster describe-cluster-instances` 的帮助文本。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--debug**  
启用调试日志记录。

**--next-token *NEXT\$1TOKEN***  
用于获取下一组结果的令牌。

**--node-type \$1`HeadNode`,`ComputeNode`,`LoginNode`\$1**  
指定要列出的节点类型。支持的值为 `HeadNode`、`ComputeNode` 和 `LoginNode`。如果未指定此参数，则描述 `HeadNode`、`ComputeNode` 和 `LoginNode` 实例。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--queue-name *QUEUE\$1NAME***  
指定要列出的队列的名称。如果未指定此参数，则描述所有队列中的实例。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster describe-cluster-instances -n cluster-v3
{
  "instances": [
    {
      "launchTime": "2022-07-12T17:22:21.000Z",
      "instanceId": "i-1234567890abcdef0",
      "publicIpAddress": "198.51.100.44",
      "instanceType": "t2.micro",
      "state": "running",
      "nodeType": "HeadNode",
      "privateIpAddress": "192.0.2.0.196"
    },
    {
      "launchTime": "2022-07-12T17:37:42.000Z",
      "instanceId": "i-021345abcdef6789",
      "queueName": "queue1",
      "publicIpAddress": "198.51.100.44",
      "instanceType": "t2.micro",
      "state": "pending",
      "nodeType": "ComputeNode",
      "privateIpAddress": "192.0.2.0.196"
    },
    {
        "launchTime": "2022-07-12T17:37:42.000Z", 
        "instanceId": "i-021345abcdef6789", 
        "poolName": "pool1", 
        "publicIpAddress": "198.51.100.44", 
        "instanceType": "t2.micro", 
        "state": "pending", 
        "nodeType": "loginNode", 
        "privateIpAddress": "192.0.2.0.196" 
    }
  ]
}
```

# `pcluster describe-compute-fleet`
<a name="pcluster.describe-compute-fleet-v3"></a>

描述计算实例集的状态。

```
pcluster describe-compute-fleet [-h] 
                 --cluster-name CLUSTER_NAME
                [--debug]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.describe-compute-fleet.namedargs"></a>

**-h, --help**  
显示 `pcluster describe-compute-fleet` 的帮助文本。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--debug**  
启用调试日志记录。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster describe-compute-fleet -n pcluster-v3
{
  "status": "RUNNING",
  "lastStatusUpdatedTime": "2022-07-12T17:24:26.000Z"
}
```

# `pcluster describe-image`
<a name="pcluster.describe-image-v3"></a>

获取有关映像的详细信息

```
pcluster describe-image [-h] 
                 --image-id IMAGE_ID
                [--debug] 
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.describe-image.namedargs"></a>

**-h, --help**  
显示 `pcluster describe-image` 的帮助文本。

**--image-id, -i *IMAGE\$1ID***  
指定映像的 ID。

**--debug**  
启用调试日志记录。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.2 的示例：**

```
$ pcluster describe-image --image-id custom-alinux2-image
{  
  "imageConfiguration: {    
    "url": "https://parallelcluster-1234abcd5678-v1-do-not-delete.../configs/image-config.yaml"
  },
  "imageId": "custom-alinux2-image",
  "creationTime": "2022-04-05T20:23:07.000Z"
  "imageBuildStatus": "BUILD_COMPLETE", 
  "region": "us-east-1",
  "ec2AmiInfo": {
    "amiName": "custom-alinux2-image 2022-04-05T19-55-22.518Z",
    "amiId": "ami-1234abcd5678efgh",
    "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.268-205.500.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.14.2-1.amzn2.x86_64, dcv-2021.3.11591-1.el7.x86_64, slurm-21-08-6-1",
    "state": "AVAILABLE",
  "tags": [
      {
        "value": "arn:aws:imagebuilder:us-east-1:123456789012:image/parallelclusterimage-custom-alinux2-image/3.1.2/1",
        "key": "Ec2ImageBuilderArn"
      },
      {
        "value": "parallelcluster-1234abcd5678efgh-v1-do-not-delete",
        "key": "parallelcluster:amzn-s3-demo-bucket"
      },
      {
        "value": "custom-alinux2-image",
        "key": "parallelcluster:image_name"
      },
      {
        "value": "available",
        "key": "parallelcluster:build_status"
      },
      {
        "value": "s3://amzn-s3-demo-bucket/parallelcluster/3.1.2/images/custom-alinux2-image-1234abcd5678efgh/configs/image-config.yaml",
        "key": "parallelcluster:build_config"
      },
      {
        "value": "Amazon EC2 Image Builder",
        "key": "CreatedBy"
      },
      {
        "value": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-custom-alinux2-image",
        "key": "parallelcluster:build_log"
      },
      {
        "value": "4.14.268-205.500.amzn2.x86_64",
        "key": "parallelcluster:kernel_version"
      },
      {
        "value": "arn:aws:imagebuilder:us-east-1:444455556666:image/amazon-linux-2-x86/2022.3.16/1",
        "key": "parallelcluster:parent_image"
      },
      {
        "value": "3.1.2",
        "key": "parallelcluster:version"
      },
      {
        "value": "0.5.14",
        "key": "parallelcluster:munge_version"
      },
      {
        "value": "21-08-6-1",
        "key": "parallelcluster:slurm_version"
      },
      {
        "value": "2021.3.11591-1.el7.x86_64",
        "key": "parallelcluster:dcv_version"
      },
      {
        "value": "alinux2-image",
        "key": "parallelcluster:image_id"
      },
      {
        "value": "3.2.3",
        "key": "parallelcluster:pmix_version"
      },
      {
        "value": "parallelcluster/3.15.0/images/alinux2-image-abcd1234efgh56781234",
        "key": "parallelcluster:s3_image_dir"
      },
      {
        "value": "1.14.2-1.amzn2.x86_64",
        "key": "parallelcluster:efa_version"
      },
      {
        "value": "alinux2",
        "key": "parallelcluster:os"
      },
      {
        "value": "aws-parallelcluster-cookbook-3.1.2",
        "key": "parallelcluster:bootstrap_file"
      },
      {
        "value": "1.8.23-10.amzn2.1.x86_64",
        "key": "parallelcluster:sudo_version"
      },
      {
        "value": "2.10.8-5.amzn2.x86_64",
        "key": "parallelcluster:lustre_version"
      }
    ],
    "architecture": "x86_64"
  },
  "version": "3.1.2"
}
```

# `pcluster export-cluster-logs`
<a name="pcluster.export-cluster-logs-v3"></a>

通过 Amazon S3 存储桶，将集群的日志导出到本地 `tar.gz` 存档。

```
pcluster export-cluster-logs [-h]
                 --cluster-name CLUSTER_NAME
                [--bucket BUCKET_NAME]
                [--bucket-prefix BUCKET_PREFIX]
                [--debug]
                [--end-time END_TIME]
                [--filters FILTER [FILTER ...]]
                [--keep-s3-objects KEEP_S3_OBJECTS]
                [--output-file OUTPUT_FILE]
                [--region REGION]
                [--start-time START_TIME]
```

**注意**  
该`export-cluster-logs`命令会等待 CloudWatch Logs 完成日志的导出，因此预计会有一段时间没有任何输出。

## 命名的参数
<a name="pcluster-v3.export-cluster-logs.namedargs"></a>

**-h, --help**  
显示 `pcluster export-cluster-logs` 的帮助文本。

**--bucket *BUCKET\$1NAME***  
指定要将集群日志数据导出到的 Amazon S3 存储桶的名称。它必须与集群位于相同的区域。  
+ 您必须向 Amazon S3 存储桶策略添加权限才能授予 CloudWatch 访问权限。有关更多信息，请参阅*CloudWatch 日志用户指南*中的对 [Amazon S3 存储桶设置权限](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3ExportTasks.html#S3Permissions)。
+ **从 **3.12.0 AWS ParallelCluster ** 版开始，该`--bucket`选项是可选的。**如果未指定该选项，则要么使用 AWS ParallelCluster 区域默认存储桶 (`parallelcluster-hash-v1-DO-NOT-DELETE`)，要么如果在集群配置中指定了指向`CustomS3Bucket`的 Amazon S3 存储桶，则将使用该存储桶。如果您未指定该`--bucket`选项而使用默认 AWS ParallelCluster 存储桶，则无法将日志导出到该`parallelcluster/`文件夹，因为该文件夹是保留给内部使用的受保护文件夹。
如果使用 AWS ParallelCluster 默认存储桶，pcluster 将负责配置存储桶策略。如果您自定义了存储桶策略，然后升级到 AWS ParallelCluster 版本 **3.12.0**，则存储桶策略将被覆盖，您将需要重新应用更改。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--bucket-prefix *BUCKET\$1PREFIX***  
指定导出的日志数据在 Amazon S3 存储桶中的存储位置的路径。  
默认情况下，存储桶前缀为：  

```
cluster-name-logs-202209061743.tar.gz
```
`202209061743`是时间`%Y%m%d%H%M`格式的示例。  
从 AWS ParallelCluster 版本 **3.12.0** 开始，如果您未指定该`--bucket`选项并使用默认 AWS ParallelCluster 存储桶，则无法将日志导出到该`parallelcluster/`文件夹，因为它是保留供内部使用的受保护文件夹。

**--debug**  
启用调试日志记录。

**--end-time *END\$1TIME***  
指定用于收集日志事件的时间范围的结束时间，以 ISO 8601 格式（`YYYY-MM-DDThh:mm:ssZ`，例如 `2021-01-01T20:00:00Z`）表示。不包括时间戳等于或晚于该时间的事件。可以省略时间元素（例如分和秒）。默认值为当前时间。

**--filters *FILTER* [*FILTER* ...]**  
为日志指定筛选器。格式：`Name=a,Values=1 Name=b,Values=2,3`。支持的筛选器为：    
`private-dns-name`  
指定实例私有 DNS 名称的短格式（例如 `ip-10-0-0-101`）。  
`node-type`  
指定节点类型，此筛选器唯一接受的值是 `HeadNode`。

**--keep-s3-objects *KEEP\$1S3\$1OBJECTS***  
如果为 `true`，则会保留导出到 Amazon S3 的导出对象。（默认值为 `false`。）

**--output-file *OUTPUT\$1FILE***  
指定要将日志存档保存到的文件路径。如果提供此参数，则在本地保存日志。否则会通过输出中返回的 URL 将日志上传到 Amazon S3。默认为上传到 Amazon S3。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**--start-time *START\$1TIME***  
指定时间范围的开始时间，以 ISO 8601 格式（`YYYY-MM-DDThh:mm:ssZ`，例如 `2021-01-01T20:00:00Z`）表示。包括时间戳等于或晚于该时间的日志事件。如果未指定，则默认为集群的创建时间。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster export-cluster-logs --bucket cluster-v3-bucket -n cluster-v3
{
  "url": "https://cluster-v3-bucket..."
}
```

## 无法检索日志？
<a name="pcluster-v3.export-cluster-logs.retrieve-logs"></a>

如果您无法使用`export-cluster-logs`命令检索日志，请执行以下操作之一：
+ 从集群的 CloudWatch 日志组中手动检索日志。
+ 如果日志组为空，请通过 SSH 进入群集节点并检索中列出的日志[排查节点初始化问题](troubleshooting-v3-scaling-issues.md#troubleshooting-v3-node-init)。
+ 如果由于集群创建失败而无法访问群集节点，则使用选项重新创建集群`--rollback-on-failure false`并从节点检索日志。

# `pcluster export-image-logs`
<a name="pcluster.export-image-logs-v3"></a>

通过 Amazon S3 存储桶，将映像生成器的日志导出到本地 `tar.gz` 存档。

```
pcluster export-image-logs [-h]
                 --image-id IMAGE_ID
                [--bucket BUCKET]
                [--bucket-prefix BUCKET_PREFIX]
                [--debug]                         
                [--end-time END_TIME]
                [--keep-s3-objects KEEP_S3_OBJECTS]
                [--output-file OUTPUT_FILE]
                [--region REGION]
                [--start-time START_TIME]
```

**注意**  
该`export-image-logs`命令会等待 CloudWatch Logs 完成日志的导出，因此预计会有一段时间没有任何输出。

## 命名的参数
<a name="pcluster-v3.export-image-logs.namedargs"></a>

**-h, --help**  
显示 `pcluster export-image-logs` 的帮助文本。

**--bucket *BUCKET\$1NAME***  
指定要将映像构建日志导出到的 Amazon S3 存储桶的名称。它必须与映像位于相同的区域。  
+ 您必须向 Amazon S3 存储桶策略添加权限才能授予 CloudWatch 访问权限。有关更多信息，请参阅*CloudWatch 日志用户指南*中的对 [Amazon S3 存储桶设置权限](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3ExportTasks.html#S3Permissions)。
+ **从 **3.12.0 AWS ParallelCluster ** 版开始，该`--bucket`选项是可选的。**如果未指定该选项，则要么使用 AWS ParallelCluster 区域默认存储桶 (`parallelcluster-hash-v1-DO-NOT-DELETE`)，要么如果在`CustomS3Bucket`映像配置中指定了，则使用该存储桶。
如果使用 AWS ParallelCluster 默认存储桶，pcluster 将负责配置存储桶策略。如果您在升级到 AWS ParallelCluster 版本 **3.12.0** 之前自定义存储桶策略，则存储桶策略将被覆盖，您需要重新应用更改。

**--image-id, -i *IMAGE\$1ID***  
要导出其日志的映像 ID。

**--bucket-prefix *BUCKET\$1PREFIX***  
指定导出的日志数据在 Amazon S3 存储桶中的存储位置的路径。  
默认情况下，存储桶前缀为：  

```
ami-id-logs-202209061743.tar.gz
```
`202209061743` 是 `%Y%m%d%H%M` 格式的当前时间。  
从 AWS ParallelCluster 版本 **3.12.0** 开始，如果您不指定该`--bucket`选项并使用默认 AWS ParallelCluster 存储桶，则无法将日志导出到该`parallelcluster/`文件夹，因为它是保留供内部使用的受保护文件夹。

**--debug**  
启用调试日志记录。

**--end-time *END\$1TIME***  
指定用于收集日志事件的时间范围的结束时间，以 ISO 8601 格式（`YYYY-MM-DDThh:mm:ssZ`，例如 `2021-01-01T20:00:00Z`）表示。不包括时间戳等于或晚于该时间的事件。可以省略时间元素（例如分和秒）。默认值为当前时间。

**--keep-s3-objects *KEEP\$1S3\$1OBJECTS***  
如果为 `true`，则会保留导出到 Amazon S3 的导出对象。（默认值为 `false`。）

**--output-file *OUTPUT\$1FILE***  
指定要将日志存档保存到的文件路径。如果提供此参数，则在本地保存日志。否则会通过输出中返回的 URL 将日志上传到 Amazon S3。默认为上传到 Amazon S3。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**--start-time *START\$1TIME***  
指定时间范围的开始时间，以 ISO 8601 格式（`YYYY-MM-DDThh:mm:ssZ`，例如 `2021-01-01T20:00:00Z`）表示。包括时间戳等于或晚于该时间的日志事件。如果未指定，则默认为集群的创建时间。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster export-image-logs --bucket image-v3-bucket --image-id ami-1234abcd5678efgh
{
  "url": "https://image-v3-bucket..."
}
```

# `pcluster get-cluster-log-events`
<a name="pcluster.get-cluster-log-events-v3"></a>

检索与日志流关联的事件。

```
pcluster get-cluster-log-events [-h] 
                 --cluster-name CLUSTER_NAME
                 --log-stream-name LOG_STREAM_NAME
                [--debug]
                [--end-time END_TIME]
                [--limit LIMIT]
                [--next-token NEXT_TOKEN]
                [--query QUERY]
                [--region REGION]
                [--start-from-head START_FROM_HEAD]                                
                [--start-time START_TIME]
```

## 命名的参数
<a name="pcluster-v3.get-cluster-log-events.namedargs"></a>

**-h, --help**  
显示 `pcluster get-cluster-log-events` 的帮助文本。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--log-stream-name *LOG\$1STREAM\$1NAME***  
指定日志流的名称。您可以使用 `list-cluster-log-streams` 命令来检索与一个或多个事件关联的日志流。

**--debug**  
启用调试日志记录。

**--end-time *END\$1TIME***  
指定时间范围的结束时间，以 ISO 8601 格式（`YYYY-MM-DDThh:mm:ssZ`，例如 `2021-01-01T20:00:00Z`）表示。不包括时间戳等于或晚于该时间的事件。

**--limit *LIMIT***  
指定返回的日志事件的最大数量。如果不指定值，则最大值为 1 MB 的响应大小所能容纳的日志事件数量，最多可达 10000 个日志事件。

**--next-token *NEXT\$1TOKEN***  
用于获取下一组结果的令牌。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**--start-from-head *START\$1FROM\$1HEAD***  
如果值为 `true`，则最先返回最早的日志事件。如果值为 `false`，则最先返回最近的日志事件。（默认值为 `false`。）

**--start-time *START\$1TIME***  
指定时间范围的开始时间，以 ISO 8601 格式（`YYYY-MM-DDThh:mm:ssZ`，例如 `2021-01-01T20:00:00Z`）表示。包括时间戳等于或晚于该时间的事件。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster get-cluster-log-events \
    -c cluster-v3 \
    -r us-east-1 \
    --log-stream-name ip-198-51-100-44.i-1234567890abcdef0.clustermgtd \
    --limit 3
{
  "nextToken": "f/36966906399261933213029082268132291405859205452101451780/s",
  "prevToken": "b/36966906399239632467830551644990755687586557090595471362/s",
  "events": [
    {
      "message": "2022-07-12 19:16:53,379 - [slurm_plugin.clustermgtd:_maintain_nodes] - INFO - Performing node maintenance actions",
      "timestamp": "2022-07-12T19:16:53.379Z"
    },
    {
      "message": "2022-07-12 19:16:53,380 - [slurm_plugin.clustermgtd:_maintain_nodes] - INFO - Following nodes are currently in replacement: (x0) []",
      "timestamp": "2022-07-12T19:16:53.380Z"
    },
    {
      "message": "2022-07-12 19:16:53,380 - [slurm_plugin.clustermgtd:_terminate_orphaned_instances] - INFO - Checking for orphaned instance",
      "timestamp": "2022-07-12T19:16:53.380Z"
    }
  ]
}
```

# `pcluster get-cluster-stack-events`
<a name="pcluster.get-cluster-stack-events-v3"></a>

检索与指定集群的堆栈关联的事件。

**注意**  
从 3.6.0 版开始， AWS ParallelCluster 使用嵌套堆栈来创建与队列和计算资源关联的资源。`GetClusterStackEvents` API 和 `pcluster get-cluster-stack-events` 命令仅返回集群主堆栈事件。您可以在 CloudFormation 控制台中查看集群堆栈事件，包括与队列和计算资源相关的事件。

```
pcluster get-cluster-stack-events [-h] 
                 --cluster-name CLUSTER_NAME
                [--debug]
                [--next-token NEXT_TOKEN]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.get-cluster-stack-events.namedargs"></a>

**-h, --help**  
显示 `pcluster get-cluster-stack-events` 的帮助文本。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--debug**  
启用调试日志记录。

**--next-token *NEXT\$1TOKEN***  
用于获取下一组结果的令牌。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster get-cluster-stack-events \
    -n cluster-v3 \
    -r us-east-1 \
    --query "events[0]"
{
  "eventId": "1234abcd-56ef-78gh-90ij-abcd1234efgh",
  "physicalResourceId": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-v3/1234abcd-56ef-78gh-90ij-abcd1234efgh",
  "resourceStatus": "CREATE_COMPLETE",
  "stackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-v3/1234abcd-56ef-78gh-90ij-abcd1234efgh",
  "stackName": "cluster-v3",
  "logicalResourceId": "cluster-v3",
  "resourceType": "AWS::CloudFormation::Stack",
  "timestamp": "2022-07-12T18:29:12.140Z"
}
```

# `pcluster get-image-log-events`
<a name="pcluster.get-image-log-events-v3"></a>

检索与映像构建相关的日志事件。

```
pcluster get-image-log-events [-h] 
                 --image-id IMAGE_ID                               
                 --log-stream-name LOG_STREAM_NAME
                [--debug]
                [--end-time END_TIME]
                [--limit LIMIT]
                [--next-token NEXT_TOKEN]                              
                [--query QUERY]                               
                [--region REGION]                              
                [--start-from-head START_FROM_HEAD]
                [--start-time START_TIME]
```

## 命名的参数
<a name="pcluster-v3.get-image-log-events.namedargs"></a>

**-h, --help**  
显示 `pcluster get-image-log-events` 的帮助文本。

**--image-id, -i *IMAGE\$1ID***  
指定映像的 ID。

**--log-stream-name *LOG\$1STREAM\$1NAME***  
指定日志流的名称。您可以使用 `list-image-log-streams` 命令来检索与一个或多个事件关联的日志流。

**--debug**  
启用调试日志记录。

**--end-time *END\$1TIME***  
指定时间范围的结束时间，以 ISO 8601 格式（`YYYY-MM-DDThh:mm:ssZ`，例如 `2021-01-01T20:00:00Z`）表示。不包括时间戳等于或晚于该时间的事件。

**--limit *LIMIT***  
指定返回的日志事件的最大数量。如果不指定值，则最大值为 1 MB 的响应大小所能容纳的日志事件数量，最多可达 10000 个日志事件。

**--next-token *NEXT\$1TOKEN***  
用于获取下一组结果的令牌。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**--start-from-head *START\$1FROM\$1HEAD***  
如果值为 `true`，则最先返回最早的日志事件。如果值为 `false`，则最先返回最近的日志事件。（默认值为 `false`。）

**--start-time *START\$1TIME***  
指定时间范围的开始时间，以 ISO 8601 格式（`YYYY-MM-DDThh:mm:ssZ`，例如 `2021-01-01T20:00:00Z`）表示。包括时间戳等于或晚于该时间的事件。

**使用 AWS ParallelCluster 版本 3.1.2 的示例：**

```
$ pcluster get-image-log-events --image-id custom-alinux2-image --region us-east-1 --log-stream-name 3.1.2/1 --limit 3
   {
  "nextToken": "f/36778317771100849897800729464621464113270312017760944178/s",
  "prevToken": "b/36778317766952911290874033560295820514557716777648586800/s",
  "events": [
    {
      "message": "ExecuteBash: FINISHED EXECUTION",
      "timestamp": "2022-04-05T22:13:26.633Z"
    },
    {
      "message": "Document arn:aws:imagebuilder:us-east-1:123456789012:component/parallelclusterimage-test-1234abcd-56ef-78gh-90ij-abcd1234efgh/3.1.2/1",
      "timestamp": "2022-04-05T22:13:26.741Z"
    },
    {
      "message": "TOE has completed execution successfully",
      "timestamp": "2022-04-05T22:13:26.819Z"
    }
  ]
}
```

# `pcluster get-image-stack-events`
<a name="pcluster.get-image-stack-events-v3"></a>

检索与指定映像构建的堆栈关联的事件。

```
pcluster get-image-stack-events [-h] 
                 --image-id IMAGE_ID
                [--debug]
                [--next-token NEXT_TOKEN]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.get-image-stack-events.namedargs"></a>

**-h, --help**  
显示 `pcluster get-image-stack-events` 的帮助文本。

**--image-id, -i *IMAGE\$1ID***  
指定映像的 ID。

**--debug**  
启用调试日志记录。

**--next-token *NEXT\$1TOKEN***  
用于获取下一组结果的令牌。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.2 的示例：**

```
$ pcluster get-image-stack-events --image-id custom-alinux2-image --region us-east-1 --query "events[0]"
   {
  "eventId": "ParallelClusterImage-CREATE_IN_PROGRESS-2022-04-05T21:39:24.725Z",
  "physicalResourceId": "arn:aws:imagebuilder:us-east-1:123456789012:image/parallelclusterimage-custom-alinux2-image/3.1.2/1",
  "resourceStatus": "CREATE_IN_PROGRESS",
  "resourceStatusReason": "Resource creation Initiated",
  "resourceProperties": "{\"InfrastructureConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/parallelclusterimage-1234abcd-56ef-78gh-90ij-abcd1234efgh\",\"ImageRecipeArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/parallelclusterimage-custom-alinux2-image/3.1.2\",\"DistributionConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/parallelclusterimage-1234abcd-56ef-78gh-90ij-abcd1234efgh\",\"EnhancedImageMetadataEnabled\":\"false\",\"Tags\":{\"parallelcluster:image_name\":\"custom-alinux2-image\",\"parallelcluster:image_id\":\"custom-alinux2-image\"}}",
  "stackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/custom-alinux2-image/1234abcd-56ef-78gh-90ij-abcd1234efgh",
  "stackName": "custom-alinux2-image",
  "logicalResourceId": "ParallelClusterImage",
  "resourceType": "AWS::ImageBuilder::Image",
  "timestamp": "2022-04-05T21:39:24.725Z"
}
```

# `pcluster list-clusters`
<a name="pcluster.list-clusters-v3"></a>

检索现有集群的列表。

```
pcluster list-clusters [-h]
                [--cluster-status {CREATE_IN_PROGRESS,CREATE_FAILED,CREATE_COMPLETE,
                           DELETE_IN_PROGRESS,DELETE_FAILED,UPDATE_IN_PROGRESS,
                           UPDATE_COMPLETE,UPDATE_FAILED}
                           [{CREATE_IN_PROGRESS,CREATE_FAILED,CREATE_COMPLETE,
                             DELETE_IN_PROGRESS,DELETE_FAILED,UPDATE_IN_PROGRESS,
                             UPDATE_COMPLETE,UPDATE_FAILED} ...]]
                [--debug]
                [--next-token NEXT_TOKEN]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.list-clusters.namedargs"></a>

**-h, --help**  
显示 `pcluster list-clusters` 的帮助文本。

**--cluster-status \$1`CREATE_IN_PROGRESS`, `CREATE_FAILED`, `CREATE_COMPLETE`, `DELETE_IN_PROGRESS`, `DELETE_FAILED`, `UPDATE_IN_PROGRESS`, `UPDATE_COMPLETE`, `UPDATE_FAILED`\$1 [\$1`CREATE_IN_PROGRESS`, `CREATE_FAILED`, `CREATE_COMPLETE`, `DELETE_IN_PROGRESS`, `DELETE_FAILED`, `UPDATE_IN_PROGRESS`, `UPDATE_COMPLETE`, `UPDATE_FAILED`\$1 ...]**  
指定要筛选的集群状态的列表。（默认值为 `all`。）

**--debug**  
启用调试日志记录。

**--next-token *NEXT\$1TOKEN***  
用于获取下一组结果的令牌。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster list-clusters
{
  "clusters": [
    {
      "clusterName": "cluster-v3",
      "cloudformationStackStatus": "CREATE_COMPLETE",
      "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-v3/1234abcd-56ef-78gh-90ij-abcd1234efgh",
      "region": "us-east-1",
      "version": "3.1.4",
      "clusterStatus": "CREATE_COMPLETE"
    }
  ]
}
```

# `pcluster list-cluster-log-streams`
<a name="pcluster.list-cluster-log-streams-v3"></a>

检索与集群关联的日志流的列表。

```
pcluster list-cluster-log-streams [-h]
                 --cluster-name CLUSTER_NAME                              
                [--filters FILTERS [FILTERS ...]]
                [--next-token NEXT_TOKEN] [--debug]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.list-cluster-log-streams.namedargs"></a>

**-h, --help**  
显示 `pcluster list-cluster-log-streams` 的帮助文本。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--debug**  
启用调试日志记录。

**--filters *FILTERS* [*FILTERS* ...]**  
为日志流指定筛选器。格式：`Name=a,Values=1 Name=b,Values=2,3`。支持的筛选器为：    
`private-dns-name`  
指定实例私有 DNS 名称的短格式（例如 `ip-10-0-0-101`）。  
`node-type`  
指定节点类型，此筛选器唯一接受的值是 `HeadNode`。

**--next-token *NEXT\$1TOKEN***  
用于获取下一组结果的令牌。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster list-cluster-log-streams \
    -n cluster-v3 \
    -r us-east-1 \
    --query 'logStreams[*].logStreamName'
[
  "ip-172-31-58-205.i-1234567890abcdef0.cfn-init",
  "ip-172-31-58-205.i-1234567890abcdef0.chef-client",
  "ip-172-31-58-205.i-1234567890abcdef0.cloud-init",
  "ip-172-31-58-205.i-1234567890abcdef0.clustermgtd",
  "ip-172-31-58-205.i-1234567890abcdef0.slurmctld",
  "ip-172-31-58-205.i-1234567890abcdef0.supervisord",
  "ip-172-31-58-205.i-1234567890abcdef0.system-messages"
]
```

# `pcluster list-images`
<a name="pcluster.list-images-v3"></a>

检索现有自定义映像的列表。

```
pcluster list-images [-h] 
                 --image-status {AVAILABLE,PENDING,FAILED}
                [--debug]
                [--next-token NEXT_TOKEN]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.list-images.namedargs"></a>

**-h, --help**  
显示 `pcluster list-images` 的帮助文本。

**--image-status \$1`AVAILABLE`,`PENDING`,`FAILED`\$1**  
按提供的状态筛选返回的映像。

**--debug**  
启用调试日志记录。

**--next-token *NEXT\$1TOKEN***  
用于获取下一组结果的令牌。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.2 的示例：**

```
$ pcluster list-images --image-status AVAILABLE
{
  "images": [
    {
      "imageId": "custom-alinux2-image",
      "imageBuildStatus": "BUILD_COMPLETE",
      "ec2AmiInfo": {
        "amiId": "ami-1234abcd5678efgh"
      },
      "region": "us-east-1",
      "version": "3.1.2"
    }
  ]
}
```

# `pcluster list-image-log-streams`
<a name="pcluster.list-image-log-streams-v3"></a>

检索与映像关联的日志流的列表。

```
pcluster list-image-log-streams [-h] 
                 --image-id IMAGE_ID
                [--next-token NEXT_TOKEN] [--debug]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.list-image-log-streams.namedargs"></a>

**-h, --help**  
显示 `pcluster list-image-log-streams` 的帮助文本。

**--image-id, -i *IMAGE\$1ID***  
指定映像的 ID。

**--debug**  
启用调试日志记录。

**--next-token *NEXT\$1TOKEN***  
用于获取下一组结果的令牌。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.2 的示例：**

```
$ pcluster list-image-log-streams --image-id custom-alinux2-image --region us-east-1 --query 'logStreams[*].logStreamName'
[
  "3.0.0/1",
  "3.1.2/1"
]
```

# `pcluster list-official-images`
<a name="pcluster.list-official-images-v3"></a>

描述官方 AWS ParallelCluster AMIs。

```
pcluster list-official-images [-h]
                [--architecture ARCHITECTURE]
                [--debug]
                [--os OS]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.list-official-images.namedargs"></a>

**-h, --help**  
显示 `pcluster list-official-images` 的帮助文本。

**--architecture *ARCHITECTURE***  
指定要用于筛选结果的架构。如果未指定此参数，则返回所有架构。

**--debug**  
启用调试日志记录。

**--os *OS***  
指定要用于筛选结果的操作系统。如果未指定此参数，则返回所有操作系统。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用图像配置文件中的 “[区域](image-builder-configuration-file-v3.md#yaml-build-image-Region)” 设置、`AWS_DEFAULT_REGION`环境变量、文件`[default]`部分中的`region``~/.aws/config`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.2 的示例：**

```
$ pcluster list-official-images
{
  "images": [
    {
      "amiId": "ami-015cfeb4e0d6306b2",
      "os": "ubuntu2204",
      "name": "aws-parallelcluster-3.1.2-ubuntu-2204-lts-hvm-x86_64-202202261505 2022-02-26T15-08-34.759Z",
      "version": "3.1.2",
      "architecture": "x86_64"
    },
    {
      "amiId": "ami-036f23237ce49d25b",
      "os": "ubuntu2204",
      "name": "aws-parallelcluster-3.1.2-ubuntu-1804-lts-hvm-x86_64-202202261505 2022-02-26T15-08-17.558Z",
      "version": "3.1.2",
      "architecture": "x86_64"
    },
    {
      "amiId": "ami-09e5327e694d89ef4",
      "os": "ubuntu2204",
      "name": "aws-parallelcluster-3.1.2-ubuntu-2204-lts-hvm-arm64-202202261505 2022-02-26T15-08-45.736Z",
      "version": "3.1.2",
      "architecture": "arm64"
    },
    {
      "amiId": "ami-0b9b0874c35f626ae",
      "os": "alinux2",
      "name": "aws-parallelcluster-3.1.2-amzn2-hvm-x86_64-202202261505 2022-02-26T15-08-31.311Z",
      "version": "3.1.2",
      "architecture": "x86_64"
    },
    {
      "amiId": "ami-0d0de4f95f56374bc",
      "os": "alinux2",
      "name": "aws-parallelcluster-3.1.2-amzn2-hvm-arm64-202202261505 2022-02-26T15-08-46.088Z",
      "version": "3.1.2",
      "architecture": "arm64"
    },
    {
      "amiId": "ami-0ebf7bc54b8740dc6",
      "os": "ubuntu2204",
      "name": "aws-parallelcluster-3.1.2-ubuntu-1804-lts-hvm-arm64-202202261505 2022-02-26T15-08-45.293Z",
      "version": "3.1.2",
      "architecture": "arm64"
    }
  ]
}
```

# `pcluster ssh`
<a name="pcluster.ssh-v3"></a>

运行预填充了集群用户名和 IP 地址的 `ssh` 命令。将任意参数附加到 `ssh` 命令行的结尾。

```
pcluster ssh [-h]
                 --cluster-name CLUSTER_NAME
                [--debug]
                [--dryrun DRYRUN]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.ssh.namedargs"></a>

**-h, --help**  
显示 `pcluster ssh` 的帮助文本。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定要连接到的集群的名称。

**--debug**  
启用调试日志记录。

**--dryrun *DRYRUN***  
当为 `true` 时，打印将要运行的命令行并退出。（默认值为 `false`。）

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

示例：

```
$ pcluster ssh --cluster-name mycluster -i ~/.ssh/id_rsa
```

运行预填充了集群用户名和 IP 地址的 `ssh` 命令：

```
ssh ec2-user@1.1.1.1 -i ~/.ssh/id_rsa
```

# `pcluster update-cluster`
<a name="pcluster.update-cluster-v3"></a>

更新现有集群以匹配指定配置文件的设置。

**注意**  
 只有当所有群集节点都成功应用更新时，群集更新才会成功。如果更新失败，请参阅故障排除指南[使用 `pcluster describe-cluster` 命令时看到 `clusterStatus` 为 `UPDATE_FAILED`](troubleshooting-fc-v3-update-cluster.md#update-cluster-failure-v3)部分。

```
pcluster update-cluster [-h] 
                 --cluster-configuration CLUSTER_CONFIGURATION
                 --cluster-name CLUSTER_NAME
                [--debug]
                [--dryrun DRYRUN]
                [--force-update FORCE_UPDATE]
                [--query QUERY]
                [--region REGION]
                [--suppress-validators SUPPRESS_VALIDATORS [SUPPRESS_VALIDATORS ...]]
                [--validation-failure-level {INFO,WARNING,ERROR}]
```

## 命名的参数
<a name="pcluster-v3.update-cluster.namedargs"></a>

**-h, --help**  
显示 `pcluster update-cluster` 的帮助文本。

**--cluster-configuration, -c *CLUSTER\$1CONFIGURATION***  
指定 YAML 集群配置文件。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--debug**  
启用调试日志记录。

**--dryrun *DRYRUN***  
当为 `true` 时，执行验证而不更新集群和创建任何资源。它可用于验证映像配置和更新要求。（默认值为 `false`。）

**--force-update *FORCE\$1UPDATE***  
当为 `true` 时，通过忽略更新验证错误强制更新。（默认值为 `false`。）

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用群集配置文件中的[`Region`](cluster-configuration-file-v3.md#yaml-Region)设置、`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分的`region`设置或`--region`参数来指定。

**--suppress-validators * SUPPRESS\$1VALIDATORS* [*SUPPRESS\$1VALIDATORS ...*]**  
标识一个或多个要禁止的配置验证器。  
格式：(`ALL`\$1`type:[A-Za-z0-9]+`)

**--validation-failure-level *\$1INFO,WARNING,ERROR\$1***  
指定为更新报告的验证失败级别。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster update-cluster -c cluster-config.yaml -n cluster-v3 -r us-east-1
{
  "cluster": {
    "clusterName": "cluster-v3",
    "cloudformationStackStatus": "UPDATE_IN_PROGRESS",
    "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-v3/1234abcd-56ef-78gh-90ij-abcd1234efgh",
    "region": "us-east-1",
    "version": "3.1.4",
    "clusterStatus": "UPDATE_IN_PROGRESS"
  },
  "changeSet": [
    {
      "parameter": "HeadNode.Iam.S3Access",
      "requestedValue": {
        "BucketName": "amzn-s3-demo-bucket1",
        "KeyName": "output",
        "EnableWriteAccess": false
      }
    },
    {
      "parameter": "HeadNode.Iam.S3Access",
      "currentValue": {
        "BucketName": "amzn-s3-demo-bucket2",
        "KeyName": "logs",
        "EnableWriteAccess": true
      }
    }
  ]
}
```

# `pcluster update-compute-fleet`
<a name="pcluster.update-compute-fleet-v3"></a>

更新集群计算实例集的状态。

```
pcluster update-compute-fleet [-h] 
                 --cluster-name CLUSTER_NAME
                 --status {START_REQUESTED,STOP_REQUESTED,ENABLED,DISABLED}                             
                [--debug]
                [--query QUERY]
                [--region REGION]
```

## 命名的参数
<a name="pcluster-v3.update-compute-fleet.namedargs"></a>

**-h, --help**  
显示 `pcluster update-compute-fleet` 的帮助文本。

**--cluster-name, -n *CLUSTER\$1NAME***  
指定集群的名称。

**--status \$1START\$1REQUESTED,STOP\$1REQUESTED,ENABLED,DISABLED\$1**  
指定应用于集群计算实例集的状态。状态`START_REQUESTED`和`STOP_REQUESTED`对应于Slurm调度器，而状态`ENABLED`和`DISABLED`对应于调度器。 AWS Batch 

**--debug**  
启用调试日志记录。

**--query *QUERY***  
指定要对输出执行的 JMESPath 查询。

**--region, -r *REGION***  
指定 AWS 区域 要使用的。 AWS 区域 必须使用`AWS_DEFAULT_REGION`环境变量、`~/.aws/config`文件`[default]`部分中的`region`设置或`--region`参数来指定。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster update-compute-fleet -n cluster-v3 --status STOP_REQUESTED
{
  "status": "STOP_REQUESTED",
  "lastStatusUpdatedTime": "2022-07-12T20:19:47.653Z"
}
```

# `pcluster version`
<a name="pcluster.version-v3"></a>

显示的版本 AWS ParallelCluster。

```
pcluster version [-h] [--debug]
```

## 命名的参数
<a name="pcluster-v3.version.namedargs"></a>

**-h, --help**  
显示 `pcluster version` 的帮助文本。

**--debug**  
启用调试日志记录。

**使用 AWS ParallelCluster 版本 3.1.4 的示例：**

```
$ pcluster version
{
  "version": "3.1.4"
}
```

# `pcluster3-config-converter`
<a name="pcluster3-config-converter"></a>

读取 AWS ParallelCluster 版本 2 配置文件并写入 AWS ParallelCluster 版本 3 配置文件。

```
pcluster3-config-converter [-h]                            
                [-t CLUSTER_TEMPLATE]
                [-c CONFIG_FILE]
                [--force-convert]
                [-o OUTPUT_FILE]
```

## 命名的参数
<a name="pcluster3-config-converter.named.arguments"></a>

**-h, --help**  
显示 `pcluster3-config-converter` 的帮助文本。

**-t *CLUSTER\$1TEMPLATE*, --cluster-template *CLUSTER\$1TEMPLATE***  
指定要转换的配置文件的 [`[cluster]` 部分](https://docs.aws.amazon.com/parallelcluster/v2/ug/cluster-definition.html)。如果未指定，则脚本将在 [`[global]` 部分](https://docs.aws.amazon.com/parallelcluster/v2/ug/global.html)中查找 [cluster-template](https://docs.aws.amazon.com/parallelcluster/v2/ug/global.html#cluster-template) 参数或搜索 `[cluster default]`。

**-c *CONFIG\$1FILE*, --config-file *CONFIG\$1FILE***  
指定要读取的 AWS ParallelCluster 版本 2 配置文件。

**--force-convert**  
即使不支持或不建议使用一个或多个设置，也启用转换。

**-o *OUTPUT\$1FILE*, --output-file *OUTPUT\$1FILE***  
指定要写入的 AWS ParallelCluster 版本 3 配置文件。如果未指定此参数，则将配置写入 stdout。

**注意**  
该`pcluster3-config-converter`命令是在 3.0.1 AWS ParallelCluster 版本中添加的。

# 配置文件
<a name="configuration-v3"></a>

AWS ParallelCluster 使用 YAML 1.1 文件作为配置参数。

**Topics**
+ [集群配置文件](cluster-configuration-file-v3.md)
+ [构建映像配置文件](image-builder-configuration-file-v3.md)

# 集群配置文件
<a name="cluster-configuration-file-v3"></a>

AWS ParallelCluster 版本 3 使用单独的配置文件来控制群集基础架构的定义和自定义的定义 AMIs。所有配置文件都使用 YAML 1.1 文件。下面链接了每个配置文件的详细信息。有关一些示例配置，请参阅 a [https://github.com/aws/w parallelcluster/tree/release-3.0/cli/tests/pcluster/example s-\$1configs](https://github.com/aws/aws-parallelcluster/tree/release-3.0/cli/tests/pcluster/example_configs)。

这些对象用于 AWS ParallelCluster 版本 3 的集群配置。

**Topics**
+ [集群配置文件属性](#cluster-configuration-file-v3.properties)
+ [`Imds` 部分](Imds-cluster-v3.md)
+ [`Image` 部分](Image-v3.md)
+ [`HeadNode` 部分](HeadNode-v3.md)
+ [`Scheduling` 部分](Scheduling-v3.md)
+ [`SharedStorage` 部分](SharedStorage-v3.md)
+ [`Iam` 部分](Iam-v3.md)
+ [`LoginNodes` 部分](LoginNodes-v3.md)
+ [`Monitoring` 部分](Monitoring-v3.md)
+ [`Tags` 部分](Tags-v3.md)
+ [`AdditionalPackages` 部分](AdditionalPackages-v3.md)
+ [`DirectoryService` 部分](DirectoryService-v3.md)
+ [`DeploymentSettings` 部分](DeploymentSettings-cluster-v3.md)

## 集群配置文件属性
<a name="cluster-configuration-file-v3.properties"></a>

`Region`（**可选**，`String`）  
 AWS 区域 为群集指定。例如 `us-east-2`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`CustomS3Bucket`（**可选**，`String`）  
指定在您的 AWS 账户中创建的 Amazon S3 存储桶的名称，该存储桶用于存储集群使用的资源（例如集群配置文件）和导出日志。 AWS ParallelCluster 在您创建集群的每个 AWS 区域中维护一个 Amazon S3 存储桶。默认情况下，这些 Amazon S3 存储桶命名为 `parallelcluster-hash-v1-DO-NOT-DELETE`。  
[更新策略：如果更改此设置，则不允许更新。如果您强制更新，则将忽略新值并使用旧值。](using-pcluster-update-cluster-v3.md#update-policy-read-only-resource-bucket-v3)

`AdditionalResources`（**可选**，`String`）  
定义要与集群一起启动的附加 AWS CloudFormation 模板。此附加模板用于创建存在于集群外部但属于集群生命周期一部分的资源。  
值必须是指向公有模板的 HTTPS URL，并提供所有参数。  
没有默认值。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

# `Imds` 部分
<a name="Imds-cluster-v3"></a>

**（可选）**指定全局实例元数据服务 (IMDS) 配置。

```
Imds:
  ImdsSupport: string
```

## `Imds` 属性
<a name="Imds-cluster-v3.properties"></a>

`ImdsSupport`（**可选**，`String`）  
指定集群节点中支持的 IMDS 版本。支持的值为 `v1.0` 和 `v2.0`。默认值为 `v2.0`。  
如果设置`ImdsSupport`为`v1.0`， IMDSv2 则同时支持 IMDSv1 和。  
如果设置`ImdsSupport`为`v2.0`，则仅支持 IMDSv2 该选项。  
有关更多信息，请参阅《适用于 *Linux 实例的 Amazon EC2 用户指南》 IMDSv2*中的[使用](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
从 AWS ParallelCluster 3.7.0 开始，`ImdsSupport`默认值为。`v2.0`我们建议您在自定义操作调 IMDSv1 用 IMDSv2 中设置`ImdsSupport`为`v2.0`并替换为。  
3.3.0 AWS ParallelCluster 版本[`ImdsSupport`](#yaml-cluster-Imds-ImdsSupport)中增加了对 [`Imds`](#Imds-cluster-v3)/的支持。

# `Image` 部分
<a name="Image-v3"></a>

**注意**  
官方 AMIs 分发的不支持版本 AWS ParallelCluster 将在闲置 18 个月后变为不可用。这些旧映像包含过时的软件，出现问题时无法获得支持。我们强烈建议改用最新的支持版本。

**（必需）**定义集群的操作系统。

```
Image:
  Os: string
  CustomAmi: string
```

## `Image` 属性
<a name="Image-v3.properties"></a>

`Os`（**必需**，`String`）  
指定要对集群使用的操作系统。支持的值为 `alinux2`、`alinux2023`、`ubuntu2404`、`ubuntu2204`、`rhel8`、`rocky8`、`rhel9`、`rocky9`。  
RedHat 从 AWS ParallelCluster 版本 3.6.0 开始添加企业 Linux 8.7 (`rhel8`)。  
如果您将集群配置为使用 `rhel`，则任何实例类型的按需成本都高于将集群配置为使用支持的其它操作系统时的按需成本。有关定价的更多信息，请参阅[按需定价](https://aws.amazon.com/ec2/pricing/on-demand)和 [Amazon EC2 上如何提供和定价 Red Hat Enterprise Linux？](https://aws.amazon.com/partners/redhat/faqs/#Pricing_and_Billing) 。  
RedHat 从 AWS ParallelCluster 版本 3.9.0 开始添加企业 Linux 9 (rhel9)。
所有 AWS 商业区域都支持以下所有操作系统。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/parallelcluster/latest/ug/Image-v3.html)
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
 AWS ParallelCluster 3.8.0 支持 Rocky Linux 8，但预先构建的 Rocky Linux 8 AMIs （适用于 x86 和 ARM 架构）不可用。 AWS ParallelCluster 3.8.0 支持使用自定义方式使用 Rocky Linux 8 创建集群。 AMIs有关更多信息，请参阅[操作系统注意事项](operating-systems-v3.md#OS-Consideration-v3)。 AWS ParallelCluster 3.9.0 支持 Rocky Linux 9，但预先构建的 Rocky Linux 9 AMIs （适用于 x86 和 ARM 架构）不可用。 AWS ParallelCluster 3.9.0 支持使用自定义方式使用 Rocky Linux 9 创建集群。 AMIs有关更多信息，请参阅[操作系统注意事项](operating-systems-v3.md#OS-Consideration-v3)。  
 

`CustomAmi`（**可选**，`String`）  
指定要用于头节点和计算节点的自定义 AMI（而非默认 AMI）的 ID。有关更多信息，请参阅 [AWS ParallelCluster AMI 自定义](custom-ami-v3.md)。  
如果自定义 AMI 需要其他权限才能启动，则必须将这些权限添加到用户和头节点策略中。  
例如，如果自定义 AMI 具有与之关联的加密快照，则用户和头节点策略中都需要以下其他策略：    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey",
                "kms:ReEncrypt*",
                "kms:CreateGrant",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/<AWS_KMS_KEY_ID>"
            ]
        }
    ]
}
```
要构建 E RedHat nterprise Linux 自定义 AMI，必须配置操作系统以安装 RHUI (AWS) 存储库提供的软件包：`rhel-<version>-baseos-rhui-rpms``rhel-<version>-appstream-rhui-rpms`、和`codeready-builder-for-rhel-<version>-rhui-rpms`。此外，自定义 AMI 上的存储库包含的 `kernel-devel` 程序包版本必须与正在运行的内核版本相同。  

**已知限制：**
+ 只有 RHEL 8.2 及更高版本支持 Lustre FSx 。
+ RHEL 8.7 内核版本 4.18.0-425.3.1.el8 不支持 Lustre。 FSx 
+ 只有 RHEL 8.4 及更高版本支持 EFA。
+ AL23 不支持 NICE DCV，因为它不包括运行 NICE DCV 所需的图形桌面环境。有关更多信息，请参阅官方的 [NICE DCV 文档](https://docs.aws.amazon.com//dcv/)。
要排查自定义 AMI 验证警告，请参阅[排查自定义 AMI 问题](troubleshooting-v3-custom-amis.md)。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

# `HeadNode` 部分
<a name="HeadNode-v3"></a>

**（必需）**指定头节点的配置。

```
HeadNode:
  InstanceType: string
  Networking:
    SubnetId: string
    ElasticIp: string/boolean
    SecurityGroups:
      - string
    AdditionalSecurityGroups:
      - string
    Proxy:
      HttpProxyAddress: string
  DisableSimultaneousMultithreading: boolean
  Ssh:
    KeyName: string
    AllowedIps: string
  LocalStorage:
    RootVolume:
      Size: integer
      Encrypted: boolean
      VolumeType: string
      Iops: integer
      Throughput: integer
      DeleteOnTermination: boolean
    EphemeralVolume:
      MountDir: string
  SharedStorageType: string
  Dcv:
    Enabled: boolean
    Port: integer
    AllowedIps: string
  CustomActions:
    OnNodeStart:
      Sequence:
        - Script: string
          Args:
            - string
      Script: string
      Args:
        - string
    OnNodeConfigured:
      Sequence:
        - Script: string
          Args:
            - string
      Script: string
      Args:
        - string
    OnNodeUpdated:
      Sequence:
        - Script: string
          Args: 
            - string
      Script: string
      Args:
        - string
  Iam:
    InstanceRole: string
    InstanceProfile: string
    S3Access:
      - BucketName: string
        EnableWriteAccess: boolean
        KeyName: string
    AdditionalIamPolicies:
      - Policy: string
  Imds:
    Secured: boolean
  Image:
    CustomAmi: string
```

## `HeadNode` 属性
<a name="HeadNode-v3.properties"></a>

`InstanceType`（**必填**，`String`）  
指定头节点的实例类型。  
指定用于头节点的 Amazon EC2 实例类型。实例类型的架构必须与用于 AWS Batch [`InstanceType`](Scheduling-v3.md#yaml-Scheduling-AwsBatchQueues-ComputeResources-InstanceTypes)或Slurm[`InstanceType`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-InstanceType)设置的架构相同。  
AWS ParallelCluster 不支持该`HeadNode`设置的以下实例类型。  
+ hpc6id
如果您定义一个 p4d 实例类型或其他具有多个网络接口或网络接口卡的实例类型，则必须[`ElasticIp`](#yaml-HeadNode-Networking-ElasticIp)将设置为`true`以提供公共访问权限。 AWS public IPs 只能分配给使用单个网络接口启动的实例。对于这种情况，我们建议您使用 [NAT 网关](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)为集群计算节点提供公有访问权限。有关更多信息，请参阅《适用于 *Linux 实例的 Amazon EC2 用户指南》中的 “在实例*[启动期间分配公有 IPv4 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#public-ip-addresses)”。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`DisableSimultaneousMultithreading`（**可选**，`Boolean`）  
如果`true`，则在头节点上禁用超线程。默认值为 `false`。  
并非所有实例类型都可以禁用超线程。有关支持禁用超线程的实例类型列表，请参阅 *Amazon EC2 用户*指南中[每种实例类型的 CPU 核心和每个 CPU 内核的线程](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values)。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`SharedStorageType`（**可选**，`String`）  
指定用于内部共享数据的存储类型。内部共享的数据包括 AWS ParallelCluster 用于管理群集的数据，以及用于挂载共享文件系统卷的默认共享数据（`/home`如果未在挂载目录中指定）。[`SharedStorage` 部分](SharedStorage-v3.md)有关内部共享数据的更多详细信息，请参阅 [AWS ParallelCluster 内部目录](directories-v3.md)。  
如果使用 `Ebs`（默认存储类型），则头节点将使用 NFS 导出其根卷的部分内容，作为计算节点和登录节点的共享目录。  
如果`Efs`， ParallelCluster 将创建一个 EFS 文件系统用于共享的内部数据，以及。`/home`  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
当集群横向扩展时，EBS 存储类型可能会出现性能瓶颈，因为头节点会使用 NFS 导出与计算节点共享根卷中的数据。使用 EFS，可以在集群横向扩展时避免 NFS 导出，并避免与之相关的性能瓶颈。建议选择 EBS，以最大限度地提高存放小文件和安装过程 read/write 的可能性。选择 EFS 进行扩展。

## `Networking`
<a name="HeadNode-v3-Networking"></a>

**（必需）**定义头节点的网络配置。

```
Networking:
  SubnetId: string
  ElasticIp: string/boolean
  SecurityGroups:
    - string
  AdditionalSecurityGroups:
    - string
  Proxy:
    HttpProxyAddress: string
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

### `Networking` 属性
<a name="HeadNode-v3-Networking.properties"></a>

`SubnetId`（**必需**，`String`）  
指定要在其中预置头节点的现有子网的 ID。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`ElasticIp`（**可选**，`String`）  
创建弹性 IP 地址或将弹性 IP 地址分配给头节点。支持的值为 `true`、`false` 或现有弹性 IP 地址的 ID。默认值为 `false`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`SecurityGroups`（**可选**，`[String]`）  
用于头节点的 Amazon VPC 安全组 ID 的列表。如果不包含此属性，则它们将替换 AWS ParallelCluster 创建的安全组。  
验证您的[SharedStorage](SharedStorage-v3.md)系统是否正确配置了安全组。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`AdditionalSecurityGroups`（**可选**，`[String]`）  
用于头节点的其他 Amazon VPC 安全组 ID 的列表。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`Proxy`（**可选**）  
指定头节点的代理设置。  

```
Proxy:
                            HttpProxyAddress: 
                            string
```  
` HttpProxyAddress`（**可选**，`String`）  
定义 HTTP 或 HTTPS 代理服务器，通常为 `https://x.x.x.x:8080`。  
没有默认值。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

## `Ssh`
<a name="HeadNode-v3-Ssh"></a>

**（可选）**定义头节点的 SSH 访问配置。

```
Ssh:
      KeyName: string
      AllowedIps: string
```

[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

### `Ssh` 属性
<a name="HeadNode-v3-Ssh.properties"></a>

`KeyName`（**可选**，`String`）  
命名一个现有 Amazon EC2 密钥对，以启用对头节点的 SSH 访问。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`AllowedIps`（**可选**，`String`）  
指定头节点 SSH 连接的 CIDR 格式 IP 范围或前缀列表 ID。默认值为 `0.0.0.0/0`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

## `LocalStorage`
<a name="HeadNode-v3-LocalStorage"></a>

**（可选）**定义头节点的本地存储配置。

```
LocalStorage:
  RootVolume:
    Size: integer
    Encrypted: boolean
    VolumeType: string
    Iops: integer
    Throughput: integer
    DeleteOnTermination: boolean
  EphemeralVolume:
    MountDir: string
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

### `LocalStorage` 属性
<a name="HeadNode-v3-LocalStorage.properties"></a>

`RootVolume`（**必需**）  
指定头节点的根卷存储。  

```
RootVolume:
  Size: integer
  Encrypted: boolean
  VolumeType: string
  Iops: integer
  Throughput: integer
  DeleteOnTermination: boolean
```
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)    
`Size`（**可选**，`Integer`）  
指定头节点根卷大小，以吉字节 (GiB) 为单位。默认大小来自 AMI。如果使用不同的大小，则 AMI 必须支持 `growroot`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`Encrypted`（**可选**，`Boolean`）  
指定是否对根卷进行加密。默认值为 `true`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
` VolumeType`（**可选**，`String`）  
指定 A [mazon EBS 卷类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)。支持的值为 `gp2`、`gp3`、`io1`、`io2`、`sc1`、`st1` 和 `standard`。默认值为 `gp3`。  
有关更多信息，请参阅《Amazon EC2 用户指南》中的 [Amazon EBS 卷类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`Iops`（**可选**，`Integer`）  
定义 `io1`、`io2` 和 `gp3` 类型卷的 IOPS 数。  
默认值、支持的值以及 `volume_size`/`volume_iops` 比率因 `VolumeType` 和 `Size` 而异。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)    
`VolumeType` = `io1`  
默认值：`Iops` = 100  
支持的值：`Iops` = 100–64000 †  
最大 `Iops`/`Size` 比率 = 50 IOPS/GiB。5000 IOPS 需要至少 100 GiB 的 `Size`。  
`VolumeType` = `io2`  
默认值：`Iops` = 100  
支持的值：`Iops` = 100–64000（`io2` Block Express 卷为 256000）†  
最大 `Iops`/`Size` 比率 = 500 IOPS/GiB。5000 IOPS 需要至少 10 GiB 的 `Size`。  
`VolumeType` = `gp3`  
默认值：`Iops` = 3000  
支持的值：`Iops` = 3000–16000  
最大 `Iops`/`Size` 比率 = 500 IOPS/GiB。5000 IOPS 需要至少 10 GiB 的 `Size`。
† 只有在配置超过 32,000 IOPS 的 [Nitro 系统上构建的实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)才能保证最大 IOPS。其他实例保证最高为 32000 IOPS。除非您[修改`io1`卷，否则较旧的卷可能无法达到最大](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modify-volume.html)性能。 `io2`Block Express 卷在 `R5b` 实例类型上支持高达 256000 的 `Iops` 值。有关更多信息，请参阅《Amazon EC2 用户指南》**中的 [`io2`Block Express 卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html#io2-block-express)。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
`Throughput`（**可选**，`Integer`）  
定义 `gp3` 卷类型的吞吐量，以 MiB/s 为单位。此设置仅在 `VolumeType` 为 `gp3` 时有效。默认值为 `125`。支持的值：125–1000 MiB/s  
`Throughput` 与 `Iops` 的比率不能超过 0.25。如果最大吞吐量为 1000，则该`Iops`设置 MiB/s 必须至少为 4000。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
 `DeleteOnTermination`（**可选**，`Boolean`）  
指定头节点终止时是否应删除根卷。默认值为 `true`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`EphemeralVolume`（**可选**）  
指定任何实例存储卷的详细信息。有关更多信息，请参阅 *Amazon EC2 用户指南*中的[实例存储卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)。  

```
EphemeralVolume:
  MountDir: string
```
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)    
 `MountDir`（**可选**，`String`）  
指定实例存储卷的挂载目录。默认值为 `/scratch`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

## `Dcv`
<a name="HeadNode-v3-Dcv"></a>

**（可选）**定义在头节点上运行的 Amazon DCV 服务器的配置设置。

有关更多信息，请参阅 [通过 Amazon DCV 连接到头节点和登录节点](dcv-v3.md)。

```
Dcv:
  Enabled: boolean
  Port: integer
  AllowedIps: string
```

**重要**  
默认情况下，设置的 Amazon DCV 端口对所有 IPv4 地址开放。 AWS ParallelCluster 但是，只有当您具有 Amazon DCV 会话的 URL 时，才能连接到 Amazon DCV 端口，并应在 `pcluster dcv-connect` 返回 URL 后的 30 秒内连接到 Amazon DCV 会话。请使用 `AllowedIps` 设置进一步限制对具有 CIDR 格式 IP 范围的 Amazon DCV 端口的访问，并使用 `Port` 设置来设置非标准端口。

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

### `Dcv` 属性
<a name="HeadNode-v3-Dcv.properties"></a>

`Enabled`（**必填**，`Boolean`）  
指定是否在头节点上启用 Amazon DCV。默认值为 `false`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
Amazon DCV 会自动生成自签名证书，该证书用于保护 Amazon DCV 客户端与在头节点上运行的 Amazon DCV 服务器之间的流量。要配置您自己的证书，请参阅 [Amazon DCV HTTPS 证书](dcv-v3.md#dcv-v3-certificate)。

`Port`（**可选**，`Integer`）  
指定 Amazon DCV 的端口。默认值为 `8443`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`AllowedIps`（**可选，建议**，`String`）  
指定 Amazon DCV 连接的 CIDR 格式的 IP 范围。此设置仅在 AWS ParallelCluster 创建安全组时使用。默认值是 `0.0.0.0/0`，允许从任何 Internet 地址访问。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

## `CustomActions`
<a name="HeadNode-v3-CustomActions"></a>

**（可选）**指定要在头节点上运行的自定义脚本。

```
CustomActions:
  OnNodeStart:
    Sequence:
      - Script: string
        Args:
          - string
    Script: string
    Args:
      - string
  OnNodeConfigured:
    Sequence:
      - Script: string
        Args:
          - string
    Script: string
    Args:
      - string
  OnNodeUpdated:
    Sequence:
      - Script: string
        Args: 
          - string
    Script: string
    Args: 
      - string
```

### `CustomActions` 属性
<a name="HeadNode-v3-CustomActions.properties"></a>

`OnNodeStart`（**可选**）  
指定要在启动任何节点部署引导操作之前在头节点上运行的单个脚本或一系列脚本。有关更多信息，请参阅[自定义引导操作](custom-bootstrap-actions-v3.md)。    
`Sequence`（**可选**）  
要运行的脚本列表。 AWS ParallelCluster 按配置文件中列出的顺序运行脚本，从第一个脚本开始。    
 `Script`（**必需**，`String`）  
指定要使用的文件。文件路径可以 `https://` 或 `s3://` 开头。  
 `Args`（**可选**，`[String]`）  
要传递到脚本的参数的列表。  
 `Script`（**必需**，`String`）  
指定用于单个脚本的文件。文件路径可以 `https://` 或 `s3://` 开头。  
`Args`（**可选**，`[String]`）  
要传递到单个脚本的参数的列表。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`OnNodeConfigured`（**可选**）  
指定要在节点引导操作完成后在头节点上运行的单个脚本或一系列脚本。有关更多信息，请参阅[自定义引导操作](custom-bootstrap-actions-v3.md)。    
`Sequence`（**可选**）  
指定要运行的脚本的列表。    
 `Script`（**必需**，`String`）  
指定要使用的文件。文件路径可以 `https://` 或 `s3://` 开头。  
 `Args`（**可选**，`[String]`）  
要传递到脚本的参数的列表。  
 `Script`（**必需**，`String`）  
指定用于单个脚本的文件。文件路径可以 `https://` 或 `s3://` 开头。  
 `Args`（**可选**，`[String]`）  
要传递到单个脚本的参数的列表。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`OnNodeUpdated`（**可选**）  
指定要在节点更新操作完成后在头节点上运行的单个脚本或一系列脚本。有关更多信息，请参阅[自定义引导操作](custom-bootstrap-actions-v3.md)。    
`Sequence`（**可选**）  
指定要运行的脚本的列表。    
 `Script`（**必需**，`String`）  
指定要使用的文件。文件路径可以 `https://` 或 `s3://` 开头。  
 `Args`（**可选**，`[String]`）  
要传递到脚本的参数的列表。  
 `Script`（**必需**，`String`）  
指定用于单个脚本的文件。文件路径可以 `https://` 或 `s3://` 开头。  
 `Args`（**可选**，`[String]`）  
要传递到单个脚本的参数的列表。
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
`OnNodeUpdated`是从 AWS ParallelCluster 3.4.0 开始添加的。  
`Sequence`是从 3.6.0 AWS ParallelCluster 版本开始添加的。指定后`Sequence`，您可以列出一个自定义操作的多个脚本。 AWS ParallelCluster 继续支持使用单个脚本配置自定义操作，不包括脚本`Sequence`。  
AWS ParallelCluster 不支持同时包含单个脚本和`Sequence`同一个自定义操作。

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

**（可选）**指定要在头节点上使用的实例角色或实例配置文件，用于覆盖集群的默认实例角色或实例配置文件。

```
Iam:
  InstanceRole: string
  InstanceProfile: string
  S3Access:
    - BucketName: string
      EnableWriteAccess: boolean
      KeyName: string
  AdditionalIamPolicies:
    - Policy: string
```

[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

### `Iam` 属性
<a name="HeadNode-v3-Iam.properties"></a>

`InstanceProfile`（**可选**，`String`）  
指定用于覆盖默认头节点实例配置文件的实例配置文件。您不能同时指定 `InstanceProfile` 和 `InstanceRole`。格式为 `arn:Partition:iam::Account:instance-profile/InstanceProfileName`。  
如果指定此设置，则不能指定 `S3Access` 和 `AdditionalIamPolicies` 设置。  
我们建议您指定 `S3Access` 和 `AdditionalIamPolicies` 设置中的一个或两个，因为添加到 AWS ParallelCluster 中的功能通常需要新权限。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`InstanceRole`（**可选**，`String`）  
指定用于覆盖默认头节点实例角色的实例角色。您不能同时指定 `InstanceProfile` 和 `InstanceRole`。格式为 `arn:Partition:iam::Account:role/RoleName`。  
如果指定此设置，则不能指定 `S3Access` 和 `AdditionalIamPolicies` 设置。  
我们建议您指定 `S3Access` 和 `AdditionalIamPolicies` 设置中的一个或两个，因为添加到 AWS ParallelCluster 中的功能通常需要新权限。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

### `S3Access`
<a name="HeadNode-v3-Iam-S3Access.properties"></a>

`S3Access`（**可选**）  
指定存储桶。此设置用于生成针对存储桶授予指定访问权限的策略。  
如果指定此设置，则不能指定 `InstanceProfile` 和 `InstanceRole` 设置。  
我们建议您指定 `S3Access` 和 `AdditionalIamPolicies` 设置中的一个或两个，因为添加到 AWS ParallelCluster 中的功能通常需要新权限。  

```
S3Access:
  - BucketName: string
    EnableWriteAccess: boolean
    KeyName: string
```
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)    
`BucketName`（**必需**，`String`）  
存储桶的名称。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
`KeyName`（**可选**，`String`）  
存储桶的密钥。默认值为“`*`”。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
` EnableWriteAccess`（**可选**，`Boolean`）  
指示是否为存储桶启用写入权限。默认值为 `false`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

### `AdditionalIamPolicies`
<a name="HeadNode-v3-Iam-AdditionalIamPolicies.properties"></a>

`AdditionalIamPolicies`（**可选**）  
指定 Amazon EC2 的 IAM 策略的 Amazon 资源名称 (ARN) 列表。除了所需的权限外，此列表还附在用于头节点的根角色上 AWS ParallelCluster。  
IAM 策略名称及其 ARN 不相同。不能使用名称。  
如果指定此设置，则不能指定 `InstanceProfile` 和 `InstanceRole` 设置。  
我们建议您使用 `AdditionalIamPolicies`，因为 `AdditionalIamPolicies` 已经添加到 AWS ParallelCluster 所需的权限中，而 `InstanceRole` 必须包含所有必需的权限。随着功能的不断添加，所需权限通常会随版本发生变化。  
没有默认值。  

```
AdditionalIamPolicies:
  - Policy: string
```
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)    
` Policy`（**可选**，`[String]`）  
IAM 策略的列表。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

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

**（可选）**指定实例元数据服务 (IMDS) 的属性。有关更多信息，[请参阅 *Amazon EC2 用户指南*中的实例元数据服务版本 2 的工作原理](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html#instance-metadata-v2-how-it-works)。

```
Imds:
    Secured: boolean
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

### `Imds` 属性
<a name="HeadNode-v3-Imds.properties"></a>

`Secured`（**可选**，`Boolean`）  
如果为 `true`，则仅允许一部分超级用户访问头节点的 IMDS（以及实例配置文件凭证）。  
如果为 `false`，则头节点中的每个用户都可以访问头节点的 IMDS。  

允许以下用户访问头节点的 IMDS：
+ 根用户
+ 集群管理用户（默认为 `pc-cluster-admin`）
+ 操作系统特定的默认用户（`ec2-user`在 Amazon Linux 2 和 RedHat Ubuntu 18.04 `ubuntu` 上。
默认值为 `true`。  
`default`用户负责确保集群拥有与 AWS 资源交互所需的权限。如果您禁用`default`用户 IMDS 访问权限，则 AWS ParallelCluster 无法管理计算节点并停止工作。请勿禁用 `default` 用户 IMDS 访问权限。  
向用户授予头节点 IMDS 的访问权限后，他们可以使用[头节点的实例配置文件](iam-roles-in-parallelcluster-v3.md)中包含的权限。例如，他们可以使用这些权限来启动 Amazon EC2 实例，或读取为集群配置的用于进行身份验证的 AD 域的密码。  
要限制 IMDS 的访问权限，请 AWS ParallelCluster 管理一连串的。`iptables`  
具有 `sudo` 访问权限的集群用户可以通过运行以下命令，对其他单独用户（包括 `default` 用户）有选择地启用或禁用对头节点 IMDS 的访问权限：  

```
$ sudo /opt/parallelcluster/scripts/imds/imds-access.sh --allow <USERNAME>
```
您可以使用此命令的 `--deny` 选项禁用用户的 IMDS 访问权限。  
如果您无意中禁用了 `default` 用户的 IMDS 访问权限，则可以使用 `--allow` 选项还原该权限。  
对 `iptables` 或 `ip6tables` 规则进行任何自定义都可能干扰头节点上用于限制 IMDS 访问权限的机制。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

## `Image`
<a name="HeadNode-v3-Image"></a>

**（可选）**为头节点定义自定义映像。

```
Image:
     CustomAmi: string
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

### `Image` 属性
<a name="HeadNode-v3-Image.properties"></a>

`CustomAmi`（**可选**，`String`）  
指定要用于头节点的自定义 AMI（而非默认 AMI）的 ID。有关更多信息，请参阅 [AWS ParallelCluster AMI 自定义](custom-ami-v3.md)。  
如果自定义 AMI 需要其他权限才能启动，则必须将这些权限添加到用户和头节点策略中。  
例如，如果自定义 AMI 具有与之关联的加密快照，则用户和头节点策略中都需要以下其他策略：    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey",
                "kms:ReEncrypt*",
                "kms:CreateGrant",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/<AWS_KMS_KEY_ID>"
            ]
        }
    ]
}
```
要排查自定义 AMI 验证警告，请参阅[排查自定义 AMI 问题](troubleshooting-v3-custom-amis.md)。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

# `Scheduling` 部分
<a name="Scheduling-v3"></a>

**（必需）**定义集群中使用的作业调度器以及该作业调度器管理的计算实例。您可以使用Slurm或 AWS Batch 调度程序。每个调度器支持一组不同的设置和属性。

**Topics**
+ [`Scheduling` 属性](#Scheduling-v3.properties)
+ [`AwsBatchQueues`](#Scheduling-v3-AwsBatchQueues)
+ [`SlurmQueues`](#Scheduling-v3-SlurmQueues)
+ [`SlurmSettings`](#Scheduling-v3-SlurmSettings)

```
Scheduling:
  Scheduler: slurm
  ScalingStrategy: string    
  SlurmSettings:
    MungeKeySecretArn: string        
    ScaledownIdletime: integer    
    QueueUpdateStrategy: string
    EnableMemoryBasedScheduling: boolean
    CustomSlurmSettings: [dict]
    CustomSlurmSettingsIncludeFile: string
    Database:
      Uri: string
      UserName: string
      PasswordSecretArn: string
      DatabaseName: string    
    ExternalSlurmdbd: boolean
      Host: string
      Port: integer  
    Dns:
      DisableManagedDns: boolean
      HostedZoneId: string
      UseEc2Hostnames: boolean  
  SlurmQueues:
    - Name: string  
      ComputeSettings:
        LocalStorage:
          RootVolume:
            Size: integer
            Encrypted: boolean
            VolumeType: string
            Iops: integer
            Throughput: integer
          EphemeralVolume:
            MountDir: string
      CapacityReservationTarget:
        CapacityReservationId: string
        CapacityReservationResourceGroupArn: string
      CapacityType: string
      AllocationStrategy: string
      JobExclusiveAllocation: boolean
      CustomSlurmSettings: dict
      Tags:
        - Key: string
          Value: string
      HealthChecks:
        Gpu:
          Enabled: boolean
      Networking:
        SubnetIds:
          - string
        AssignPublicIp: boolean
        SecurityGroups:
          - string
        AdditionalSecurityGroups:
          - string
        PlacementGroup:
          Enabled: boolean
          Id: string
          Name: string
        Proxy:
          HttpProxyAddress: string
      ComputeResources:
        - Name: string
          InstanceType: string
          Instances:
            - InstanceType: string
          MinCount: integer
          MaxCount: integer
          DynamicNodePriority: integer
          StaticNodePriority: integer
          SpotPrice: float
          DisableSimultaneousMultithreading: boolean
          SchedulableMemory: integer
          HealthChecks:
            Gpu:
              Enabled: boolean
          Efa:
            Enabled: boolean
            GdrSupport: boolean          
          CapacityReservationTarget:
            CapacityReservationId: string
            CapacityReservationResourceGroupArn: string
          Networking:   
            PlacementGroup:
              Enabled: boolean
              Name: string
          CustomSlurmSettings: dict
          Tags:
            - Key: string
              Value: string
          LaunchTemplateOverrides:
            LaunchTemplateId: string
            Version: string
      CustomActions:
        OnNodeStart:
          Sequence:
            - Script: string
              Args:
                - string
          Script: string
          Args:
            - string
        OnNodeConfigured:
          Sequence:
            - Script: string
              Args:
                - string
          Script: string
          Args:
            - string
      Iam:
        InstanceProfile: string
        InstanceRole: string
        S3Access:
          - BucketName: string
            EnableWriteAccess: boolean
            KeyName: string
        AdditionalIamPolicies:
          - Policy: string
      Image:
        CustomAmi: string
```

```
Scheduling:
  Scheduler: awsbatch
  AwsBatchQueues:
    - Name: string
      CapacityType: string
      Networking:
        SubnetIds:
          - string
        AssignPublicIp: boolean
        SecurityGroups:
          - string
        AdditionalSecurityGroups:
          - string
      ComputeResources:  # this maps to a Batch compute environment (initially we support only 1)
        - Name: string
          InstanceTypes:
            - string
          MinvCpus: integer
          DesiredvCpus: integer
          MaxvCpus: integer
          SpotBidPercentage: float
```

## `Scheduling` 属性
<a name="Scheduling-v3.properties"></a>

**`Scheduler`（**必需**，`String`）**  
指定使用的调度器的类型。支持的值为 `slurm` 和 `awsbatch`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`awsbatch` 仅支持 `alinux2` 操作系统和 `x86_64` 平台。

**`ScalingStrategy`（**可选**，`String`）**  
让您能够选择动态 Slurm 节点的纵向扩展方式。支持的值为 `all-or-nothing`、`greedy-all-or-nothing` 和 `best-effort`，默认值为 `all-or-nothing`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
扩展策略仅适用于 Slurm 即将恢复的节点，而不适用于最终已在运行的节点。
+ `all-or-nothing`此策略严格遵循 all-or-nothing-approach，旨在避免在扩展过程结束时出现空闲实例。它是在 all-or-nothing基础上运行的，这意味着它要么完全扩展，要么根本不扩展。请注意，当作业需要超过 500 个节点或跨多个计算资源时，临时启动的实例可能会产生额外费用。在三种可能的扩展策略中，该策略的吞吐量最低。扩展时间取决于每次执行 Slurm 恢复程序时提交的作业数量。此外，您的扩展不能远远超过每次执行的默认 RunInstances 资源帐户限制，默认情况下为 1000 个实例。更多详情可在 [Amazon EC2 API 节流文档](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/throttling.html)中找到
+ `greedy-all-or-nothing `与该 all-or-nothing策略类似，它旨在避免在缩放后出现闲置实例。此策略允许在扩展过程中临时超额扩展，以实现比该 all-or-nothing方法更高的吞吐量，但也具有与 RunInstances 资源账户限制相同的扩展限制，即 1000 个实例。
+ `best-effort `该策略优先考虑高吞吐量，即使这意味着某些实例在扩展过程结束时可能处于闲置状态。该策略会尝试分配作业要求的尽可能多的节点，但有可能无法满足全部要求。与其他策略不同，尽力而为的方法可以积累比标准 RunInstances限制更多的实例，但代价是在执行多个扩展过程时会有闲置资源。

每种策略都旨在满足不同的扩展需求，您可以根据自己的具体要求和限制条件进行选择。

## `AwsBatchQueues`
<a name="Scheduling-v3-AwsBatchQueues"></a>

**（可选）** AWS Batch 队列设置。仅支持一个队列。如果 [`Scheduler`](#yaml-Scheduling-Scheduler) 设置为 `awsbatch`，则此部分是必需的。有关 `awsbatch` 调度器的更多信息，请参阅[联网设置](network-configuration-v3-batch.md)和 [将 AWS Batch (`awsbatch`) 调度器与 AWS ParallelCluster](awsbatchcli-v3.md)。

```
AwsBatchQueues:
  - Name: string
    CapacityType: string
    Networking:
      SubnetIds:
        - string
      AssignPublicIp: boolean
      SecurityGroups:
        - string
      AdditionalSecurityGroups:
        - string
    ComputeResources:  # this maps to a Batch compute environment (initially we support only 1)
      - Name: string
        InstanceTypes:
          - string
        MinvCpus: integer
        DesiredvCpus: integer
        MaxvCpus: integer
        SpotBidPercentage: float
```

[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

### `AwsBatchQueues` 属性
<a name="Scheduling-v3-AwsBatchQueues.properties"></a>

**`Name`（**必需**，`String`）**  
 AWS Batch 队列的名称。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

**`CapacityType`（**可选**，`String`）**  
 AWS Batch 队列使用的计算资源的类型。支持的值为 `ONDEMAND`、`SPOT` 或 `CAPACITY_BLOCK`。默认值为 `ONDEMAND`。  
如果将 `CapacityType` 设置为 `SPOT`，则您的账户必须包含 `AWSServiceRoleForEC2Spot` 服务相关角色。您可以使用以下 AWS CLI 命令创建此角色。  

```
$ aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
```
有关更多信息，请参阅《Amazon EC2 用户指南（适用于 Linux 实例）》**中的[竞价型实例请求的服务相关角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#service-linked-roles-spot-instance-requests)。
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

#### `Networking`
<a name="Scheduling-v3-AwsBatchQueues-Networking"></a>

**（必需）**定义 AWS Batch 队列的网络配置。

```
Networking:
  SubnetIds:
    - string
  AssignPublicIp: boolean
  SecurityGroups:
    - string
  AdditionalSecurityGroups:
    - string
```

##### `Networking` 属性
<a name="Scheduling-v3-AwsBatchQueues-Networking.properties"></a>

**`SubnetIds`（**必需**，`[String]`）**  
指定要在其中配置 AWS Batch 队列的现有子网的 ID。目前仅支持一个子网。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`AssignPublicIp`（**可选**，`String`）**  
为 AWS Batch 队列中的节点创建或分配公有 IP 地址。支持的值为 `true` 和 `false`。默认值取决于您指定的子网。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

**`SecurityGroups`（**可选**，`[String]`）**  
 AWS Batch 队列使用的安全组列表。如果您未指定安全组，则 AWS ParallelCluster 会创建新的安全组。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

**`AdditionalSecurityGroups`（**可选**，`[String]`）**  
 AWS Batch 队列使用的安全组列表。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

#### `ComputeResources`
<a name="Scheduling-v3-AwsBatchQueues-ComputeResources"></a>

**（必需）**定义 AWS Batch 队列的 ComputeResources 配置。

```
ComputeResources:  # this maps to a Batch compute environment (initially we support only 1)
  - Name: string
    InstanceTypes:
      - string
    MinvCpus: integer
    DesiredvCpus: integer
    MaxvCpus: integer
    SpotBidPercentage: float
```

##### `ComputeResources` 属性
<a name="Scheduling-v3-AwsBatchQueues-ComputeResources.properties"></a>

**`Name`（**必需**，`String`）**  
 AWS Batch 队列计算环境的名称。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`InstanceTypes`（**必需**，`[String]`）**  
实例类型的 AWS Batch 计算环境数组。所有实例类型都必须使用 `x86_64` 架构。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`MinvCpus`（**可选**，`Integer`）**  
 AWS Batch 计算环境可以使用的最小数量。 VCPUs   
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

**`DesiredVcpus`（**可选**，`Integer`）**  
 AWS Batch 计算环境 VCPUs 中所需的数量。 AWS Batch `MaxvCpus`根据任务队列中的需求在`MinvCpus`和之间调整此值。  
[更新策略：在更新期间不分析此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-ignored-v3)

**`MaxvCpus`（**可选**，`Integer`）**  
 AWS Batch 计算环境的最大数量。 VCPUs 不能将此值设置为低于 `DesiredVcpus`。  
[更新策略：更新期间不能减小此设置。](using-pcluster-update-cluster-v3.md#update-policy-no-decrease-v3)

**`SpotBidPercentage`（**可选**，`Float`）**  
在启动实例之前，与该实例类型的按需价格相比，Amazon EC2 竞价型实例价格可以达到的最大百分比。默认值为 `100` (100%)。支持的范围是 `1`-`100`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

## `SlurmQueues`
<a name="Scheduling-v3-SlurmQueues"></a>

**（可选）**Slurm 队列的设置。如果 [`Scheduler`](#yaml-Scheduling-Scheduler) 设置为 `slurm`，则此部分是必需的。

```
SlurmQueues:
  - Name: string
    ComputeSettings:
      LocalStorage:
        RootVolume:
          Size: integer
          Encrypted: boolean
          VolumeType: string
          Iops: integer
          Throughput: integer
        EphemeralVolume:
          MountDir: string
    CapacityReservationTarget:
      CapacityReservationId: string
      CapacityReservationResourceGroupArn: string
    CapacityType: string
    AllocationStrategy: string
    JobExclusiveAllocation: boolean
    CustomSlurmSettings: dict
    Tags:
      - Key: string
        Value: string
    HealthChecks:
      Gpu:
        Enabled: boolean
    Networking:
      SubnetIds:
        - string
      AssignPublicIp: boolean
      SecurityGroups:
        - string
      AdditionalSecurityGroups:
        - string
      PlacementGroup:
        Enabled: boolean
        Id: string
        Name: string
      Proxy:
        HttpProxyAddress: string
    ComputeResources:
      - Name: string
        InstanceType: string
        Instances:
          - InstanceType: string        
        MinCount: integer
        MaxCount: integer
        DynamicNodePriority: integer
        StaticNodePriority: integer
        SpotPrice: float
        DisableSimultaneousMultithreading: boolean
        SchedulableMemory: integer
        HealthChecks:
          Gpu:
            Enabled: boolean
        Efa:
          Enabled: boolean
          GdrSupport: boolean    
        CapacityReservationTarget:
          CapacityReservationId: string
          CapacityReservationResourceGroupArn: string     
        Networking:   
          PlacementGroup:
            Enabled: boolean
            Name: string
        CustomSlurmSettings: dict
        Tags:
          - Key: string
            Value: string
        LaunchTemplateOverrides:
          LaunchTemplateId: string
          Version: string
    CustomActions:
      OnNodeStart:
        Sequence:
          - Script: string
            Args:
              - string
        Script: string
        Args:
          - string
      OnNodeConfigured:
        Sequence:
          - Script: string
            Args:
              - string        
        Script: string
        Args:
          - string
    Iam:
      InstanceProfile: string
      InstanceRole: string
      S3Access:
        - BucketName: string
          EnableWriteAccess: boolean
          KeyName: string
      AdditionalIamPolicies:
        - Policy: string
    Image:
      CustomAmi: string
```

[更新策略：对于此列表值设置，可以在更新期间添加新值，或者在删除现有值时必须停止计算实例集。](using-pcluster-update-cluster-v3.md#update-policy-list-values-v3)

### `SlurmQueues` 属性
<a name="Scheduling-v3-SlurmQueues.properties"></a>

**`Name`（**必需**，`String`）**  
Slurm 队列的名称。  
在更新期间，集群大小可能会更改。有关更多信息，请参阅[集群容量大小和更新](slurm-workload-manager-v3.md)
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

**`CapacityReservationTarget`**  
`CapacityReservationTarget`已在 3.3.0 AWS ParallelCluster 版本中添加。

```
CapacityReservationTarget:
   CapacityReservationId: string
   CapacityReservationResourceGroupArn: string
```
指定队列计算资源的按需容量预留。    
**`CapacityReservationId`（**可选**，`String`）**  
要用于队列计算资源的现有容量预留的 ID。ID 可以指的是 [ODCR](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) 或[适用于 ML 的容量块](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html)。  
预留使用的平台必须与实例使用的平台相同。例如，如果您的实例在 `rhel8` 上运行，则您的容量预留必须在 Red Hat Enterprise Linux 平台上运行。有关更多信息，请参阅 *Amazon EC2 用户指南（适用于 Linux 实例）*中的[支持的平台](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html#capacity-reservations-platforms)。  
如果在集群配置中包含 [`Instances`](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances)，则必须从配置中排除此队列级别 `CapacityReservationId` 设置。
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`CapacityReservationResourceGroupArn`（**可选**，`String`）**  
用作队列计算资源的服务相关容量预留组的资源组的 Amazon 资源名称 (ARN)。 AWS ParallelCluster 根据以下条件确定并使用资源组中最适当的容量预留。  
+ 如果在 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)/[`Networking`](#yaml-Scheduling-SlurmQueues-ComputeResources-Networking)或 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)//中启用 [`Networking`](#yaml-Scheduling-SlurmQueues-ComputeResources-Networking)，`PlacementGroup`则 AWS ParallelCluster 选择以实例类型为目标的资源组，如果计算资源存在，则`PlacementGroup`为计算资源选择资源组。[`ComputeResources`](#Scheduling-v3-SlurmQueues-ComputeResources)

  `PlacementGroup` 必须以 [`ComputeResources`](#Scheduling-v3-SlurmQueues-ComputeResources) 中定义的实例类型之一为目标。
+ 如果`PlacementGroup`未在 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)/[`Networking`](#yaml-Scheduling-SlurmQueues-ComputeResources-Networking)或 [`SlurmQueues`[`ComputeResources`](#Scheduling-v3-SlurmQueues-ComputeResources)](#Scheduling-v3-SlurmQueues)/中启用 [`Networking`](#yaml-Scheduling-SlurmQueues-ComputeResources-Networking)，则 AWS ParallelCluster 选择仅针对计算资源的实例类型的资源组（如果存在计算资源）。
在队列的所有计算资源和可用区中，资源组必须为可用区中的每种实例类型保留至少一个 ODCR。有关更多信息，请参阅 [使用按需容量预留（ODCR）启动实例](launch-instances-odcr-v3.md)。  
有关多子网配置要求的更多信息，请参阅 [`Networking`](#Scheduling-v3-SlurmQueues-Networking)/[`SubnetIds`](#yaml-Scheduling-SlurmQueues-Networking-SubnetIds)。  
3.4.0 AWS ParallelCluster 版本中添加了多个可用区。
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

**`CapacityType`（**可选**，`String`）**  
Slurm 队列使用的计算资源的类型。支持的值为 `ONDEMAND`、`SPOT` 或 `CAPACITY_BLOCK`。默认值为 `ONDEMAND`。  
如果将 `CapacityType` 设置为 `SPOT`，则您的账户必须具有 `AWSServiceRoleForEC2Spot` 服务相关角色。您可以使用以下 AWS CLI 命令来创建此角色。  

```
$ aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
```
有关更多信息，请参阅《Amazon EC2 用户指南（适用于 Linux 实例）》**中的[竞价型实例请求的服务相关角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#service-linked-roles-spot-instance-requests)。
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

**`AllocationStrategy`（**可选**，`String`）**  
为 [`Instances`](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances) 中定义的所有计算资源指定分配策略。  
有效值：`lowest-price` \$1 `capacity-optimized` \$1 `price-capacity-optimized` \$1 `prioritized` \$1 `capacity-optimized-prioritized`       
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/parallelcluster/latest/ug/Scheduling-v3.html)
默认值：`lowest-price`    
**`lowest-price`**  
+ 如果使用 `CapacityType = ONDEMAND`，Amazon EC2 Fleet 将使用价格来确定顺序，并最先启动价格最低的实例。
+ 如果使用 `CapacityType = SPOT`，Amazon EC2 Fleet 将从具有可用容量的最低价格竞价型实例池中启动实例。如果池在满足您的所需容量之前已用完容量，Amazon EC2 队列会通过为您启动实例来满足您的请求。具体而言，Amazon EC2 Fleet 将从具有可用容量的最低价格竞价型实例池中启动实例。Amazon EC2 Fleet 可能会从多个不同的池中启动竞价型实例。
+ 如果设置 `CapacityType = CAPACITY_BLOCK`，则没有分配策略，因此无法配置 `AllocationStrategy` 参数。  
**`capacity-optimized`**  
+ 如果设置 `CapacityType = ONDEMAND`，则 `capacity-optimized` 不可用。
+ 如果设置 `CapacityType = SPOT`，Amazon EC2 Fleet 将从容量最适合所要启动的实例数的竞价型实例池中启动实例。  
**`price-capacity-optimized`**  
+ 如果设置 `CapacityType = ONDEMAND`，则 `capacity-optimized` 不可用。
+ 如果设置 `CapacityType = SPOT`，Amazon EC2 Fleet 将为正在启动的实例数识别具有最高可用容量的池。这意味着我们将从我们认为短期内中断概率最低的池中请求竞价型实例。然后，Amazon EC2 Fleet 从这些池中价格最低的池请求竞价型实例。  
**`prioritized`**  
+ 如果您进行了设置`CapacityType = ONDEMAND`，则在指定多个子网时，Amazon EC2 队列将遵循 AWS ParallelCluster 适用于 LaunchTemplate 替代的优先顺序。 AWS ParallelCluster `priority`从目标子网的位置派生替代项，其中第一个子网的优先级最高。`SlurmQueues/Networking/SubnetIds`优先级按 AWS ParallelCluster 降序排列，第一个 SubnetId 优先级最高`SlurmQueues/Networking/SubnetIds`，最后一个 subnetId 的优先级最低。
+ 如果设置 `CapacityType = SPOT`，则 `prioritized` 不可用。  
**`capacity-optimized-prioritized`**  
+ 如果设置 `CapacityType = ONDEMAND`，则 `capacity-optimized-prioritized` 不可用。
+ 如果您设置`CapacityType = SPOT`，Amazon EC2 队列会先优化容量，然后尽力应用 AWS ParallelCluster 分配给替代项的优先顺序。 LaunchTemplate 优先级按 AWS ParallelCluster 降序排列，第一个 SubnetId 优先级最高`SlurmQueues/Networking/SubnetIds`，最后一个 subnetId 的优先级最低。所有以相同子网为目标的替代项都将获得相同的优先级值。
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
从 AWS ParallelCluster 版本 3.3.0 开始支持 `AllocationStrategy`。  
**3.14.0 中的新增功能**：`prioritized`（用于点播）和`capacity-optimized-prioritized`（适用于竞价版）。

**`JobExclusiveAllocation`（**可选**，`String`）**  
如果设置为 `true`，则 Slurm 分区 `OverSubscribe` 标志设置为 `EXCLUSIVE`。当 `OverSubscribe`=`EXCLUSIVE` 时，分区中的作业将对分配的所有节点具有独占访问权限。有关更多信息，请参阅 Slurm 文档中的 [EXCLUSIVE](https://slurm.schedmd.com/slurm.conf.html#OPT_EXCLUSIVE)。  
有效值：`true` \$1 `false`  
默认值：`false`  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
从 AWS ParallelCluster 版本 3.7.0 开始支持 `JobExclusiveAllocation`。

**`CustomSlurmSettings`（**可选**，`Dict`）**  
定义自定义 Slurm 分区（队列）配置设置。  
指定应用于队列（分区）的自定义 Slurm 配置参数键值对的字典。  
每个单独的键值对（例如 `Param1: Value1`）都以 `Param1=Value1` 格式单独添加到 Slurm 分区配置行的末尾。  
您只能指定未在 `CustomSlurmSettings` 中列入拒绝列表的 Slurm 配置参数。有关列入拒绝列表的 Slurm 配置参数的信息，请参阅 [被拒登名单 Slurm 的配置参数 `CustomSlurmSettings`](slurm-configuration-settings-v3.md#slurm-configuration-denylists-v3)。  
AWS ParallelCluster 仅检查参数是否在拒绝列表中。 AWS ParallelCluster 不会验证您的自定义Slurm配置参数语法或语义。您有责任验证您的自定义Slurm配置参数。无效的自定义 Slurm 配置参数可能会导致 Slurm 进程守护程序失败，从而导致集群创建和更新失败。  
有关如何使用指定自定义Slurm配置参数的更多信息 AWS ParallelCluster，请参阅[Slurm 配置自定义](slurm-configuration-settings-v3.md)。  
有关 Slurm 配置参数的更多信息，请参阅 Slurm 文档中的 [slurm.conf](https://slurm.schedmd.com/slurm.conf.html)。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
从 AWS ParallelCluster 版本 3.6.0 开始支持 `CustomSlurmSettings`。

**`Tags`（**可选**，[字符串]）**  
标签键值对的列表。[`ComputeResource`](#yaml-Scheduling-SlurmQueues-ComputeResources-Tags) 标签覆盖 [`Tags` 部分](Tags-v3.md)或 `SlurmQueues`/`Tags` 中指定的重复标签。    
**`Key`（**可选**，`String`）**  
标签键。  
**`Value`（**可选**，`String`）**  
标签值。
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

**`HealthChecks`（**可选**）**  
指定队列中所有计算资源上的计算节点运行状况检查。    
`Gpu`（**可选**）  
指定队列中所有计算资源上的 GPU 运行状况检查。  
AWS ParallelCluster 在使用 `alinux2` ARM 操作系统的节点`Gpu`中不支持`HealthChecks`/。这些平台不支持 [NVIDIA 数据中心 GPU 管理器 (DCGM)](https://docs.nvidia.com/datacenter/dcgm/latest/user-guide/getting-started.html#supported-linux-distributions)。  
不建议在使用 GPU 内存总大小高于 327680 MiB 的实例类型时启用 GPU 运行状况检查。  
`Enabled`（**可选**，`Boolean`）  
是否 AWS ParallelCluster 对计算节点执行 GPU 运行状况检查。默认值为 `false`。

**`Gpu` 运行状况检查行为**
+ 如果 `Gpu`/`Enabled` 设置为 `true`，则 AWS ParallelCluster 对队列中的计算资源执行 GPU 运行状况检查。
+ `Gpu` 运行状况检查会对计算资源执行 GPU 运行状况检查，以防止在 GPU 降级的节点上提交作业。
+ 如果某个计算节点未通过 `Gpu` 运行状况检查，则该计算节点的状态将更改为 `DRAIN`。新作业不会在此节点上启动。现有作业将运行至完成。所有正在运行的作业完成后，如果该计算节点是动态节点，则会终止；如果是静态节点，则会被替换。
+ `Gpu`运行状况检查的持续时间取决于所选实例类型、实例 GPUs 中的数量、GPU 内存总量和`Gpu`运行状况检查目标的数量（等同于作业 GPU 目标的数量）。例如，在 p4d.24xlarge 上，典型的持续时间为 3 分钟。
+ 如果 `Gpu` 运行状况检查在不受支持的实例上运行，它将退出，作业将在计算节点上运行。例如，如果一个实例没有 GPU，或者一个实例有 GPU，但不是 NVIDIA GPU，则运行状况检查将会退出，作业将在计算节点上运行。仅支持 NVIDIA GPUs 。
+ `Gpu` 运行状况检查使用 `dcgmi` 工具对节点执行运行状况检查，并采取以下步骤：

  当在节点中开始 `Gpu` 运行状况检查时：

  1. 它会检测 `nvidia-dcgm` 和 `nvidia-fabricmanager` 服务是否正在运行。

  1. 如果这些服务未运行，则 `Gpu` 运行状况检查将会启动这些服务。

  1. 它会检测是否启用了持久性模式。

  1. 如果未启用持久性模式，则 `Gpu` 运行状况检查将会启用该模式。

  在运行状况检查结束时，`Gpu` 运行状况检查会将这些服务和资源还原到其初始状态。
+ 如果任务分配给一组特定的节点 GPUs，则运行`Gpu`状况检查仅在该特定节点上运行。否则，运行`Gpu`状况检查将在节点 GPUs 中的所有节点上运行。
+ 如果计算节点同时收到 2 个或更多个 `Gpu` 运行状况检查请求，则仅运行第一个运行状况检查，并跳过其他运行状况检查。目标节点的运行状况检查也是如此 GPUs。您可以查看日志文件以获取有关此情况的更多信息。
+ `/var/log/parallelcluster/slurm_health_check.log` 文件中提供了特定计算节点的运行状况检查日志。该文件可在 Amazon CloudWatch 的集群 CloudWatch 日志组中找到，您可以在其中找到：
  + 有关 `Gpu` 运行状况检查运行的操作的详细信息，包括启用和禁用服务以及持久性模式。
  + GPU 标识符、序列号和 UUID。
  + 运行状况检查输出。
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
`HealthChecks`从 3.6.0 AWS ParallelCluster 版开始受支持。

#### `Networking`
<a name="Scheduling-v3-SlurmQueues-Networking"></a>

**（必需）**定义 Slurm 队列的网络配置。

```
Networking:
  SubnetIds:
    - string
  AssignPublicIp: boolean
  SecurityGroups:
    - string
  AdditionalSecurityGroups:
    - string
  PlacementGroup:
    Enabled: boolean
    Id: string
    Name: string
  Proxy:
    HttpProxyAddress: string
```

[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

##### `Networking` 属性
<a name="Scheduling-v3-SlurmQueues-Networking.properties"></a>

**`SubnetIds`（**必需**，`[String]`）**  
您在 IDs 其中配置Slurm队列的现有子网。  
如果您在 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)/[`ComputeResources`](#Scheduling-v3-SlurmQueues-ComputeResources)/[`InstanceType`](#yaml-Scheduling-SlurmQueues-ComputeResources-InstanceType) 中配置实例类型，则只能定义一个子网。  
如果您在 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)/[`ComputeResources`](#Scheduling-v3-SlurmQueues-ComputeResources)/[`Instances`](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances) 中配置实例类型，则可以定义单个子网或多个子网。  
如果您使用多个子网，则为队列定义的所有子网都必须位于同一 VPC 中，每个子网位于单独的可用区 (AZ) 中。  
例如，假设您为队列定义了 subnet-1 和 subnet-2。  
则 `subnet-1` 和 `subnet-2` 不能都在 AZ-1 中。  
`subnet-1` 可以在 AZ-1 中，`subnet-2` 可以在 AZ-2 中。  
如果您只配置一种实例类型并想要使用多个子网，请在 `Instances` 而不是 `InstanceType` 中定义您的实例类型。  
例如，定义 `ComputeResources`/`Instances`/`InstanceType`=`instance.type` 而不是 `ComputeResources`/`InstanceType`=`instance.type`。  
不支持在不同的可用区之间使用 Elastic Fabric Adapter (EFA)。
使用多个可用区可能会导致存储网络延迟增加，并提高可用区间的数据传输成本。例如，当实例访问位于不同 AZ 的文件存储时，可能会发生这种情况。有关更多信息，请参阅[同一 AWS 区域内的数据传输](https://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer_within_the_same_AWS_Region)。  

**集群更新为从使用单个子网改为使用多个子网：**
+ 假设集群的子网定义是用单个子网和一个 Lustre AWS ParallelCluster 托管 FSx 文件系统定义的。则您无法使用更新的子网 ID 定义直接更新此集群。要更新该集群，必须先将托管文件系统更改为外部文件系统。有关更多信息，请参阅 [将 AWS ParallelCluster 托管存储转换为外部存储](shared-storage-conversion-v3.md)。
+ 假设集群的子网定义是用单个子网和一个外部 Amazon EFS 文件系统定义的，前提是定义为要添加的多个子网的所有子网都不存在 EFS 挂载目标。 AZs 则您无法使用更新的子网 ID 定义直接更新此集群。要更新集群或创建集群，必须先为已定义的多个子网的所有创建所有挂载目标。 AZs 

**可用区和集群容量预留定义于 [CapacityReservationResourceGroupArn](#yaml-Scheduling-SlurmQueues-CapacityReservationResourceGroupArn)：**
+ 如果定义的容量预留资源组所涵盖的实例类型和可用区集合与为队列定义的实例类型和可用区集合之间没有重叠，则无法创建集群。
+ 如果定义的容量预留资源组所涵盖的实例类型和可用区集与为队列定义的一组实例类型和可用区之间存在部分重叠，则可以创建集群。 AWS ParallelCluster 会发送一条警告消息，说明这种情况存在部分重叠。
+ 有关更多信息，请参阅 [使用按需容量预留（ODCR）启动实例](launch-instances-odcr-v3.md)。
3.4.0 AWS ParallelCluster 版本中添加了多个可用区。
此警告适用于 3.3.1 之前的所有 3.x.y AWS ParallelCluster 版本。 AWS ParallelCluster 如果更改此参数，版本 3.3.1 不会受到影响。  
对于 3.3.1 之前的 AWS ParallelCluster 3 个版本：  
如果您更改此参数并更新群集，则会创建一个新的 Lustre 托管 FSx 文件系统，并在不保留现有数据的情况下删除现有 FSx 的 Lustre 托管文件系统。这会导致数据丢失。在继续操作之前，如果要保留数据，请务必备份现有 FSx Lustre 文件系统的数据。有关更多信息，请参阅 fo [r *Lustre 用户指南*中的使用备份](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html)。FSx 
如果添加了新子网值，[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
如果删除了子网值，[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

**`AssignPublicIp`（**可选**，`String`）**  
为 Slurm 队列中的节点创建或分配公有 IP 地址。支持的值为 `true` 和 `false`。您指定的子网决定默认值。具有公共 IPs 默认值的子网，用于分配公有 IP 地址。  
如果您定义了p4d或hpc6id实例类型，或者其他具有多个网络接口或网络接口卡的实例类型，则必须将 [`HeadNode`](HeadNode-v3.md)/[`Networking`](HeadNode-v3.md#HeadNode-v3-Networking)/设置为[`ElasticIp`](HeadNode-v3.md#yaml-HeadNode-Networking-ElasticIp)`true`以提供公共访问权限。 AWS public IPs 只能分配给使用单个网络接口启动的实例。对于这种情况，我们建议您使用 [NAT 网关](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)为集群计算节点提供公有访问权限。在这种情况下，请将 `AssignPublicIp` 设置为 `false`。有关 IP 地址的更多信息，请参阅《适用于 *Linux 实例的 Amazon EC2 用户指南》中的 “在实例*[启动期间分配公有 IPv4 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#public-ip-addresses)”。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

**`SecurityGroups`（**可选**，`[String]`）**  
用于Slurm 队列的安全组的列表。如果未指定安全组，则会为您 AWS ParallelCluster 创建安全组。  
验证您的[SharedStorage](SharedStorage-v3.md)系统是否正确配置了安全组。  
此警告适用于所有 3. *x*。 *y* AWS ParallelCluster 3.3.0 之前的版本。 AWS ParallelCluster 如果更改此参数，版本 3.3.0 不会受到影响。  
对于 3.3.0 之前的 AWS ParallelCluster 3 个版本：  
如果您更改此参数并更新群集，则会创建一个新的 Lustre 托管 FSx 文件系统，并在不保留现有数据的情况下删除现有 FSx 的 Lustre 托管文件系统。这会导致数据丢失。如果要保留数据，请务必备份现有 F FSx or Lustre 文件系统的数据。有关更多信息，请参阅 fo [r *Lustre 用户指南*中的使用备份](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html)。FSx 
如果您为计算实例启用 [Efa](#yaml-Scheduling-SlurmQueues-ComputeResources-Efa)，请确保启用了 EFA 的实例是允许进出自身的所有入站和出站流量的安全组的成员。
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

**`AdditionalSecurityGroups`（**可选**，`[String]`）**  
用于Slurm 队列的其他安全组的列表。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

**`PlacementGroup`（**可选**）**  
指定 Slurm 队列的置放群组设置。  

```
PlacementGroup:
  Enabled: boolean
  Id: string
  Name: string
```
[更新策略：必须停止所有计算节点才能删除托管置放群组。必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-remove-placement-group-v3)    
**`Enabled`（**可选**，`Boolean`）**  
指示是否对 Slurm 队列使用置放群组。默认值为 `false`。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Id`（**可选**，`String`）**  
Slurm队列使用的现有集群置放群组的置放群组 ID。请务必提供置放群组 *ID* *而不是名称*。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Name`（**可选**，`String`）**  
Slurm 队列使用的现有集群置放群组的置放群组名称。确保提供置放群组*名称* 而*不是 ID*。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)
+ 如果 `PlacementGroup`/`Enabled` 设置为 `true` 而未定义 `Name` 或 `Id`，则会为每个计算资源分配自己的托管置放群组，除非将 [`ComputeResources`](#Scheduling-v3-SlurmQueues-ComputeResources)/[`Networking`](#yaml-Scheduling-SlurmQueues-ComputeResources-Networking)/[`PlacementGroup`](#yaml-Scheduling-SlurmQueues-ComputeResources-Networking-PlacementGroup) 定义为覆盖此设置。
+ 从 AWS ParallelCluster 版本 3.3.0 开始，添加[`Name`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup-Name)了 [`SlurmQueues`[`Networking`[`PlacementGroup`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup)](#Scheduling-v3-SlurmQueues-Networking)](#Scheduling-v3-SlurmQueues)///作为/ [`SlurmQueues`[`Networking`[`PlacementGroup`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup)](#Scheduling-v3-SlurmQueues-Networking)](#Scheduling-v3-SlurmQueues)/[`Id`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup-Id)的首选替代方案。

  [`PlacementGroup`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup)/[`Id`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup-Id) 和 [`PlacementGroup`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup)/[`Name`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup-Name) 是等效的。您可以使用任何一个。

   如果同时包含 [`PlacementGroup`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup)/[`Id`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup-Id)和 [`PlacementGroup`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup)/[`Name`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup-Name)， AWS ParallelCluster 则失败。您只能选择其中一项。

  您无需更新集群即可使用 [`PlacementGroup`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup)/[`Name`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup-Name)。
+ 使用容量块预留时，不应设置置放群组约束，因为即使容量预留还有剩余容量，也可能由于预留之外的放置限制而出现容量不足错误。

**`Proxy`（**可选**）**  
指定 Slurm 队列的代理设置。  

```
Proxy:
  HttpProxyAddress: string
```
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)    
**`HttpProxyAddress`（**可选**，`String`）**  
为 Slurm 队列定义 HTTP 或 HTTPS 代理服务器。通常为 `https://x.x.x.x:8080`。  
没有默认值。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

#### `Image`
<a name="Scheduling-v3-SlurmQueues-Image"></a>

**（可选）**指定要用于 Slurm 队列的映像。要对所有节点使用相同的 AMI，请使用[`Image`部分](Image-v3.md)中的[CustomAmi](Image-v3.md#yaml-Image-CustomAmi)设置。

```
Image:
  CustomAmi: string
```

[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

##### `Image` 属性
<a name="Scheduling-v3-SlurmQueues-Image.properties"></a>

**`CustomAmi`（**可选**，`String`）**  
用于Slurm队列的 AMI，而不是默认的 AMI AMIs。您可以使用 C pcluster LI 命令查看默认值列表 AMIs。  
AMI 必须基于头节点所使用的相同操作系统。

```
pcluster list-official-images
```
如果自定义 AMI 需要其他权限才能启动，则必须将这些权限添加到头节点策略中。  
例如，如果自定义 AMI 具有与之关联的加密快照，则头节点策略中需要以下其他策略：    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey",
                "kms:ReEncrypt*",
                "kms:CreateGrant",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/<AWS_KMS_KEY_ID>"
            ]
        }
    ]
}
```
要排查自定义 AMI 验证警告，请参阅[排查自定义 AMI 问题](troubleshooting-v3-custom-amis.md)。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

#### `ComputeResources`
<a name="Scheduling-v3-SlurmQueues-ComputeResources"></a>

**（必需）**定义 Slurm 队列的 `ComputeResources` 配置。

**注意**  
在更新期间，集群大小可能会更改。有关更多信息，请参阅[集群容量大小和更新](slurm-workload-manager-v3.md)。
只有当新的计算资源部署在属于创建集群时存在的 CIDR 块的子网中时，才能将其添加到集群。

```
ComputeResources:
  - Name: string
    InstanceType: string
    Instances:
      - InstanceType: string    
    MinCount: integer
    MaxCount: integer
    DynamicNodePriority: integer
    StaticNodePriority: integer
    SpotPrice: float
    DisableSimultaneousMultithreading: boolean
    SchedulableMemory: integer
    HealthChecks:
      Gpu:    
        Enabled: boolean
    Efa:
      Enabled: boolean
      GdrSupport: boolean
    CapacityReservationTarget:
      CapacityReservationId: string
      CapacityReservationResourceGroupArn: string
    Networking:   
      PlacementGroup:
        Enabled: boolean
        Name: string
    CustomSlurmSettings: dict   
    Tags:
      - Key: string
        Value: string
    LaunchTemplateOverrides:
      LaunchTemplateId: string
      Version: string
```

[更新策略：对于此列表值设置，可以在更新期间添加新值，或者在删除现有值时必须停止计算实例集。](using-pcluster-update-cluster-v3.md#update-policy-list-values-v3)

##### `ComputeResources` 属性
<a name="Scheduling-v3-SlurmQueues-ComputeResources.properties"></a>

**`Name`（**必需**，`String`）**  
Slurm 队列计算环境的名称。名称最多可以包含 25 个字符。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

**`InstanceType`（**必需**，`String`）**  
此 Slurm 计算资源中使用的实例类型。集群中的所有实例类型都必须使用相同的处理器架构。实例可以使用 `x86_64` 或 `arm64` 架构。  
集群配置必须定义[InstanceType](#yaml-Scheduling-SlurmQueues-ComputeResources-InstanceType)或[实例](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances)。如果两者都被定义， AWS ParallelCluster 则失败。  
定义 `InstanceType` 时，不能定义多个子网。如果您只配置一种实例类型并想要使用多个子网，请在 `Instances` 而不是 `InstanceType` 中定义您的实例类型。有关更多信息，请参阅 [`Networking`](#Scheduling-v3-SlurmQueues-Networking)/[`SubnetIds`](#yaml-Scheduling-SlurmQueues-Networking-SubnetIds)。  
如果您定义了p4d或hpc6id实例类型，或者其他具有多个网络接口或网络接口卡的实例类型，则必须按照中所述在私有子网中启动计算实例[AWS ParallelCluster 使用两个子网](network-configuration-v3-two-subnets.md)。 AWS public IPs 只能分配给使用单个网络接口启动的实例。有关更多信息，请参阅《适用于 *Linux 实例的 Amazon EC2 用户指南》中的 “在实例*[启动期间分配公有 IPv4 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#public-ip-addresses)”。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`Instances`（**必需**）**  
指定计算资源的实例类型列表。要为实例类型列表指定分配策略，请参阅 [`AllocationStrategy`](#yaml-Scheduling-SlurmQueues-AllocationStrategy)。  
集群配置必须定义 [`InstanceType`](#yaml-Scheduling-SlurmQueues-ComputeResources-InstanceType) 或 [`Instances`](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances)。如果同时定义了两者，则 AWS ParallelCluster 将会失败。  
有关更多信息，请参阅 [Slurm 的多实例类型分配](slurm-multiple-instance-allocation-v3.md)。  

```
`Instances`:
   - `InstanceType`: string
```
[从 3.7.0 AWS ParallelCluster 版开始，如果您在实例中配置了多个实例类型，则`EnableMemoryBasedScheduling`可以启用。](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances)  
适用于 3.2.0 到 3.6 AWS ParallelCluster 版本。 *x*[，如果您在实例中配置了多个实例类型，则`EnableMemoryBasedScheduling`无法启用。](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances)
[更新策略：对于此列表值设置，可以在更新期间添加新值，或者在删除现有值时必须停止计算实例集。](using-pcluster-update-cluster-v3.md#update-policy-list-values-v3)    
**`InstanceType`（**必需**，`String`）**  
要在此 Slurm 计算资源中使用的实例类型。集群中的所有实例类型都必须使用相同的处理器架构，即 `x86_64` 或 `arm64`。  
[`Instances`](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances) 中列出的实例类型必须：  
+ 相同数量的 vCPUs，或者，如果设置[`DisableSimultaneousMultithreading`](#yaml-Scheduling-SlurmQueues-ComputeResources-DisableSimultaneousMultithreading)为`true`，则为相同数量的内核。
+ 具有相同制造商的相同数量的加速器。
+ 支持 EFA，如果 [`Efa`](#yaml-Scheduling-SlurmQueues-ComputeResources-Efa)/[`Enabled`](#yaml-Scheduling-SlurmQueues-ComputeResources-Efa-Enabled) 设置为 `true`。
[`Instances`](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances) 中列出的实例类型可以具有：  
+ 不同的内存量。

  在这种情况下，应将最小内存设置为可消耗的 Slurm 资源。
**注意**  
[从 3.7.0 AWS ParallelCluster 版开始，如果您在实例中配置了多个实例类型，则`EnableMemoryBasedScheduling`可以启用。](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances)  
适用于 3.2.0 到 3.6 AWS ParallelCluster 版本。 *x*[，如果您在实例中配置了多个实例类型，则`EnableMemoryBasedScheduling`无法启用。](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances)
+ 不同的网卡。

  在这种情况下，为计算资源配置的网络接口数量由网卡数量最少的实例类型定义。
+ 不同的网络带宽。
+ 不同的实例存储大小。
如果您定义了p4d或hpc6id实例类型，或者其他具有多个网络接口或网络接口卡的实例类型，则必须按照中所述在私有子网中启动计算实例[AWS ParallelCluster 使用两个子网](network-configuration-v3-two-subnets.md)。 AWS public IPs 只能分配给使用单个网络接口启动的实例。有关更多信息，请参阅《适用于 *Linux 实例的 Amazon EC2 用户指南》中的 “在实例*[启动期间分配公有 IPv4 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#public-ip-addresses)”。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)
`Instances`从 3.3.0 AWS ParallelCluster 版开始受支持。

**`MinCount`（**可选**，`Integer`）**  
Slurm 计算资源使用的最小实例数量。默认值是 0。  
在更新期间，集群大小可能会更改。有关更多信息，请参阅[集群容量大小和更新](slurm-workload-manager-v3.md)
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`MaxCount`（**可选**，`Integer`）**  
Slurm 计算资源使用的最大实例数量。默认值为 10。  
使用时`CapacityType = CAPACITY_BLOCK`，`MaxCount`必须等于`MinCount`和大于 0，因为容量块预留的所有实例部分都作为静态节点进行管理。  
在创建集群时，头节点会等待所有静态节点准备就绪，然后再发出集群创建成功的信号。但是，当您使用时`CapacityType = CAPACITY_BLOCK`，此检查将不考虑与容量块关联的计算资源的节点部分。即使不是所有配置的容量块都处于活动状态，也会创建集群。  
在更新期间，集群大小可能会更改。有关更多信息，请参阅[集群容量大小和更新](slurm-workload-manager-v3.md)
 

**`DynamicNodePriority`（**可选**，`Integer`）**  
队列计算资源中动态节点的优先级。该优先级映射到计算资源动态节点的 Slurm 节点 [https://slurm.schedmd.com/slurm.conf.html#OPT_Weight](https://slurm.schedmd.com/slurm.conf.html#OPT_Weight) 配置参数。默认值为 `1000`。  
Slurm 将 `Weight` 值最低的节点设置为最高优先级。  
在 Slurm 分区（队列）中使用许多不同的 `Weight` 值可能会减慢队列中作业调度的速度。  
在 AWS ParallelCluster 3.7.0 之前的版本中，静态节点和动态节点的默认权重相同。`1`在这种情况下，由于静态和动态节点的命名架构，Slurm 可能会将空闲的动态节点的优先级设置为高于空闲的静态节点。如果所有其他条件相同，Slurm 会按名称的字母顺序调度节点。
`DynamicNodePriority`已在 3.7.0 AWS ParallelCluster 版本中添加。
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

**`StaticNodePriority`（**可选**，`Integer`）**  
队列计算资源中静态节点的优先级。该优先级映射到计算资源静态节点的 Slurm 节点 [https://slurm.schedmd.com/slurm.conf.html#OPT_Weight](https://slurm.schedmd.com/slurm.conf.html#OPT_Weight) 配置参数。默认值为 `1`。  
Slurm 将 `Weight` 值最低的节点设置为最高优先级。  
在 Slurm 分区（队列）中使用许多不同的 `Weight` 值可能会减慢队列中作业调度的速度。
`StaticNodePriority`已在 3.7.0 AWS ParallelCluster 版本中添加。
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

**`SpotPrice`（**可选**，`Float`）**  
在启动任何实例之前为 Amazon EC2 竞价型实例支付的最高价格。默认值为按需价格。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

**`DisableSimultaneousMultithreading`（**可选**，`Boolean`）**  
如果为 `true`，则禁用 Slurm 队列中节点上的多线程。默认值为 `false`。  
并非所有实例类型都可禁用多线程。有关支持禁用多线程的实例类型列表，请参阅《Amazon EC2 用户指南》**中的[每种实例类型的 CPU 内核以及每个 CPU 内核的线程](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values)。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`SchedulableMemory`（**可选**，`Integer`）**  
在 Slurm 参数 `RealMemory` 中为计算资源的计算节点配置的内存量，以 MiB 为单位。如果启用了 [`SlurmSettings`](#Scheduling-v3-SlurmSettings)/[`EnableMemoryBasedScheduling`](#yaml-Scheduling-SlurmSettings-EnableMemoryBasedScheduling)，则此值为可供作业使用的节点内存的上限。默认值是 [Amazon EC2 实例类型中列出并由亚马逊 EC2](https://aws.amazon.com/ec2/instance-types) API 返回的内存的 95% [DescribeInstanceTypes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceTypes.html)。确保将以 GiB 为单位给出的值转换为 MiB 单位。  
支持的值：`1-EC2Memory`  
`EC2Memory`是在 [Amazon EC2 实例类型中列出并由亚马逊 EC2 API](https://aws.amazon.com/ec2/instance-types) 返回的内存（以 MiB 为单位）。[DescribeInstanceTypes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceTypes.html)确保将以 GiB 为单位给出的值转换为 MiB 单位。  
当启用了 [`SlurmSettings`](#Scheduling-v3-SlurmSettings)/[`EnableMemoryBasedScheduling`](#yaml-Scheduling-SlurmSettings-EnableMemoryBasedScheduling) 时，此选项最相关。有关更多信息，请参阅 [Slurm 基于内存的调度](slurm-mem-based-scheduling-v3.md)。  
从 AWS ParallelCluster 版本 3.2.0 开始支持 `SchedulableMemory`。  
从版本 3.2.0 开始，默认情况下， AWS ParallelCluster 将Slurm计算节点配置`RealMemory`为 Amazon EC2 API 返回的内存的 95%。`DescribeInstanceTypes`此配置与 `EnableMemoryBasedScheduling` 的值无关。
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

**`HealthChecks`（**可选**）**  
指定计算资源上的运行状况检查。    
`Gpu`（**可选**）  
指定计算资源上的 GPU 运行状况检查。    
`Enabled`（**可选**，`Boolean`）  
是否 AWS ParallelCluster 对队列中的计算资源执行 GPU 运行状况检查。默认值为 `false`。  
AWS ParallelCluster 在使用 `alinux2` ARM 操作系统的节点`Gpu`中不支持`HealthChecks`/。这些平台不支持 [NVIDIA 数据中心 GPU 管理器 (DCGM)](https://docs.nvidia.com/datacenter/dcgm/latest/user-guide/getting-started.html#supported-linux-distributions)。

**`Gpu` 运行状况检查行为**
+ 如果 `Gpu` /设置`Enabled`为`true`，则对计算资源 AWS ParallelCluster 执行 GPU 运行状况检查。
+ `Gpu` 运行状况检查会对计算资源执行运行状况检查，以防止在 GPU 降级的节点上提交作业。
+ 如果某个计算节点未通过 `Gpu` 运行状况检查，则该计算节点的状态将更改为 `DRAIN`。新作业不会在此节点上启动。现有作业将运行至完成。所有正在运行的作业完成后，如果该计算节点是动态节点，则会终止；如果是静态节点，则会被替换。
+ `Gpu`运行状况检查的持续时间取决于所选实例类型、实例 GPUs 中的数量和`Gpu`运行状况检查目标的数量（等同于作业 GPU 目标的数量）。对于具有 8 的实例 GPUs，典型持续时间小于 3 分钟。
+ 如果 `Gpu` 运行状况检查在不受支持的实例上运行，它将退出，作业将在计算节点上运行。例如，如果一个实例没有 GPU，或者一个实例有 GPU，但不是 NVIDIA GPU，则运行状况检查将会退出，作业将在计算节点上运行。仅支持 NVIDIA GPUs 。
+ `Gpu` 运行状况检查使用 `dcgmi` 工具对节点执行运行状况检查，并采取以下步骤：

  当在节点中开始 `Gpu` 运行状况检查时：

  1. 它会检测 `nvidia-dcgm` 和 `nvidia-fabricmanager` 服务是否正在运行。

  1. 如果这些服务未运行，则 `Gpu` 运行状况检查将会启动这些服务。

  1. 它会检测是否启用了持久性模式。

  1. 如果未启用持久性模式，则 `Gpu` 运行状况检查将会启用该模式。

  在运行状况检查结束时，`Gpu` 运行状况检查会将这些服务和资源还原到其初始状态。
+ 如果任务分配给一组特定的节点 GPUs，则运行`Gpu`状况检查仅在该特定节点上运行。否则，运行`Gpu`状况检查将在节点 GPUs 中的所有节点上运行。
+ 如果计算节点同时收到 2 个或更多个 `Gpu` 运行状况检查请求，则仅运行第一个运行状况检查，并跳过其他运行状况检查。针对节点的运行状况检查也是如此 GPUs。您可以查看日志文件以获取有关此情况的更多信息。
+ `/var/log/parallelcluster/slurm_health_check.log` 文件中提供了特定计算节点的运行状况检查日志。此文件可在 Amazon CloudWatch 的集群 CloudWatch 日志组中找到，您可以在其中找到：
  + 有关 `Gpu` 运行状况检查运行的操作的详细信息，包括启用和禁用服务以及持久性模式。
  + GPU 标识符、序列号和 UUID。
  + 运行状况检查输出。
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
`HealthChecks`从 3.6.0 AWS ParallelCluster 版开始受支持。

**`Efa`（**可选**）**  
为 Slurm 队列中的节点指定 Elastic Fabric Adapter (EFA) 设置。  

```
Efa:
  Enabled: boolean
  GdrSupport: boolean
```
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)    
**`Enabled`（**可选**，`Boolean`）**  
指定 Elastic Fabric Adapter (EFA) 已启用。要查看支持 EFA 的 Amazon EC2 实例的列表，请参阅《Amazon EC2 用户指南（适用于 Linux 实例）》**中的[支持的实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types)。有关更多信息，请参阅 [Elastic Fabric Adapter](efa-v3.md)。我们建议您使用集群 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)/[`Networking`](#Scheduling-v3-SlurmQueues-Networking)/[`PlacementGroup`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup) 最大限度地缩短实例之间的延迟。  
默认值为 `false`。  
不支持在不同的可用区之间使用 Elastic Fabric Adapter (EFA)。有关更多信息，请参阅 [SubnetIds](#yaml-Scheduling-SlurmQueues-Networking-SubnetIds)。
如果您在中定义自定义安全组 [SecurityGroups](#yaml-Scheduling-SlurmQueues-Networking-SecurityGroups)，请确保您的启用 EFA 的实例是允许所有入站和出站流量进入自身的安全组的成员。
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`GdrSupport`（**可选**，`Boolean`）**  
**（可选）**从 AWS ParallelCluster 版本 3.0.2 开始，此设置无效。如果计算资源和操作系统的实例类型支持 GPUDirect RDMA（远程直接内存访问）的 Elastic Fabric Adapter (EFA)，则始终启用对 RDMA（远程直接内存访问）Slurm的支持。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

**`CapacityReservationTarget`**  

```
CapacityReservationTarget:
   CapacityReservationId: string
   CapacityReservationResourceGroupArn: string
```
指定要用于计算资源的按需容量预留。    
**`CapacityReservationId`（**可选**，`String`）**  
要用于队列计算资源的现有容量预留的 ID。ID 可以指的是 [ODCR](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) 或[适用于 ML 的容量块](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html)。  
如果在计算资源级别指定此参数 InstanceType是可选的，则将自动从预留中检索该参数。  
**`CapacityReservationResourceGroupArn`（**可选**，`String`）**  
指示用作计算资源的服务相关容量预留组的资源组的 Amazon 资源名称 (ARN)。 AWS ParallelCluster 确定并使用组中最适当的容量预留。对于为计算资源列出的每种实例类型，资源组必须至少有一个 ODCR。有关更多信息，请参阅 [使用按需容量预留（ODCR）启动实例](launch-instances-odcr-v3.md)。  
+ 如果`PlacementGroup`在 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)/[`Networking`](#yaml-Scheduling-SlurmQueues-ComputeResources-Networking)或 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)//中启用 [`Networking`](#yaml-Scheduling-SlurmQueues-ComputeResources-Networking)，则 AWS ParallelCluster 选择以实例类型`PlacementGroup`为目标的资源组和计算资源（如果存在）。[`ComputeResources`](#Scheduling-v3-SlurmQueues-ComputeResources)

  `PlacementGroup` 必须以 [`ComputeResources`](#Scheduling-v3-SlurmQueues-ComputeResources) 中定义的实例类型之一为目标。
+ 如果`PlacementGroup`未在 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)/[`Networking`](#yaml-Scheduling-SlurmQueues-ComputeResources-Networking)或 [`SlurmQueues`[`ComputeResources`](#Scheduling-v3-SlurmQueues-ComputeResources)](#Scheduling-v3-SlurmQueues)/中启用 [`Networking`](#yaml-Scheduling-SlurmQueues-ComputeResources-Networking)，则 AWS ParallelCluster 选择仅针对计算资源的实例类型（如果存在）的资源组。
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
从 AWS ParallelCluster 版本 3.3.0 开始添加了 `CapacityReservationTarget`。

**`Networking`**  

```
Networking:   
  PlacementGroup:
    Enabled: boolean
    Name: string
```
[更新策略：必须停止所有计算节点才能删除托管置放群组。必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-remove-placement-group-v3)    
**`PlacementGroup`（**可选**）**  
指定计算资源的置放群组设置。    
**`Enabled`（**可选**，`Boolean`）**  
指示是否对计算资源使用置放群组。  
+ 如果设置为 `true` 而未定义 `Name`，则无论 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)/[`Networking`](#Scheduling-v3-SlurmQueues-Networking)/[`PlacementGroup`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup) 设置如何，都会为该计算资源分配自己的托管置放群组。
+ 如果设置为 `true` 且定义了 `Name`，则无论 `SlurmQueues`/`Networking`/`PlacementGroup` 设置如何，都将为该计算资源分配命名的置放群组。
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Name`（**可选**，`String`）**  
用于计算资源的现有集群置放群组的置放群组名称。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)
+ 如果 `PlacementGroup`/`Enabled` 和 `Name` 都未设置，则它们各自的值默认为 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)/[`Networking`](#Scheduling-v3-SlurmQueues-Networking)/[`PlacementGroup`](#yaml-Scheduling-SlurmQueues-Networking-PlacementGroup) 设置。
+ 使用容量块预留时，不应设置置放群组约束，因为即使容量预留还有剩余容量，也可能由于预留之外的放置限制而出现容量不足错误。
+ `ComputeResources`/`Networking`/已`PlacementGroup`在 3.3.0 AWS ParallelCluster 版本中添加。

**`CustomSlurmSettings`（**可选**，`Dict`）**  
**（可选）**定义自定义 Slurm 节点（计算资源）配置设置。  
指定应用于 Slurm 节点（计算资源）的自定义 Slurm 配置参数键值对的字典。  
每个单独的键值对（例如 `Param1: Value1`）都以 `Param1=Value1` 格式单独添加到 Slurm 节点配置行的末尾。  
您只能指定未在 `CustomSlurmSettings` 中列入拒绝列表的 Slurm 配置参数。有关列入拒绝列表的 Slurm 配置参数的信息，请参阅 [被拒登名单 Slurm 的配置参数 `CustomSlurmSettings`](slurm-configuration-settings-v3.md#slurm-configuration-denylists-v3)。  
AWS ParallelCluster 仅检查参数是否在拒绝列表中。 AWS ParallelCluster 不会验证您的自定义Slurm配置参数语法或语义。您有责任验证您的自定义Slurm配置参数。无效的自定义 Slurm 配置参数可能会导致 Slurm 进程守护程序失败，从而导致集群创建和更新失败。  
有关如何使用指定自定义Slurm配置参数的更多信息 AWS ParallelCluster，请参阅[Slurm 配置自定义](slurm-configuration-settings-v3.md)。  
有关 Slurm 配置参数的更多信息，请参阅 Slurm 文档中的 [slurm.conf](https://slurm.schedmd.com/slurm.conf.html)。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
从 AWS ParallelCluster 版本 3.6.0 开始支持 `CustomSlurmSettings`。

**`Tags`（**可选**，[字符串]）**  
标签键值对的列表。`ComputeResource` 标签覆盖 [`Tags` 部分](Tags-v3.md)或 [`SlurmQueues`](#yaml-Scheduling-SlurmQueues-Tags)/`Tags` 中指定的重复标签。    
**`Key`（**可选**，`String`）**  
标签键。  
**`Value`（**可选**，`String`）**  
标签值。
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

**`LaunchTemplateOverrides`（**可选**）**  
`LaunchTemplateOverrides`已在 3.15.0 AWS ParallelCluster 版本中添加。
指定启动模板以覆盖为计算资源 AWS ParallelCluster 创建的默认启动模板。启动模板应仅包含网络接口替代项。 AWS ParallelCluster 验证启动模板并防止覆盖其他参数。有关如何使用此替代的更多信息，请参阅[使用启动模板覆盖自定义计算节点网络接口](tutorial-network-customization-v3.md)。  

```
LaunchTemplateOverrides:
  LaunchTemplateId: string
  Version: string
```  
**`LaunchTemplateId`（**必需**，`String`）**  
启动模板的 ID。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Version`（**必需**，`String`）**  
启动模板的版本号。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

#### `ComputeSettings`
<a name="Scheduling-v3-SlurmQueues-ComputeSettings"></a>

**（必需）**定义 Slurm 队列的 `ComputeSettings` 配置。

##### `ComputeSettings` 属性
<a name="Scheduling-v3-SlurmQueues-ComputeSettings.properties"></a>

指定 Slurm 队列中节点的 `ComputeSettings` 的属性。

```
ComputeSettings:
  LocalStorage:
    RootVolume:
      Size: integer
      Encrypted: boolean
      VolumeType: string
      Iops: integer
      Throughput: integer
     EphemeralVolume:
      MountDir: string
```

[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

**`LocalStorage`（**可选**）**  
指定 Slurm 队列中节点的 `LocalStorage` 的属性。  

```
LocalStorage:
  RootVolume:
    Size: integer
    Encrypted: boolean
    VolumeType: string
    Iops: integer
    Throughput: integer
  EphemeralVolume:
    MountDir: string
```
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)    
**`RootVolume`（**可选**）**  
指定 Slurm 队列中节点的根卷的详细信息。  

```
RootVolume:
  Size: integer
  Encrypted: boolean
  VolumeType: string
  Iops: integer
  Throughput: integer
```
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)    
**`Size`（**可选**，`Integer`）**  
指定 Slurm 队列中节点的根卷大小，以吉字节 (GiB) 为单位。默认大小来自 AMI。如果使用不同的大小，则 AMI 必须支持 `growroot`。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Encrypted`（**可选**，`Boolean`）**  
如果为 `true`，则对 Slurm 队列中节点的根卷进行加密。默认值为 `true`。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`VolumeType`（**可选**，`String`）**  
指定 Slurm 队列中节点的 [Amazon EBS 卷类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)。支持的值为 `gp2`、`gp3`、`io1`、`io2`、`sc1`、`st1` 和 `standard`。默认值为 `gp3`。  
有关更多信息，请参阅《Amazon EC2 用户指南》中的 [Amazon EBS 卷类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Iops`（**可选**，`Boolean`）**  
定义 `io1`、`io2` 和 `gp3` 类型卷的 IOPS 数。  
默认值、支持的值以及 `volume_size`/`volume_iops` 比率因 `VolumeType` 和 `Size` 而异。    
**`VolumeType` = `io1`**  
默认值：`Iops` = 100  
支持的值：`Iops` = 100–64000 †  
最大 `volume_iops`/`volume_size` 比率 = 50 IOPS/GiB。5000 IOPS 需要至少 100 GiB 的 `volume_size`。  
**`VolumeType` = `io2`**  
默认值：`Iops` = 100  
支持的值：`Iops` = 100–64000（`io2` Block Express 卷为 256000）†  
最大 `Iops`/`Size` 比率 = 500 IOPS/GiB。5000 IOPS 需要至少 10 GiB 的 `Size`。  
**`VolumeType` = `gp3`**  
默认值：`Iops` = 3000  
支持的值：`Iops` = 3000–16000 †  
最大 `Iops`/`Size` 比率 = 500 IOPS/GiB（对于 IOPS 大于 3000 的卷）。
† 只有[在 Nitro System 上构建的实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)也配置超过 32000 IOPS 时，才能保证最大 IOPS。其他实例最高可具有 32000 IOPS。除非您[修改卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modify-volume.html)，否则较早的 `io1` 卷可能无法实现完全性能。`io2`Block Express 卷在 `R5b` 实例类型上支持高达 256000 的 `volume_iops` 值。有关更多信息，请参阅《Amazon EC2 用户指南》**中的 [`io2`Block Express 卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html#io2-block-express)。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Throughput`（**可选**，`Integer`）**  
定义 `gp3` 卷类型的吞吐量，以 MiB/s 为单位。此设置仅在 `VolumeType` 为 `gp3` 时有效。默认值为 `125`。支持的值：125–1000 MiB/s  
`Throughput` 与 `Iops` 的比率不能超过 0.25。如果最大吞吐量为 1000，则该`Iops`设置 MiB/s 必须至少为 4000。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`EphemeralVolume`（**可选**，`Boolean`）**  
指定临时卷的设置。临时卷是通过将所有实例存储卷合并到 `ext4` 文件系统格式的单个逻辑卷而创建的。默认值为 `/scratch`。如果实例类型没有任何实例存储卷，则不会创建临时卷。有关更多信息，请参阅 *Amazon EC2 用户指南*中的[实例存储卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)。  

```
EphemeralVolume:
  MountDir: string
```
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)    
**`MountDir`（**可选**，`String`）**  
Slurm 队列中每个节点的临时卷的挂载目录。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

#### `CustomActions`
<a name="Scheduling-v3-SlurmQueues-CustomActions"></a>

**（可选）**指定要在 Slurm 队列中的节点上运行的自定义脚本。

```
CustomActions:
  OnNodeStart:
    Sequence:
      - Script: string
        Args:
          - string
    Script: string
    Args:
      - string
  OnNodeConfigured:
    Sequence:
      - Script: string
        Args:
          - string
    Script: string
    Args:
      - string
```

[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

##### `CustomActions` 属性
<a name="Scheduling-v3-SlurmQueues-CustomActions.properties"></a>

**`OnNodeStart`（**可选**，`String`）**  
指定在启动任何节点部署引导操作之前，要在 Slurm 队列中的节点上运行的脚本序列或单个脚本。 AWS ParallelCluster 不支持同一个自定义操作同时包含单个脚本和 `Sequence`。有关更多信息，请参阅[自定义引导操作](custom-bootstrap-actions-v3.md)。    
**`Sequence`（**可选**）**  
要运行的脚本的列表。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)    
**`Script`（**必需**，`String`）**  
要使用的文件。文件路径可以 `https://` 或 `s3://` 开头。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Args`（**可选**，`[String]`）**  
要传递到脚本的参数的列表。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Script`（**必需**，`String`）**  
用于单个脚本的文件。文件路径可以 `https://` 或 `s3://` 开头。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Args`（**可选**，`[String]`）**  
要传递到单个脚本的参数的列表。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)

**`OnNodeConfigured`（**可选**，`String`）**  
指定在所有节点引导操作完成之后，要在 Slurm 队列中的节点上运行的脚本序列或单个脚本。 AWS ParallelCluster 不支持同一个自定义操作同时包含单个脚本和 `Sequence`。有关更多信息，请参阅[自定义引导操作](custom-bootstrap-actions-v3.md)。    
**`Sequence`（**可选**）**  
要运行的脚本的列表。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)    
**`Script`（**必需**，`String`）**  
要使用的文件。文件路径可以 `https://` 或 `s3://` 开头。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Args`（**可选**，`[String]`）**  
要传递到脚本的参数的列表。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Script`（**必需**，`String`）**  
用于单个脚本的文件。文件路径可以 `https://` 或 `s3://` 开头。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
**`Args`（**可选**，`[String]`）**  
要传递到单个脚本的参数的列表。  
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)
[更新策略：必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
`Sequence`是从 3.6.0 AWS ParallelCluster 版本开始添加的。指定后`Sequence`，您可以列出一个自定义操作的多个脚本。 AWS ParallelCluster 继续支持使用单个脚本配置自定义操作，不包括脚本`Sequence`。  
AWS ParallelCluster 不支持同时包含单个脚本和`Sequence`同一个自定义操作。

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

**（可选）**定义 Slurm 队列的可选 IAM 设置。

```
Iam:
  S3Access:
    - BucketName: string
      EnableWriteAccess: boolean
      KeyName: string
  AdditionalIamPolicies:
    - Policy: string
  InstanceProfile: string
  InstanceRole: string
```

[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

##### `Iam` 属性
<a name="Scheduling-v3-SlurmQueues-Iam.properties"></a>

**`InstanceProfile`（**可选**，`String`）**  
指定用于覆盖 Slurm 队列默认实例角色或实例配置文件的实例配置文件。您不能同时指定 `InstanceProfile` 和 `InstanceRole`。格式为 `arn:${Partition}:iam::${Account}:instance-profile/${InstanceProfileName}`。  
如果指定此设置，则不能指定 `S3Access` 和 `AdditionalIamPolicies` 设置。  
我们建议您指定 `S3Access` 和 `AdditionalIamPolicies` 设置中的一个或两个，因为添加到 AWS ParallelCluster 中的功能通常需要新权限。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`InstanceRole`（**可选**，`String`）**  
指定用于覆盖 Slurm 队列默认实例角色或实例配置文件的实例角色。您不能同时指定 `InstanceProfile` 和 `InstanceRole`。格式为 `arn:${Partition}:iam::${Account}:role/${RoleName}`。  
如果指定此设置，则不能指定 `S3Access` 和 `AdditionalIamPolicies` 设置。  
我们建议您指定 `S3Access` 和 `AdditionalIamPolicies` 设置中的一个或两个，因为添加到 AWS ParallelCluster 中的功能通常需要新权限。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

**`S3Access`（**可选**）**  
为 Slurm 队列指定存储桶。此设置用于生成针对 Slurm 队列中的存储桶授予指定访问权限的策略。  
如果指定此设置，则不能指定 `InstanceProfile` 和 `InstanceRole` 设置。  
我们建议您指定 `S3Access` 和 `AdditionalIamPolicies` 设置中的一个或两个，因为添加到 AWS ParallelCluster 中的功能通常需要新权限。  

```
S3Access:
  - BucketName: string
    EnableWriteAccess: boolean
    KeyName: string
```
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)    
**`BucketName`（**必需**，`String`）**  
存储桶的名称。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
**`KeyName`（**可选**，`String`）**  
存储桶的密钥。默认值为 `*`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
**`EnableWriteAccess`（**可选**，`Boolean`）**  
指示是否为存储桶启用写入权限。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

**`AdditionalIamPolicies`（**可选**）**  
指定 Amazon EC2 的 IAM 策略的 Amazon 资源名称 (ARN) 列表。除了所需的权限外，此列表还附在用于Slurm队列的根角色上 AWS ParallelCluster。  
IAM 策略名称及其 ARN 不相同。不能使用名称。  
如果指定此设置，则不能指定 `InstanceProfile` 和 `InstanceRole` 设置。  
我们建议您使用 `AdditionalIamPolicies`，因为 `AdditionalIamPolicies` 已经添加到 AWS ParallelCluster 所需的权限中，而 `InstanceRole` 必须包含所有必需的权限。随着功能的不断添加，所需权限通常会随版本发生变化。  
没有默认值。  

```
AdditionalIamPolicies:
  - Policy: string
```
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)    
**`Policy`（**必需**，`[String]`）**  
IAM 策略的列表。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

## `SlurmSettings`
<a name="Scheduling-v3-SlurmSettings"></a>

**（可选）**为 Slurm 定义应用到整个集群的设置。

```
SlurmSettings:
  ScaledownIdletime: integer
  QueueUpdateStrategy: string
  EnableMemoryBasedScheduling: boolean
  CustomSlurmSettings: [dict] 
  CustomSlurmSettingsIncludeFile: string
  Database:
    Uri: string
    UserName: string
    PasswordSecretArn: string
  ExternalSlurmdbd:
    Host: string
    Port: integer
  Dns:
    DisableManagedDns: boolean
    HostedZoneId: string
    UseEc2Hostnames: boolean
```

### `SlurmSettings` 属性
<a name="Scheduling-v3-SlurmSettings.properties"></a>

**`ScaledownIdletime`（**可选**，`Integer`）**  
定义 Slurm 节点终止前没有作业的时间（以分钟为单位）。  
默认值为 `10`。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`MungeKeySecretArn`（**可选**，`String`）**  
 纯文本 Secrets AWS Manager 密钥的亚马逊资源名称 (ARN)，其中包含要在集群中使用的 base64 编码的 munge 密钥。Slurm该 munge 密钥将用于验证 Slurm 客户端命令与作为远程服务器的 Slurm 进程守护程序之间的 RPC 调用。如果未提供， AWS ParallelCluster 将 MungeKeySecretArn 为集群生成一个随机 munge 密钥。  
从 AWS ParallelCluster 版本 3.8.0 开始支持 `MungeKeySecretArn`。
如果 MungeKeySecretArn 是新添加到现有集群中，则在回滚或稍后移除时 ParallelCluster不会恢复之前的 munge Key。 MungeKeySecretArn相反，将生成一个新的随机 munge 密钥。
如果 AWS ParallelCluster 用户有权[ DescribeSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DescribeSecret.html)访问该特定机密资源， MungeKeySecretArn 则会进行验证。 MungeKeySecretArn 在以下情况下有效：  
+ 指定的密钥存在；
+ 密钥为明文，包含一个有效的 base64 编码字符串；
+ 解码后的二进制 munge 密钥大小介于 256 和 8192 位之间。
如果 pcluster 用户 IAM 策略不包括 DescribeSecret， MungeKeySecretArn则不进行验证并显示警告消息。有关更多信息，请参阅 [基本 AWS ParallelCluster `pcluster` 用户策略](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-base-user-policy)。  
更新时 MungeKeySecretArn，必须停止计算队列和所有登录节点。  
如果密钥 ARN 中的密钥值被修改，而 ARN 保持不变，则不会自动用新的 munge 密钥更新集群。要使用密钥 ARN 的新 munge 密钥，必须停止计算实例集和登录节点，然后从头节点运行以下命令。  
`sudo /opt/parallelcluster/scripts/slurm/update_munge_key.sh`  
运行命令后，您可以恢复计算队列和登录节点：新配置的计算和登录节点将自动开始使用新的 munge 密钥。  
要生成 base64 编码的自定义 munge 密钥，可以使用 munge 软件随附的 [mungekey 实用程序](https://github.com/dun/munge/wiki/Man-8-mungekey)，然后使用操作系统中常见的 base64 实用程序对其进行编码。或者，也可以使用 bash（请将 bs 参数设置在 32 至 1024 之间）  
`dd if=/dev/random bs=128 count=1 2>/dev/null | base64 -w 0`  
或 Python，如下所示：  

```
import random
import os
import base64

# key length in bytes
key_length=128

base64.b64encode(os.urandom(key_length)).decode("utf-8")
```
[更新策略：必须停止计算队列和登录节点，才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md)

**`QueueUpdateStrategy`（**可选**，`String`）**  
为具有以下更新策略的 [`SlurmQueues`](#Scheduling-v3-SlurmQueues) 部分参数指定替换策略：  
[更新策略：必须停止计算实例集或必须设置 `QueueUpdateStrategy` 才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-queue-update-strategy-v3)  
仅在集群更新过程开始时使用 `QueueUpdateStrategy` 值。  
有效值：`COMPUTE_FLEET_STOP` \$1`DRAIN` \$1`TERMINATE`  
默认值：`COMPUTE_FLEET_STOP`    
**`DRAIN`**  
队列中更改了参数值的节点将设置为 `DRAINING`。处于此状态的节点不接受新作业，正在运行的作业会继续运行，直至完成。  
在节点变成 `idle` (`DRAINED`) 之后，如果是静态节点，则将替换该节点；如果是动态节点，则将终止该节点。其他队列中未更改参数值的其他节点不受影响。  
此策略替换更改了参数值的所有队列节点所需的时间取决于正在运行的工作负载。。  
**`COMPUTE_FLEET_STOP`**  
`QueueUpdateStrategy` 参数的默认值。使用此设置，更新该[`SlurmQueues`](#Scheduling-v3-SlurmQueues)部分下的参数要求您在执行集群更新之前[停止计算队列](pcluster.update-compute-fleet-v3.md)：  

```
$ pcluster update-compute-fleet --status STOP_REQUESTED
```  
**`TERMINATE`**  
在更改了参数值的队列中，将会终止正在运行的作业并立即关闭节点。  
静态节点将被替换，动态节点将被终止。  
其他队列中未更改参数值的其他节点不受影响。
[更新策略：在更新期间不分析此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-ignored-v3)  
从 AWS ParallelCluster 版本 3.2.0 开始支持 `QueueUpdateStrategy`。

**`EnableMemoryBasedScheduling`（**可选**，`Boolean`）**  
如果为 `true`，则在 Slurm 中启用基于内存的调度。有关更多信息，请参阅 [`SlurmQueues`](#Scheduling-v3-SlurmQueues)/[`ComputeResources`](#Scheduling-v3-SlurmQueues-ComputeResources)/[`SchedulableMemory`](#yaml-Scheduling-SlurmQueues-ComputeResources-SchedulableMemory)。  
默认值为 `false`。  
启用基于内存的调度会影响 Slurm 调度器处理作业和节点分配的方式。  
有关更多信息，请参阅 [Slurm 基于内存的调度](slurm-mem-based-scheduling-v3.md)。
从 AWS ParallelCluster 版本 3.2.0 开始支持 `EnableMemoryBasedScheduling`。
[从 3.7.0 AWS ParallelCluster 版开始，如果您在实例中配置了多个实例类型，则`EnableMemoryBasedScheduling`可以启用。](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances)  
适用于 3.2.0 到 3.6 AWS ParallelCluster 版本。 *x*[，如果您在实例中配置了多个实例类型，则`EnableMemoryBasedScheduling`无法启用。](#yaml-Scheduling-SlurmQueues-ComputeResources-Instances)
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`CustomSlurmSettings`（**可选**，`[Dict]`）**  
定义应用到整个集群的自定义 Slurm 设置。  
指定要附加到 AWS ParallelCluster 生成的 `slurm.conf` 文件末尾的键值对的 Slurm 配置字典列表。  
列表中的每个字典都显示为添加到 Slurm 配置文件中的单独一行。您可指定简单参数或复杂参数。  
简单参数包含单个键值对，如以下示例所示：  

```
 - Param1: 100
 - Param2: "SubParam1,SubParam2=SubValue2"
```
在 Slurm 配置中呈现的示例：  

```
Param1=100
Param2=SubParam1,SubParam2=SubValue2
```
复杂的 Slurm 配置参数包含多个以空格分隔的键值对，如以下示例所示：  

```
 - NodeName: test-nodes[1-10]
   CPUs: 4
   RealMemory: 4196
   ... # other node settings
 - NodeSet: test-nodeset
   Nodes: test-nodes[1-10]
   ... # other nodeset settings
 - PartitionName: test-partition
   Nodes: test-nodeset
   ... # other partition settings
```
在 Slurm 配置中呈现的示例：  

```
NodeName=test-nodes[1-10] CPUs=4 RealMemory=4196 ... # other node settings
NodeSet=test-nodeset Nodes=test-nodes[1-10] ... # other nodeset settings
PartitionName=test-partition Nodes=test-nodeset ... # other partition settings
```
自定义 Slurm 节点的名称中不得包含 `-st-` 或 `-dy-` 模式。这些模式是为 AWS ParallelCluster托管的节点预留的。
如果您在 `CustomSlurmSettings` 中指定自定义 Slurm 配置参数，则不得为 `CustomSlurmSettingsIncludeFile` 指定自定义 Slurm 配置参数。  
您只能指定未在 `CustomSlurmSettings` 中列入拒绝列表的 Slurm 配置参数。有关列入拒绝列表的 Slurm 配置参数的信息，请参阅 [被拒登名单 Slurm 的配置参数 `CustomSlurmSettings`](slurm-configuration-settings-v3.md#slurm-configuration-denylists-v3)。  
AWS ParallelCluster 仅检查参数是否在拒绝列表中。 AWS ParallelCluster 不会验证您的自定义Slurm配置参数语法或语义。您有责任验证您的自定义Slurm配置参数。无效的自定义 Slurm 配置参数可能会导致 Slurm 进程守护程序失败，从而导致集群创建和更新失败。  
有关如何使用指定自定义Slurm配置参数的更多信息 AWS ParallelCluster，请参阅[Slurm 配置自定义](slurm-configuration-settings-v3.md)。  
有关 Slurm 配置参数的更多信息，请参阅 Slurm 文档中的 [slurm.conf](https://slurm.schedmd.com/slurm.conf.html)。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
从 AWS ParallelCluster 版本 3.6.0 开始支持 `CustomSlurmSettings`。

**`CustomSlurmSettingsIncludeFile`（**可选**，`String`）**  
定义应用到整个集群的自定义 Slurm 设置。  
指定将包含自定义 Slurm 配置参数的自定义 Slurm 文件附加到 AWS ParallelCluster 生成的 `slurm.conf` 文件的末尾。  
必须包括该文件的路径。路径可以 `https://` 或 `s3://` 开头。  
如果您为 `CustomSlurmSettingsIncludeFile` 指定自定义 Slurm 配置参数，则不得为 `CustomSlurmSettings` 指定自定义 Slurm 配置参数。  
自定义 Slurm 节点的名称中不得包含 `-st-` 或 `-dy-` 模式。这些模式是为 AWS ParallelCluster托管的节点预留的。
您只能指定未在 `CustomSlurmSettingsIncludeFile` 中列入拒绝列表的 Slurm 配置参数。有关列入拒绝列表的 Slurm 配置参数的信息，请参阅 [被拒登名单 Slurm 的配置参数 `CustomSlurmSettings`](slurm-configuration-settings-v3.md#slurm-configuration-denylists-v3)。  
AWS ParallelCluster 仅检查参数是否在拒绝列表中。 AWS ParallelCluster 不会验证您的自定义Slurm配置参数语法或语义。您有责任验证您的自定义Slurm配置参数。无效的自定义 Slurm 配置参数可能会导致 Slurm 进程守护程序失败，从而导致集群创建和更新失败。  
有关如何使用指定自定义Slurm配置参数的更多信息 AWS ParallelCluster，请参阅[Slurm 配置自定义](slurm-configuration-settings-v3.md)。  
有关 Slurm 配置参数的更多信息，请参阅 Slurm 文档中的 [slurm.conf](https://slurm.schedmd.com/slurm.conf.html)。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
从 AWS ParallelCluster 版本 3.6.0 开始支持 `CustomSlurmSettings`。

### `Database`
<a name="Scheduling-v3-SlurmSettings-Database"></a>

**（可选）**定义用于在集群上启用 Slurm 会计的设置。有关更多信息，请参阅 [Slurm会计 AWS ParallelCluster](slurm-accounting-v3.md)。

```
Database:
   Uri: string
   UserName: string
   PasswordSecretArn: string
```

[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

#### `Database` 属性
<a name="Scheduling-v3-SlurmSettings-Database.properties"></a>

**`Uri`（**必需**，`String`）**  
用作 Slurm 会计后端的数据库服务器的地址。此 URI 必须采用 `host:port` 格式且不得包含架构，例如 `mysql://`。主机可以是 IP 地址，也可以是头节点可解析的 DNS 名称。如果未提供端口， AWS ParallelCluster 将使用 MySQL 默认端口 3306。  
AWS ParallelCluster 将Slurm记账数据库引导到集群，并且必须访问该数据库。  
在执行以下操作之前，必须可以访问该数据库：  
+ 创建集群。
+ 通过集群更新启用 Slurm 会计。
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`UserName`（**必需**，`String`）**  
Slurm 用于连接数据库、写入会计日志和执行查询的身份。用户必须对数据库具有读取和写入权限。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`PasswordSecretArn`（**必需**，`String`）**  
包含`UserName`纯文本密码的 AWS Secrets Manager 密钥的 Amazon 资源名称 (ARN)。此密码与 `UserName` 和 Slurm 会计一起使用，用于在数据库服务器上进行身份验证。  
+ 使用 AWS Secrets Manager 控制台创建密钥时，请务必选择 “其他类型的密钥”，选择纯文本，并且仅在密钥中包含密码文本。
+ 你不能在数据库密码中使用 “\$1” 字符，因为 Slurm 在 slurmdbd.conf 中不支持它。
+ 有关如何使用创建密钥 AWS Secrets Manager 的更多信息，请参阅[创建 AWS Secrets Manager 密钥](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret)。
如果用户拥有 [DescribeSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DescribeSecret.html) 的权限，则会验证 `PasswordSecretArn`。如果指定的密钥存在，则 `PasswordSecretArn` 有效。如果用户 IAM 策略不包括 `DescribeSecret`，则不验证 `PasswordSecretArn` 并显示警告消息。有关更多信息，请参阅 [基本 AWS ParallelCluster `pcluster` 用户策略](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-base-user-policy)。  
更新 `PasswordSecretArn` 时，必须停止计算实例集。如果更改了密钥值而未更改密钥 ARN，则不会使用新数据库密码自动更新集群。要针对新密钥值更新集群，您必须在停止计算实例集后从头节点内运行以下命令。  

```
$ sudo /opt/parallelcluster/scripts/slurm/update_slurm_database_password.sh
```
我们建议仅在已停止计算实例集的情况下更改数据库密码以避免会计数据丢失。
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**`DatabaseName`（**可选**，`String`）**  
数据库服务器上用于 Slurm 会计的数据库名称（由 Uri 参数定义）。  
数据库名称可以包含小写字母、数字和下划线。名称长度不得超过 64 个字符。  
此参数映射到 [slurmdbd.conf](https://slurm.schedmd.com/slurmdbd.conf.html#OPT_StorageLoc) 的 `StorageLoc` 参数。  
如果未提供，`DatabaseName`则 ParallelCluster 将使用集群的名称为定义值`StorageLoc`。  
允许更新 `DatabaseName`，但要注意以下几点：  
+ 如果数据库服务器上尚 DatabaseName 不存在具有名称的数据库，slurmdbd 将创建该数据库。您有责任根据需要重新配置新数据库（例如，添加会计实体 — 集群、账户、用户 QOSs、关联等）。
+ 如果数据库服务器上 DatabaseName 已经存在同名数据库，slurmdbd 会将其用于会计功能。Slurm
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

**注意**  
从版本 3.3.0 开始添加了 `Database`。

### ExternalSlurmdbd
<a name="Scheduling-v3-SlurmSettings-ExternalSlurmdbd"></a>

**（可选）**定义通过外部 slurmdbd 服务器启用 Slurm Accounting 的设置。有关更多信息，请参阅[使用进行Slurm会计 AWS ParallelCluster](slurm-accounting-v3.md)。

```
ExternalSlurmdbd:
  Host: string
  Port: integer
```

#### `ExternalSlurmdbd` 属性
<a name="Scheduling-v3-SlurmSettings-ExternalSlurmdbd.properties"></a>

** `Host`（**必需**，`String`）**  
用于 Slurm 会计的外部 slurmdbd 服务器的地址。主机可以是 IP 地址，也可以是头节点可解析的 DNS 名称。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

** `Port`（**可选**，`Integer`）**  
slurmdbd 服务监听的端口。默认值为 `6819`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

### `Dns`
<a name="Scheduling-v3-SlurmSettings-Dns"></a>

**（可选）**为 Slurm 定义应用到整个集群的设置。

```
Dns:
  DisableManagedDns: boolean
  HostedZoneId: string
  UseEc2Hostnames: boolean
```

#### `Dns` 属性
<a name="Scheduling-v3-SlurmSettings-Dns.properties"></a>

**`DisableManagedDns`（**可选**，`Boolean`）**  
如果为 `true`，则不创建集群的 DNS 条目，并且无法解析 Slurm 节点名称。  
默认情况下， AWS ParallelCluster 创建一个 Route 53 托管区域，启动时将在其中注册节点。默认值为 `false`。如果设置`DisableManagedDns`为`true`，则托管区域不是由创建的 AWS ParallelCluster。  
要了解如何使用此设置在没有互联网访问权限的子网中部署集群，请参阅[AWS ParallelCluster 在无法访问互联网的单个子网中](aws-parallelcluster-in-a-single-public-subnet-no-internet-v3.md)。  
集群需要名称解析系统才能正常运行。如果 `DisableManagedDns` 设置为 `true`，则必须提供名称解析系统。要使用 Amazon EC2 默认 DNS，请将 `UseEc2Hostnames` 设置为 `true`。或者配置您自己的 DNS 解析程序，并确保在启动实例时注册节点名称。例如，您可以通过配置 [`CustomActions`](#Scheduling-v3-SlurmQueues-CustomActions)/[`OnNodeStart`](#yaml-Scheduling-SlurmQueues-CustomActions-OnNodeStart) 来实现这一目标。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

**`HostedZoneId`（**可选**，`String`）**  
定义要用于集群 DNS 名称解析的自定义 Route 53 托管区 ID。如果提供，则在指定的托管区域中 AWS ParallelCluster 注册集群节点，并且不会创建托管托管区域。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

**`UseEc2Hostnames`（**可选**，`Boolean`）**  
如果为 `true`，则使用默认 EC2 主机名配置集群计算节点。还会使用此信息更新 Slurm `NodeHostName`。默认值为 `false`。  
要了解如何使用此设置在没有互联网访问权限的子网中部署集群，请参阅[AWS ParallelCluster 在无法访问互联网的单个子网中](aws-parallelcluster-in-a-single-public-subnet-no-internet-v3.md)。  
**从 AWS ParallelCluster 版本 3.3.0 开始，此备注不相关。**  
对于 3.3.0 之前的 AWS ParallelCluster 支持版本：  
如果设置`UseEc2Hostnames`为`true`，则使用 AWS ParallelCluster `prolog`和`epilog`脚本设置 Slurm 配置文件：  
+ 分配了每个作业后，`prolog` 用于向计算节点上的 `/etc/hosts` 中添加节点信息。
+ `epilog` 用于清理 `prolog` 写入的内容。
要添加自定义 `epilog` 或 `prolog` 脚本，请分别将其添加到 `/opt/slurm/etc/pcluster/prolog.d/` 或 `/opt/slurm/etc/pcluster/epilog.d/` 文件夹。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

# `SharedStorage` 部分
<a name="SharedStorage-v3"></a>

**（可选）**集群的共享存储设置。

AWS ParallelCluster [支持使用 [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)、[FSx ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/what-is-fsx-ontap.html) 和 [FSx OpenZFS 共享存储卷、Amazon EF](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/what-is-fsx.html)[S](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) 和 [FSx Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html) 共享存储文件系统或文件缓存。](https://docs.aws.amazon.com/fsx/latest/FileCacheGuide/what-is.html)

在 `SharedStorage` 部分中，您可以定义外部存储或托管存储：
+ **外部存储**是指您管理的现有卷或文件系统。 AWS ParallelCluster 不会创建或删除它。
+ **AWS ParallelCluster 托管存储**是指 AWS ParallelCluster 创建并可以删除的卷或文件系统。

有关[共享存储配额](shared-storage-quotas-v3.md)以及有关如何配置共享存储的更多信息，请参阅*使用[共享存储](shared-storage-quotas-integration-v3.md)*中的 AWS ParallelCluster。

**注意**  
如果 AWS Batch 用作调度程序， FSx 则 Lustre 仅在群集头节点上可用。

```
SharedStorage:
  - MountDir: string
    Name: string
    StorageType: Ebs
    EbsSettings:
      VolumeType: string
      Iops: integer
      Size: integer
      Encrypted: boolean
      KmsKeyId: string
      SnapshotId: string
      Throughput: integer
      VolumeId: string
      DeletionPolicy: string
      Raid:
        Type: string
        NumberOfVolumes: integer
  - MountDir: string
    Name: string
    StorageType: Efs
    EfsSettings:
      Encrypted: boolean
      KmsKeyId: string
      EncryptionInTransit: boolean
      IamAuthorization: boolean
      PerformanceMode: string
      ThroughputMode: string
      ProvisionedThroughput: integer
      FileSystemId: string
      DeletionPolicy: string
      AccessPointId: string
  - MountDir: string
    Name: string
    StorageType: FsxLustre
    FsxLustreSettings:
      StorageCapacity: integer
      DeploymentType: string
      ImportedFileChunkSize: integer
      DataCompressionType: string
      ExportPath: string
      ImportPath: string
      WeeklyMaintenanceStartTime: string
      AutomaticBackupRetentionDays: integer
      CopyTagsToBackups: boolean
      DailyAutomaticBackupStartTime: string
      PerUnitStorageThroughput: integer
      BackupId: string
      KmsKeyId: string
      FileSystemId: string
      AutoImportPolicy: string
      DriveCacheType: string
      StorageType: string
      DeletionPolicy: string
      DataRepositoryAssociations:
      - Name: string
        BatchImportMetaDataOnCreate: boolean
        DataRepositoryPath: string
        FileSystemPath: string
        ImportedFileChunkSize: integer
        AutoExportPolicy: string
        AutoImportPolicy: string
  - MountDir: string
    Name: string
    StorageType: FsxOntap
    FsxOntapSettings:
      VolumeId: string
  - MountDir: string
    Name: string
    StorageType: FsxOpenZfs
    FsxOpenZfsSettings:
      VolumeId: string
  - MountDir: string
    Name: string
    StorageType: FileCache
    FileCacheSettings:
      FileCacheId: string
```

## `SharedStorage` 更新策略
<a name="SharedStorage-v3.update-policies"></a>
+ 对于 managed/external EBS、托管 EFS 和托管 FSx Lustre，更新策略为 [更新策略：对于此列表值设置，必须停止计算实例集或必须设置 QueueUpdateStrategy 才能添加新值；删除现有值时必须停止计算实例集。](using-pcluster-update-cluster-v3.md#update-policy-update-cluster-v3)
+ 对于外部 EFS、 FSx Lustre、 FSx ONTAP FSx OpenZfs 和文件缓存，更新策略为 [更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

## `SharedStorage` 属性
<a name="SharedStorage-v3.properties"></a>

`MountDir`（**必需**，`String`）  
共享存储的挂载路径。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`Name`（**必需**，`String`）  
共享存储的名称。可以在更新设置时使用此名称。  
如果您指定了 AWS ParallelCluster 托管共享存储，并且更改了的值`Name`，则会删除现有的托管共享存储空间和数据，并创建新的托管共享存储。通过集群更新来更改 `Name` 的值等同于用新的托管共享存储替换现有的托管共享存储。`Name`如果您需要保留现有共享存储中的数据，请务必在更改之前备份数据。
[更新策略：对于此列表值设置，必须停止计算实例集或必须设置 QueueUpdateStrategy 才能添加新值；删除现有值时必须停止计算实例集。](using-pcluster-update-cluster-v3.md#update-policy-update-cluster-v3)

`StorageType`（**必需**，`String`）  
共享存储的类型。支持的值为 `Ebs`、`Efs`、`FsxLustre`、`FsxOntap` 和 `FsxOpenZfs`。  
有关更多信息，请参阅 [`FsxLustreSettings`](#SharedStorage-v3-FsxLustreSettings)、[`FsxOntapSettings`](#SharedStorage-v3-FsxOntapSettings) 和 [`FsxOpenZfsSettings`](#SharedStorage-v3-FsxOpenZfsSettings)。  
如果您 AWS Batch 用作调度程序， FSx 则 Lustre 仅在群集头节点上可用。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

## `EbsSettings`
<a name="SharedStorage-v3-EbsSettings"></a>

**（可选）**Amazon EBS 卷的设置。

```
EbsSettings:
  VolumeType: string
  Iops: integer
  Size: integer
  Encrypted: boolean
  KmsKeyId: string
  SnapshotId: string
  VolumeId: string
  Throughput: integer
  DeletionPolicy: string
  Raid:
    Type: string
    NumberOfVolumes: integer
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

### `EbsSettings` 属性
<a name="SharedStorage-v3-EbsSettings.properties"></a>

当设置[DeletionPolicy](#yaml-SharedStorage-EbsSettings-DeletionPolicy)为时`Delete`，如果集群被删除或通过群集更新移除该卷，则该托管卷及其数据将被删除。

有关更多信息，请参阅*使用 AWS ParallelCluster* 中的[共享存储](shared-storage-quotas-integration-v3.md)。

`VolumeType`（**可选**，`String`）  
指定 [Amazon EBS 卷类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)。支持的值为 `gp2`、`gp3`、`io1`、`io2`、`sc1`、`st1` 和 `standard`。默认值为 `gp3`。  
有关更多信息，请参阅《Amazon EC2 用户指南》中的 [Amazon EBS 卷类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`Iops`（**可选**，`Integer`）  
定义 `io1`、`io2` 和 `gp3` 类型卷的 IOPS 数。  
默认值、支持的值以及 `volume_size`/`volume_iops` 比率因 `VolumeType` 和 `Size` 而异。    
`VolumeType` = `io1`  
默认值：`Iops` = 100  
支持的值：`Iops` = 100–64000 †  
最大 `volume_iops`/`volume_size` 比率 = 50 IOPS/GiB。5000 IOPS 需要至少 100 GiB 的 `volume_size`。  
`VolumeType` = `io2`  
默认值：`Iops` = 100  
支持的值：`Iops` = 100–64000（`io2` Block Express 卷为 256000）†  
最大 `Iops`/`Size` 比率 = 500 IOPS/GiB。5000 IOPS 需要至少 10 GiB 的 `Size`。  
`VolumeType` = `gp3`  
默认值：`Iops` = 3000  
支持的值：`Iops` = 3000–16000  
最大 `Iops`/`Size` 比率 = 500 IOPS/GiB。5000 IOPS 需要至少 10 GiB 的 `Size`。
† 只有[在 Nitro System 上构建的实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)配置超过 32000 IOPS 时，才能保证最大 IOPS。其他实例保证最高为 32000 IOPS。除非您[修改卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modify-volume.html)，否则较早的 `io1` 卷可能无法实现完全性能。`io2`Block Express 卷在 `R5b` 实例类型上支持高达 256000 的 `volume_iops` 值。有关更多信息，请参阅《Amazon EC2 用户指南》**中的 [`io2`Block Express 卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html#io2-block-express)。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`Size`（**可选**，`Integer`）  
指定卷大小，以吉字节 (GiB) 为单位。默认值为 35。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`Encrypted`（**可选**，`Boolean`）  
指定是否对卷进行加密。默认值为 `true`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`KmsKeyId`（**可选**，`String`）  
指定用于加密的自定义 AWS KMS 密钥。此设置要求将 `Encrypted` 设置设为 `true`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`SnapshotId`（**可选**，`String`）  
指定 Amazon EBS 快照 ID（如果使用快照作为卷的来源）。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`VolumeId`（**可选**，`String`）  
指定 Amazon EBS 卷 ID。为 `EbsSettings` 实例指定此参数后，还可以并且只能指定 `MountDir` 参数。  
必须在 `HeadNode` 所在的同一可用区中创建卷。  
3.4.0 AWS ParallelCluster 版本中添加了多个可用区。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`Throughput`（**可选**，`Integer`）  
为卷配置的 MiB/s 吞吐量，最大为 1,000 MiB/s。  
此设置仅在 `VolumeType` 为 `gp3` 时有效。支持的范围为 125 到 1000，默认值为 125。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`DeletionPolicy`（**可选**，`String`）  
指定删除集群或删除卷时是保留卷、删除卷还是创建快照。支持的值为 `Delete`、`Retain` 和 `Snapshot`。默认值为 `Delete`。  
当[DeletionPolicy](#yaml-SharedStorage-EbsSettings-DeletionPolicy)设置为时`Delete`，如果集群被删除或通过群集更新移除该卷，则该托管卷及其数据将被删除。  
有关更多信息，请参阅 [共享存储](shared-storage-quotas-integration-v3.md)。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
`DeletionPolicy`从 3.2.0 AWS ParallelCluster 版开始受支持。

### `Raid`
<a name="SharedStorage-v3-EbsSettings-Raid"></a>

**（可选）**定义 RAID 卷的配置。

```
Raid:
  Type: string
  NumberOfVolumes: integer
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

#### `Raid` 属性
<a name="SharedStorage-v3-EbsSettings-Raid.properties"></a>

`Type`（**必需**，`String`）  
定义 RAID 阵列的类型。支持的值为“0”（条带）和“1”（镜像）。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`NumberOfVolumes`（**可选**，`Integer`）  
定义用于创建 RAID 阵列的 Amazon EBS 卷的数量。支持的值范围为 2-5。默认值（定义了 `Raid` 设置时）为 2。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

## `EfsSettings`
<a name="SharedStorage-v3-EfsSettings"></a>

**（可选）**Amazon EFS 文件系统的设置。

```
EfsSettings:
  Encrypted: boolean
  KmsKeyId: string
  EncryptionInTransit: boolean
  IamAuthorization: boolean
  PerformanceMode: string
  ThroughputMode: string
  ProvisionedThroughput: integer
  FileSystemId: string
  DeletionPolicy: string
  AccessPointId: string
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

### `EfsSettings` 属性
<a name="SharedStorage-v3-EfsSettings.properties"></a>

当[DeletionPolicy](#yaml-SharedStorage-EfsSettings-DeletionPolicy)设置为时`Delete`，如果删除了群集，或者如果通过群集更新删除了文件系统，则会删除托管文件系统及其数据。

有关更多信息，请参阅*使用 AWS ParallelCluster* 中的[共享存储](shared-storage-quotas-integration-v3.md)。

`Encrypted`（**可选**，`Boolean`）  
指定是否对 Amazon EFS 文件系统加密。默认值为 `false`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`KmsKeyId`（**可选**，`String`）  
指定用于加密的自定义 AWS KMS 密钥。此设置要求将 `Encrypted` 设置设为 `true`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`EncryptionInTransit`（**可选**，`Boolean`）  
如果设置为 `true`，则使用传输层安全性协议 (TLS) 挂载 Amazon EFS 文件系统。默认情况下，该选项设置为 `false`。  
 AWS Batch 如果用作调度程序，则`EncryptionInTransit`不支持。
从 AWS ParallelCluster 版本 3.4.0 开始添加了 `EncryptionInTransit`。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`IamAuthorization`（**可选**，`Boolean`）  
`IamAuthorization`是从 3.4.0 AWS ParallelCluster 版本开始添加的。  
如果设置为 `true`，则使用系统的 IAM 身份对 Amazon EFS 进行身份验证。默认情况下，该选项设置为 `false`。  
如果 `IamAuthorization` 被设置为 `true`，则 `EncryptionInTransit` 也必须被设置为 `true`。
 AWS Batch 如果用作调度程序，则`IamAuthorization`不支持。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`PerformanceMode`（**可选**，`String`）  
指定 Amazon EFS 文件系统的性能模式。支持的值为 `generalPurpose` 和 `maxIO`。默认值为 `generalPurpose`。有关更多信息，请参阅 [Amazon Elastic File System User Guide](https://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes) 中的 *Performance modes*。  
对于大多数文件系统，我们推荐使用 `generalPurpose` 性能模式。  
使用 `maxIO` 性能模式的文件系统可以扩展到更高级别的聚合吞吐量和每秒操作数。但是，对于大多数文件操作来说，代价是稍高的延迟。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`ThroughputMode`（**可选**，`String`）  
指定 Amazon EFS 文件系统的吞吐量模式。支持的值为 `bursting` 和 `provisioned`。默认值为 `bursting`。使用 `provisioned` 时，必须指定 `ProvisionedThroughput`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`ProvisionedThroughput`（`ThroughputMode` 为 `provisioned` 时**必需**，`Integer`）  
定义预配置的吞吐量（在。MiB/s) of the Amazon EFS file system, measured in MiB/s这与《*亚马逊 EFS API 参考*》中的[ProvisionedThroughputInMibps](https://docs.aws.amazon.com/efs/latest/ug/API_CreateFileSystem.html#efs-CreateFileSystem-response-ProvisionedThroughputInMibps)参数相对应。  
如果您使用了此参数，则必须将 `ThroughputMode` 设置为 `provisioned`。  
支持的范围是 `1`-`1024`。要请求提高限制，请联系 支持。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`FileSystemId`（**可选**，`String`）  
为现有文件系统定义 Amazon EFS 文件系统 ID。  
如果集群配置为跨越多个可用区，则必须在集群使用的每个可用区中定义一个文件系统挂载目标。  
指定了此参数时，只能指定 `MountDir`。不能指定其他 `EfsSettings`。  

**如果设置此选项，则定义的文件系统必须符合以下要求：**
+ 文件系统必须在集群的每个可用区中具有现有的挂载目标，允许来自 `HeadNode` 和 `ComputeNodes` 的入站和出站 NFS 流量。在[调度](Scheduling-v3.md)//[网络 [SlurmQueues](Scheduling-v3.md#Scheduling-v3-SlurmQueues)](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Networking)/中配置了多个可用区[SubnetIds](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Networking-SubnetIds)。

  

**为确保允许集群和文件系统之间的流量，您可以执行以下操作之一：**
  + 配置挂载目标的安全组以允许进出集群子网的 CIDR 或前缀列表的流量。
**注意**  
AWS ParallelCluster 验证端口是否已打开以及 CIDR 或前缀列表是否已配置。 AWS ParallelCluster 不验证 CIDR 块或前缀列表的内容。
  + 通过使用 [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`Networking`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Networking)/[`SecurityGroups`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Networking-SecurityGroups) 和 [`HeadNode`](HeadNode-v3.md)/[`Networking`](HeadNode-v3.md#HeadNode-v3-Networking)/[`SecurityGroups`](HeadNode-v3.md#yaml-HeadNode-Networking-SecurityGroups)，设置集群节点的自定义安全组。必须将自定义安全组配置为允许集群和文件系统之间的流量。
**注意**  
如果所有集群节点都使用自定义安全组，则 AWS ParallelCluster 仅验证端口是否已打开。 AWS ParallelCluster 无法验证源和目标的配置是否正确。
 OneZone 只有当所有计算节点和头节点都位于同一个可用区时，才支持 EFS。EFS OneZone 只能有一个挂载目标。
3.4.0 AWS ParallelCluster 版本中添加了多个可用区。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`DeletionPolicy`（**可选**，`String`）  
指定从集群中删除文件系统或删除集群时，是应保留还是删除文件系统。支持的值是 `Delete` 和 `Retain`。默认值为 `Delete`。  
如果设置[DeletionPolicy](#yaml-SharedStorage-EfsSettings-DeletionPolicy)为`Delete`，则如果删除了群集，或者如果通过群集更新删除了文件系统，则会删除托管文件系统及其数据。  
有关更多信息，请参阅 [共享存储](shared-storage-quotas-integration-v3.md)。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
`DeletionPolicy`从 3.3.0 AWS ParallelCluster 版开始受支持。

`AccessPointId`（**可选**，`String`）  
如果指定了该选项，将挂载由`access point ID` 定义的文件系统入口点，而不是文件系统根目录。  
有关更多信息，请参阅 [共享存储](shared-storage-quotas-integration-v3.md)。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

## `FsxLustreSettings`
<a name="SharedStorage-v3-FsxLustreSettings"></a>

**注意**  
如果为 [`StorageType`](#yaml-SharedStorage-StorageType) 指定了 `FsxLustre`，则必须定义 `FsxLustreSettings`。

**（可选）**适用 FSx 于 Lustre 文件系统的设置。

```
FsxLustreSettings:
  StorageCapacity: integer
  DeploymentType: string
  ImportedFileChunkSize: integer
  DataCompressionType: string
  ExportPath: string
  ImportPath: string
  WeeklyMaintenanceStartTime: string
  AutomaticBackupRetentionDays: integer
  CopyTagsToBackups: boolean
  DailyAutomaticBackupStartTime: string
  PerUnitStorageThroughput: integer
  BackupId: string # BackupId cannot coexist with some of the fields
  KmsKeyId: string
  FileSystemId: string # FileSystemId cannot coexist with other fields
  AutoImportPolicy: string
  DriveCacheType: string
  StorageType: string
  DeletionPolicy: string
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

**注意**  
如果 AWS Batch 用作调度程序， FSx 则 Lustre 仅在集群头节点上可用。

### `FsxLustreSettings` 属性
<a name="SharedStorage-v3-FsxLustreSettings.properties"></a>

如果设置[DeletionPolicy](#yaml-SharedStorage-FsxLustreSettings-DeletionPolicy)为`Delete`，则如果删除了群集，或者如果通过群集更新删除了文件系统，则会删除托管文件系统及其数据。

有关更多信息，请参阅 [共享存储](shared-storage-quotas-integration-v3.md)。

`StorageCapacity`（**必需**，`Integer`）  
设置 Lustre 文件系统的存储容量，以 GiB FSx 为单位。 `StorageCapacity`如果要创建新的文件系统，则为必填项。如果指定了 `BackupId` 或 `FileSystemId`，则不要包含 `StorageCapacity`。  
+ 对于 `SCRATCH_2`、`PERSISTENT_1` 和 `PERSISTENT_2` 部署类型，有效值为 1200 GiB、2400 GiB，并以 2400 GiB 为增量。
+ 对于 `SCRATCH_1` 部署类型，有效值为 1200 GiB、2400 GiB，并以 3600 GiB 为增量。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`DeploymentType`（**可选**，`String`）  
指定 Lustre 文件系统的部署类型。 FSx 支持的值有 `SCRATCH_1`、`SCRATCH_2`、`PERSISTENT_1` 和 `PERSISTENT_2`。默认值为 `SCRATCH_2`。  
当您需要临时存储和短期处理数据时，请选择 `SCRATCH_1` 和 `SCRATCH_2` 部署类型。`SCRATCH_2` 部署类型提供了数据的传输中加密，以及比 `SCRATCH_1` 更高的突发吞吐能力。  
为长期存储和不对延迟敏感的以吞吐量为重点的工作负载选择`PERSISTENT_1`部署类型。 `PERSISTENT_1`支持对传输中的数据进行加密。它在所有可用 Lustr FSx e AWS 区域 的地方都可用。  
对于长期存储以及需要最高级别的 IOPS 和吞吐量的延迟敏感型工作负载，请选择 `PERSISTENT_2` 部署类型。`PERSISTENT_2` 支持 SSD 存储，并提供更高的 `PerUnitStorageThroughput`（最高达到 1000 MB/s/TiB）。`PERSISTENT_2` 适用于有限数量的 AWS 区域。有关部署类型和可用 AWS 区域 位置`PERSISTENT_2`列表的更多信息，请参阅《*Amazon FSx for Lustre 用户指南》中的 Lustre* [文件系统部署选项](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-fsx-lustre.html#lustre-deployment-types)。 FSx   
当您从支持[此功能](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html)的 Amazon EC2 实例访问 `SCRATCH_2`、`PERSISTENT_1` 或 `PERSISTENT_2` 部署类型文件系统时，系统会自动启用传输中数据加密功能。  
从受支持的 AWS 区域中受支持的实例类型进行访问时，支持 `SCRATCH_2`、`PERSISTENT_1` 和 `PERSISTENT_2` 部署类型的传输中数据加密。有关更多信息，请参阅 *Amazon for Lustre 用户指南 FSx *中的[加密传输中的数据](https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-in-transit-fsxl.html)。  
从 AWS ParallelCluster 版本 3.2.0 开始增加了对 `PERSISTENT_2` 部署类型的支持。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`ImportedFileChunkSize`（**可选**，`Integer`）  
对于从数据存储库导入的文件，此值决定单个物理磁盘上存储的每个文件的条带计数和最大数据量（以 MiB 为单位）。可以对单个文件进行条带化的最大磁盘数受构成文件系统的总磁盘数限制。  
默认区块大小为 1024MiB（1GiB），最大值能够达到 512000MiB（500GiB）。Amazon S3 数据元的最大大小为 5 TB。  
使用`PERSISTENT_2`部署类型的文件系统不支持此参数。有关如何配置数据存储库关联的说明，请参阅 *Amazon FSx for Lustre 用户指南*中的[将文件系统关联到 S3 存储桶](https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html)。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`DataCompressionType`（**可选**，`String`）  
为 Lustre 文件系统设置数据压缩配置。 FSx 支持的值为`LZ4`。 `LZ4`表示该 LZ4 算法已开启数据压缩。如果未指定 `DataCompressionType`，则在创建文件系统时关闭数据压缩。  
有关更多信息，请参阅 [Lustre 数据压缩](https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html)。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`ExportPath`（**可选**，`String`）  
Amazon S3 中导出您 FSx 的 for Lustre 文件系统根目录的路径。仅当指定了 `ImportPath` 参数时支持此设置。该路径必须使用在 `ImportPath` 中指定的相同 Amazon S3 存储桶。您可以提供一个可选的前缀，用于从 for Lustre 文件系统中导出新数据和更改数据。 FSx 如果未提供`ExportPath`值，则 FSx 为 Lustre 设置默认导出路`s3://amzn-s3-demo-bucket/FSxLustre[creation-timestamp]`径。此时间戳采用 UTC 格式，例如 `s3://amzn-s3-demo-bucket/FSxLustre20181105T222312Z`。  
Amazon S3 导出桶必须与 `ImportPath` 指定的导入桶相同。如果仅指定存储桶名称（例如 `s3://amzn-s3-demo-bucket`），则会获得文件系统对象与 Amazon S3 存储桶对象的 1:1 映射。此映射意味着 Amazon S3 中的输入数据会在导出时被覆盖。如果您在导出路径中提供了自定义前缀（例如`s3://amzn-s3-demo-bucket/[custom-optional-prefix]`），则 Lustre 会将文件系统的内容导出到 Amazon S3 存储桶中的该导出前缀。 FSx   
使用`PERSISTENT_2`部署类型的文件系统不支持此参数。按照《*Amaz FSx on for Lustre 用户指南》*[中的将文件系统链接到 S3 存储桶](https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html)中所述配置数据存储库关联。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`ImportPath`（**可选**，`String`）  
您用作 for Lustre 文件系统数据存储库的 Amazon S3 存储桶的路径（包括可选前缀）。 FSx 您 FSx 的 for Lustre 文件系统的根目录将映射到您选择的 Amazon S3 存储桶的根目录。例如，`s3://amzn-s3-demo-bucket/optional-prefix`。如果您在 Amazon S3 名称后指定了前缀，则只将具有该前缀的对象键加载到文件系统。  
使用`PERSISTENT_2`部署类型的文件系统不支持此参数。按照《*Amaz FSx on for Lustre 用户指南》*[中的将文件系统链接到 S3 存储桶](https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html)中所述配置数据存储库关联。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`WeeklyMaintenanceStartTime`（**可选**，`String`）  
执行每周维护的首选开始时间。它采用 UTC\$10 时区的 `"d:HH:MM"` 格式。对于此格式，`d` 是从 1 到 7 的星期几数字，从星期一开始，以星期日结束。此字段必须使用引号。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`AutomaticBackupRetentionDays`（**可选**，`Integer`）  
保留自动备份的天数。将此值设置为 0 将禁用自动备份。支持的范围是 0-90。默认值是 0。此设置仅在与 `PERSISTENT_1` 和 `PERSISTENT_2` 部署类型一起使用时有效。有关更多信息，请参阅《*Amazon FSx for Lustre 用户指南》*[中的使用备份](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html)。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`CopyTagsToBackups`（**可选**，`Boolean`）  
如果是`true`，请将 for Lustre 文件系统的标签复制到备份中。 FSx 此值默认为 `false`。如果设置为 `true`，则会将文件系统的所有标签复制到用户未指定标签的所有自动和用户启动的备份。如果此值为 `true`，并且指定了一个或多个标签，则仅将指定的标签复制到备份。如果您在创建用户启动的备份时指定了一个或多个标签，则无论此值如何，都不会从文件系统中复制任何标签。此设置仅在与 `PERSISTENT_1` 和 `PERSISTENT_2` 部署类型一起使用时有效。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`DailyAutomaticBackupStartTime`（**可选**，`String`）  
每天重复的时间，格式为 `HH:MM`。`HH` 是一天中的零填充小时 (00-23)。`MM` 是小时中的零填充分钟 (00-59)。例如，`05:00` 指定每天上午 5 点。此设置仅在与 `PERSISTENT_1` 和 `PERSISTENT_2` 部署类型一起使用时有效。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`PerUnitStorageThroughput`（对 `PERSISTENT_1` 和 `PERSISTENT_2` 部署类型为**必需**，`Integer`）  
描述每 1 TiB 存储的读取和写入吞吐量（以 MB/s/TiB 为单位）。文件系统吞吐容量的计算方法是将文件系统存储容量 (TiB) 乘以 `PerUnitStorageThroughput` (MB/s/TiB). For a 2.4 TiB ﬁle system, provisioning 50 MB/s/TiBof)，得出文件系统吞吐`PerUnitStorageThroughput`量的 120 MB/s 。您需要为预置的吞吐量付费。这与该[PerUnitStorageThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-perunitstoragethroughput)属性相对应。  
有效值：  
+ PERSISTENT\$11 SSD 存储：50、100、200 MB/s/TiB。
+ PERSISTENT\$11 HDD 存储：12、40 MB/s/TiB。
+ PERSISTENT\$12 SSD 存储：125、250、500、1000 MB/s/TiB。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`BackupId`（**可选**，`String`）  
指定用于从现有备份中恢复 for Lustre 文件系统的备份 ID。 FSx 指定了 `BackupId` 设置时，不得指定 `AutoImportPolicy`、`DeploymentType`、`ExportPath`、`KmsKeyId`、`ImportPath`、`ImportedFileChunkSize`、`StorageCapacity` 和 `PerUnitStorageThroughput` 设置。这些设置将从备份中读取。此外，不得指定 `AutoImportPolicy`、`ExportPath`、`ImportPath` 和 `ImportedFileChunkSize` 设置。这与该[BackupId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-backupid)属性相对应。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`KmsKeyId`（**可选**，`String`）  
 AWS Key Management Service (AWS KMS) 密钥 ID 的 ID，用于加密 for Lustre 文件系统的数据，使静态的 Lustre 文件系统具有永久性 FSx 。 FSx 如果未指定，则使用 f FSx or Lustre 托管密钥。Lustre 文件系统的`SCRATCH_1`和`SCRATCH_2` FSx 始终使用 Lustre 托管密钥 FSx 进行静态加密。有关更多信息，请参阅 *AWS Key Management Service API 参考* 中的 [Encrypt](https://docs.aws.amazon.com//kms/latest/APIReference/API_Encrypt.html)。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`FileSystemId`（**可选**，`String`）  
指定 Lustre 现有 FSx 文件系统的 ID。  
如果指定了此选项，则仅使用 `FsxLustreSettings` 中的 `MountDir` 和 `FileSystemId` 设置。`FsxLustreSettings` 中的所有其他设置都将被忽略。  
如果使用 AWS Batch 调度器，则 fo FSx r Lustre 仅在头节点上可用。
该文件系统必须关联到通过端口 988、1021、1022 和 1023 允许入站和出站 TCP 流量的安全组。
通过执行以下操作之一，确保允许集群和文件系统之间的流量：  
+ 配置文件系统的安全组以允许进出集群子网的 CIDR 或前缀列表的流量。
**注意**  
AWS ParallelCluster 验证端口是否已打开以及 CIDR 或前缀列表是否已配置。 AWS ParallelCluster 不验证 CIDR 块或前缀列表的内容。
+ 通过使用 [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`Networking`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Networking)/[`SecurityGroups`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Networking-SecurityGroups) 和 [`HeadNode`](HeadNode-v3.md)/[`Networking`](HeadNode-v3.md#HeadNode-v3-Networking)/[`SecurityGroups`](HeadNode-v3.md#yaml-HeadNode-Networking-SecurityGroups)，设置集群节点的自定义安全组。必须将自定义安全组配置为允许集群和文件系统之间的流量。
**注意**  
如果所有集群节点都使用自定义安全组，则 AWS ParallelCluster 仅验证端口是否已打开。 AWS ParallelCluster 无法验证源和目标的配置是否正确。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`AutoImportPolicy`（**可选**，`String`）  
当您创建 f FSx or Lustre 文件系统时，您的现有 Amazon S3 对象将显示为文件和目录列表。使用此属性选择 Lustre 在关联的 Amazon S3 存储桶中添加或修改对象时如何 FSx 使您的文件和目录列表保持最新。 `AutoImportPolicy`可以有以下值：  
+  `NEW`-自动导入已开启。 FSx for Lustre 会自动导入添加到链接的 Amazon S3 存储桶中且当前不存在于 for Lustre 文件系统中的任何新对象 FSx 的目录列表。
+  `NEW_CHANGED`-自动导入已开启。 FSx for Lustre 会自动导入添加到 Amazon S3 存储桶中的任何新对象以及选择此选项后在 Amazon S3 存储桶中更改的任何现有对象的文件和目录列表。
+  `NEW_CHANGED_DELETED`-自动导入已开启。 FSx for Lustre 会自动导入添加到 Amazon S3 存储桶中的任何新对象、在 Amazon S3 存储桶中更改的任何现有对象以及您选择此选项后在 Amazon S3 存储桶中删除的所有对象的文件和目录列表。
**注意**  
在 AWS ParallelCluster 版本 3.1.1 中增加了对 `NEW_CHANGED_DELETED` 的支持。
如果`AutoImportPolicy`未指定，则关闭自动导入。 FSx for Lustre 仅在创建文件系统时更新链接的 Amazon S3 存储桶中的文件和目录列表。 FSx 选择此选项后，for Lustre 不会更新任何新对象或已更改对象的文件和目录列表。  
有关更多信息，请参阅 *Amaz FSx on for Lustre 用户指南中的自动从 S3 存储桶导*[入更新](https://docs.aws.amazon.com/fsx/latest/LustreGuide/autoimport-data-repo.html)。  
使用 `PERSISTENT_2` 部署类型的文件系统不支持此参数。有关如何配置数据存储库关联的说明，请参阅 *Amazon FSx for Lustre 用户指南*中的[将文件系统关联到 S3 存储桶](https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html)。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`DriveCacheType`（**可选**，`String`）  
指定文件系统具有 SSD 驱动器缓存。只有将 `StorageType` 设置设为 `HDD`，且将 `DeploymentType` 设置设为 `PERSISTENT_1`，才能设置此选项。这与该[DriveCacheType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-drivecachetype)属性相对应。有关更多信息，[FSx 请参阅《*Amazon FSx for Lustre 用户指南》中的 Lustre* 部署选项](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-fsx-lustre.html)。  
唯一有效值为 `READ`。要禁用 SSD 驱动器缓存，请不要指定 `DriveCacheType` 设置。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`StorageType`（**可选**，`String`）  
为您正在创建的 for FSx Lustre 文件系统设置存储类型。有效值为 `SSD` 和 `HDD`。  
+ 设置为 `SSD` 以使用固态驱动器存储。
+ 设置为 `HDD` 以使用硬盘驱动器存储。`PERSISTENT` 部署类型支持 `HDD`。
默认值为 `SSD`。有关更多信息，请参阅亚马逊 *Windows 版用户指南中的[存储类型选项](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/optimize-fsx-costs.html#storage-type-options)和亚马逊 FSx * for *Lustre 用户指南*中的[多个存储选项](https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html#storage-options)。 FSx   
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`DeletionPolicy`（**可选**，`String`）  
指定从集群中删除文件系统或删除集群时，是应保留还是删除文件系统。支持的值是 `Delete` 和 `Retain`。默认值为 `Delete`。  
如果设置[DeletionPolicy](#yaml-SharedStorage-FsxLustreSettings-DeletionPolicy)为`Delete`，则如果删除了群集，或者如果通过群集更新删除了文件系统，则会删除托管文件系统及其数据。  
有关更多信息，请参阅 [共享存储](shared-storage-quotas-integration-v3.md)。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
`DeletionPolicy`从 3.3.0 AWS ParallelCluster 版开始受支持。

`DataRepositoryAssociations`（**可选**，`String`）  
列表 DRAs （每个文件系统最多 8 个）  
每个数据存储库关联都必须有一个唯一的 Amazon FSx 文件系统目录以及与之关联的唯一 S3 存储桶或前缀。  
不能[ImportPath](#yaml-SharedStorage-FsxLustreSettings-ImportPath)在使用[ExportPath](#yaml-SharedStorage-FsxLustreSettings-ExportPath)和的 FsxLustreSettings 同时使用 DRAs。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`Name`（**必需**，`String`）  
DRA 的名称。可以在更新设置时使用此名称。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`BatchImportMetaDataOnCreate`（**可选**，`Boolean`）  
一种布尔标志，指示是否应在创建数据存储库关联后运行用于导入元数据的导入数据存储库任务。如果将此标志设置为 `true`，则该任务将运行。  
默认值：`false`  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`DataRepositoryPath`（**必需**，`String`）  
要链接到文件系统的 Amazon S3 数据存储库的路径。该路径可以是 S3 存储桶或格式 `s3://amzn-s3-demo-bucket/myPrefix/` 的前缀。此路径指定 S3 数据存储库文件将从中导入或导出到的位置。  
不能与其他重叠 DRAs  
模式：`^[^\u0000\u0085\u2028\u2029\r\n]{3,4357}$`  
最低：`3`  
最高：`4357`  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`FileSystemPath`（**必需**，`String`）  
Amazon fo FSx r Lustre 文件系统上的路径，它指向将与 1-1 映射的高级目录（例如 `/ns1/``/ns1/subdir/`）或子目录（例如）。`DataRepositoryPath`名称中的前导正斜杠必填。两个数据存储库关联不能具有重叠的文件系统路径。例如，如果数据存储库与文件系统路径 `/ns1/` 相关联，则您无法将另一个数据存储库与文件系统路径 `/ns1/ns2` 相关联。  
此路径指定文件将在您的文件系统中的哪个位置导出或导入到哪个位置。只能将此文件系统目录链接到一个 Amazon S3 桶，而不能将其他 S3 桶链接到该目录。  
不能与其他重叠 DRAs  
 如果您仅指定正斜杠（`/`）作为文件系统路径，则只能将一个数据存储库链接到文件系统。您只能将“`/`”指定为与文件系统相关联的第一个数据存储库的文件系统路径。
模式：`^[^\u0000\u0085\u2028\u2029\r\n]{1,4096}$`  
最低：`1`  
最高：`4096`  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`ImportedFileChunkSize`（**可选**，`Integer`）  
对于从数据存储库导入的文件，此值决定单个物理磁盘上存储的每个文件的条带计数和最大数据量（以 MiB 为单位）。可以对单个文件进行条带化的最大磁盘数受构成文件系统或缓存的总磁盘数限制。  
默认区块大小为 1024MiB（1GiB），最大值能够达到 512000MiB（500GiB）。Amazon S3 数据元的最大大小为 5 TB。  
最低：`1`  
最高：`4096`  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`AutoExportPolicy`（**可选**，`Array of strings`）  
该列表可包含一个或多个以下值：  
+ `NEW` - 新文件和目录将在添加到文件系统时自动导出到数据存储库。
+ `CHANGED` - 对文件系统上的文件和目录所做的更改将自动导出到数据存储库。
+ `DELETED` - 在文件系统上删除文件和目录后，将在数据存储库中自动删除这些文件和目录。
您可以为您的 `AutoExportPolicy` 定义事件类型的任意组合。  
最高：`3`  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`AutoImportPolicy`（**可选**，`Array of strings`）  
该列表可包含一个或多个以下值：  
+ `NEW`-Amazon FSx 会自动导入添加到链接的 S3 存储桶且 FSx 文件系统中当前不存在的文件的元数据。
+ `CHANGED`-当数据存储库中的文件更改时，Amazon FSx 会自动更新文件元数据并使文件系统中的现有文件内容失效。
+ `DELETED`-当相应文件在数据存储库中被删除时，Amazon 会 FSx 自动删除文件系统上的文件。
您可以为您的 `AutoImportPolicy` 定义事件类型的任意组合。  
最高：`3`  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

## `FsxOntapSettings`
<a name="SharedStorage-v3-FsxOntapSettings"></a>

**注意**  
如果为 [`StorageType`](#yaml-SharedStorage-StorageType) 指定了 `FsxOntap`，则必须定义 `FsxOntapSettings`。

**（可选）**适用 FSx 于 ONTAP 文件系统的设置。

```
FsxOntapSettings:
  VolumeId: string
```

### `FsxOntapSettings` 属性
<a name="SharedStorage-v3-FsxOntapSettings.properties"></a>

`VolumeId`（**必需**，`String`）  
指定 ONTAP FSx 系统的现有卷 ID。

**注意**  
如果使用 AWS Batch 调度程序， FSx 则 ONTAP 仅在头节点上可用。
如果 FSx 适用于 ONTAP 的部署类型为`Multi-AZ`，请确保已正确配置头节点子网的路由表。
3.2.0 FSx AWS ParallelCluster 版本中增加了对 ONTAP 的支持。
该文件系统必须关联到通过端口 111、635、2049 和 4046 允许入站和出站 TCP 和 UDP 流量的安全组。

通过执行以下操作之一，确保允许集群和文件系统之间的流量：
+ 配置文件系统的安全组以允许进出集群子网的 CIDR 或前缀列表的流量。
**注意**  
AWS ParallelCluster 验证端口是否已打开以及 CIDR 或前缀列表是否已配置。 AWS ParallelCluster 不验证 CIDR 块或前缀列表的内容。
+ 通过使用 [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`Networking`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Networking)/[`SecurityGroups`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Networking-SecurityGroups) 和 [`HeadNode`](HeadNode-v3.md)/[`Networking`](HeadNode-v3.md#HeadNode-v3-Networking)/[`SecurityGroups`](HeadNode-v3.md#yaml-HeadNode-Networking-SecurityGroups)，设置集群节点的自定义安全组。必须将自定义安全组配置为允许集群和文件系统之间的流量。
**注意**  
如果所有集群节点都使用自定义安全组，则 AWS ParallelCluster 仅验证端口是否已打开。 AWS ParallelCluster 无法验证源和目标的配置是否正确。

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

## `FsxOpenZfsSettings`
<a name="SharedStorage-v3-FsxOpenZfsSettings"></a>

**注意**  
如果为 [`StorageType`](#yaml-SharedStorage-StorageType) 指定了 `FsxOpenZfs`，则必须定义 `FsxOpenZfsSettings`。

**（可选）**适用 FSx 于 OpenZFS 文件系统的设置。

```
FsxOpenZfsSettings:
  VolumeId: string
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

### `FsxOpenZfsSettings` 属性
<a name="SharedStorage-v3-FsxOpenZfsSettings.properties"></a>

`VolumeId`（**必需**，`String`）  
指定 OpenZFS FSx 系统的现有卷 ID。

**注意**  
如果使用 AWS Batch 调度程序， FSx 则 OpenZFS 只能在头节点上使用。
3.2.0 FSx AWS ParallelCluster 版本中增加了对 OpenZFS 的支持。
该文件系统必须关联到通过端口 111、2049、20001、20002 和 20003 允许入站和出站 TCP 和 UDP 流量的安全组。

通过执行以下操作之一，确保允许集群和文件系统之间的流量：
+ 配置文件系统的安全组以允许进出集群子网的 CIDR 或前缀列表的流量。
**注意**  
AWS ParallelCluster 验证端口是否已打开以及 CIDR 或前缀列表是否已配置。 AWS ParallelCluster 不验证 CIDR 块或前缀列表的内容。
+ 通过使用 [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`Networking`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Networking)/[`SecurityGroups`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Networking-SecurityGroups) 和 [`HeadNode`](HeadNode-v3.md)/[`Networking`](HeadNode-v3.md#HeadNode-v3-Networking)/[`SecurityGroups`](HeadNode-v3.md#yaml-HeadNode-Networking-SecurityGroups)，设置集群节点的自定义安全组。必须将自定义安全组配置为允许集群和文件系统之间的流量。
**注意**  
如果所有集群节点都使用自定义安全组，则 AWS ParallelCluster 仅验证端口是否已打开。 AWS ParallelCluster 无法验证源和目标的配置是否正确。

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

## `FileCacheSettings`
<a name="SharedStorage-v3-FsxFileCacheSettings"></a>

**注意**  
如果为 [`StorageType`](#yaml-SharedStorage-StorageType) 指定了 `FileCache`，则必须定义 `FileCacheSettings`。

**（可选）**文件缓存的设置。

```
FileCacheSettings:
  FileCacheId: string
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

### `FileCacheSettings` 属性
<a name="SharedStorage-v3-FsxFileCacheSettings.properties"></a>

`FileCacheId`（**必需**，`String`）  
指定现有文件缓存的文件缓存 ID。

**注意**  
文件缓存不支持 AWS Batch 调度程序。
3.7.0 AWS ParallelCluster 版本中增加了对文件缓存的支持。
该文件系统必须关联到通过端口 988 允许入站和出站 TCP 流量的安全组。

通过执行以下操作之一，确保允许集群和文件系统之间的流量：
+ 配置文件缓存的安全组以允许进出集群子网的 CIDR 或前缀列表的流量。
**注意**  
AWS ParallelCluster 验证端口是否已打开以及 CIDR 或前缀列表是否已配置。 AWS ParallelCluster 不验证 CIDR 块或前缀列表的内容。
+ 通过使用 [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`Networking`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Networking)/[`SecurityGroups`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Networking-SecurityGroups) 和 [`HeadNode`](HeadNode-v3.md)/[`Networking`](HeadNode-v3.md#HeadNode-v3-Networking)/[`SecurityGroups`](HeadNode-v3.md#yaml-HeadNode-Networking-SecurityGroups)，设置集群节点的自定义安全组。必须将自定义安全组配置为允许集群和文件系统之间的流量。
**注意**  
如果所有集群节点都使用自定义安全组，则 AWS ParallelCluster 仅验证端口是否已打开。 AWS ParallelCluster 无法验证源和目标的配置是否正确。

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

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

**（可选）**指定集群的 IAM 属性。

```
Iam:
  Roles:
    LambdaFunctionsRole: string
  PermissionsBoundary: string
  ResourcePrefix: string
```

[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

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

`PermissionsBoundary`（**可选**，`String`）  
要用作 AWS ParallelCluster创建的所有角色的权限边界的 IAM 策略的 ARN。有关更多信息，请参阅《 IAM 用户指南》**中的 [IAM 实体的权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。格式为 `arn:${Partition}:iam::${Account}:policy/${PolicyName}`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`Roles`（**可选**）  
指定集群使用的 IAM 角色的设置。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)    
`LambdaFunctionsRole`（**可选**，`String`）  
要用于的 IAM 角色的 ARN。 AWS Lambda这会覆盖所有 AWS CloudFormation 支持自定义资源的 Lambda 函数的默认角色。需要将 Lambda 配置可以担任该角色的主体。这不会覆盖用于的 Lambda 函数的角色。 AWS Batch格式为 `arn:${Partition}:iam::${Account}:role/${RoleName}`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`ResourcePrefix`（**可选**）  
为由创建的 IAM 资源指定路径或名称前缀 AWS ParallelCluster。  
资源前缀必须遵循 [IAM 指定的命名规则](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)：  
+ 名称最多可以包含 30 个字符。
+ 名称只能是没有斜杠 (`/`) 字符的字符串。
+ 路径最多可以有 512 个字符。
+ 路径必须以斜杠 (`/`) 开头和结尾。它可以在起始和结尾斜杠 (`/`) 之间包含多个斜杠 (`/`)。
+ 您可以组合路径和名称 `/path/name`。
指定名称。  

```
Iam:
  ResourcePrefix: my-prefix
```
指定路径。  

```
Iam:
  ResourcePrefix: /org/dept/team/project/user/
```
指定路径和名称。  

```
Iam:
  ResourcePrefix: /org/dept/team/project/user/my-prefix
```
如果指定 `/my-prefix`，则会返回错误。  

```
Iam:
  ResourcePrefix: /my-prefix
```
返回配置错误。路径必须有两个 `/`。前缀本身不能有 `/`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

# `LoginNodes` 部分
<a name="LoginNodes-v3"></a>

**注意**  
3.7.0 AWS ParallelCluster 版本中增加了对 `LoginNodes` Support 的支持。

**（可选）**指定登录节点池的配置。

```
LoginNodes:
  Pools:
    - Name: string
      Count: integer
      InstanceType: string
      GracetimePeriod: integer
      Image:
        CustomAmi: string
      Ssh:
        KeyName: string
        AllowedIps: string
      Networking:
        SubnetIds:
          - string
        SecurityGroups:
          - string
        AdditionalSecurityGroups:
          - string
      Dcv:
        Enabled: boolean
        Port: integer
        AllowedIps: string
      CustomActions:
        OnNodeStart:
          Sequence:
            - Script: string
              Args:
                - string
          Script: string
          Args:
            - string
        OnNodeConfigured:
          Sequence:
            - Script: string
              Args:
                - string
          Script: string
          Args:
            - string
        OnNodeUpdated:
          Sequence:
            - Script: string
              Args:
                - string
          Script: string
          Args:
            - string
      Iam:
        InstanceRole: string
        InstanceProfile: string
        AdditionalIamPolicies:
          - Policy: string
```

[更新策略：必须停止集群中的登录节点，才能更改此设置进行更新。](using-pcluster-update-cluster-v3.md#update-policy-update-login-node-cluster)

## `LoginNodes` 属性
<a name="LoginNodes-v3.properties"></a>

### `Pools` 属性
<a name="LoginNodes-v3-Pools"></a>

定义具有相同资源配置的登录节点组。从 AWS ParallelCluster 3.11.0 开始，最多可以指定 10 个池。

```
Pools:
  - Name: string
    Count: integer
    InstanceType: string
    GracetimePeriod: integer
    Image:
      CustomAmi: string
    Ssh:
      KeyName: string
      AllowedIps: string
    Networking:
      SubnetIds:
        - string
      SecurityGroups:
        - string
      AdditionalSecurityGroups:
        - string
    Dcv:
      Enabled: boolean
      Port: integer
      AllowedIps: string
    CustomActions:
      OnNodeStart:
        Sequence:
          - Script: string
            Args:
              - string
        Script: string
        Args:
          - string
      OnNodeConfigured:
        Sequence:
          - Script: string
            Args:
              - string
        Script: string
        Args:
          - string
      OnNodeUpdated:
        Sequence:
          - Script: string
            Args:
              - string
        Script: string
        Args:
          - string
    Iam:
      InstanceRole: string
      InstanceProfile: string
      AdditionalIamPolicies:
        - Policy: string
```

[更新策略：可以添加登录节点池，但移除池需要停止集群中的所有登录节点。](using-pcluster-update-cluster-v3.md#update-policy-add-login-node-pools)

`Name`（**必需** `String`）  
指定 `LoginNodes` 池的名称。此参数用于标记 `LoginNodes` 资源。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)   
从 AWS ParallelCluster 版本 3.11.0 开始，更新策略是：必须停止池中的登录节点才能更改此设置以进行更新。

`Count`（**必需** `Integer`）  
指定要保持活动状态的登录节点的数量。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`InstanceType`（**必需** `String`）  
指定用于登录节点的 Amazon EC2 实例类型。该实例类型的架构必须与用于 Slurm `InstanceType` 设置的架构相同。  
[更新策略](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)：如果登录节点池已停止，则可以更改此设置。  
从 AWS ParallelCluster 版本 3.11.0 开始，更新策略是：必须停止池中的登录节点才能更改此设置以进行更新。

`GracetimePeriod`（**可选** `Integer`）  
指定从向已登录用户发出登录节点即将停用的通知到实际停止事件之间经过的最短时间（以分钟为单位）。`GracetimePeriod` 的有效值为 3 到 120 分钟。默认值为 10 分钟。  
触发事件涉及多个 AWS 服务之间的交互。有时，网络延迟和信息的传播可能需要一些时间，因此由于 AWS 服务内部延迟，宽限期可能需要比预期更长的时间。
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`Image`（**可选**）  
定义登录节点的映像配置。  

```
Image:
  CustomAmi: String
```  
`CustomAmi`（**可选** `String`）  
指定用于配置登录节点的自定义 AMI。如果未指定，则该值默认为 [`HeadNode` 部分](HeadNode-v3.md) 中指定的值。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`Ssh`（**可选**）  
定义登录节点的 `ssh` 配置。  

```
Ssh:
  KeyName: string
  AllowedIps: string
```
从 AWS ParallelCluster 版本 3.11.0 开始，更新策略是：必须停止池中的登录节点才能更改此设置以进行更新。  
`KeyName`（**可选** `String`）  
指定用于登录到登录节点的 `ssh` 密钥。如果未指定，则该值默认为 [`HeadNode` 部分](HeadNode-v3.md) 中指定的值。  
[更新策略：必须停止池中的登录节点，才能更改此设置进行更新。](using-pcluster-update-cluster-v3.md#update-policy-update-login-node-pools)  
已弃用-配置参数`LoginNodes/Pools/Ssh/KeyName`已被弃用，并将在未来的版本中将其删除。现在，在群集配置中使用 CLI 时，它会返回一条警告消息。有关详细信息，请参阅 [ https://github.com/aws/aws-parallel](https://github.com/aws/aws-parallelcluster/issues/6811) cluster/issues/6811。  
`AllowedIps`（**可选** `String`）  
指定池中登录节点 SSH 连接的 CIDR 格式 IP 范围或前缀列表 ID。默认值为头节点配置中[AllowedIps](HeadNode-v3.md#yaml-HeadNode-Ssh-AllowedIps)定义的，或者`0.0.0.0/0`如果未指定。 [`HeadNode` 部分](HeadNode-v3.md)。  
[更新策略：必须停止池中的登录节点，才能更改此设置进行更新。](using-pcluster-update-cluster-v3.md#update-policy-update-login-node-pools)  
3.11.0 AWS ParallelCluster 版本中增加了 AllowedIps 对登录节点的支持。

`Networking`**（必填）**  
  

```
Networking:
  SubnetIds:
    - string
  SecurityGroups:
    - string
  AdditionalSecurityGroups:
    - string
```
从 AWS ParallelCluster 版本 3.11.0 开始，更新策略是：必须停止池中的登录节点才能更改此设置以进行更新。  
`SubnetIds`（**必需** `[String]`）  
您在其中配置登录节点池的现有子网的 ID。您只能定义一个子网。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`SecurityGroups`（**可选** `[String]`）  
用于登录节点池的安全组的列表。如果未指定安全组，则会为您 AWS ParallelCluster 创建安全组。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`AdditionalSecurityGroups`（**可选** `[String]`）  
用于登录节点池的其他安全组的列表。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`Dcv`（**可选**）  
定义在[登录](#LoginNodes-v3)节点上运行的 NICE DCV 服务器的配置设置。有关更多信息，请参阅 [通过 Amazon DCV 连接到头节点和登录节点](dcv-v3.md)。  

```
Dcv:
  Enabled: boolean
  Port: integer
  AllowedIps: string
```
默认情况下，设置的 NICE DCV 端口对所有 IPv4 地址开放。 AWS ParallelCluster 只有当您拥有 NICE DCV 会话的 URL 并在 pcluster dcv-connect 返回 URL 后 30 秒内连接到 NICE DCV 会话，才能连接到 NICE DCV 端口。请使用 `AllowedIps` 设置进一步限制对具有 CIDR 格式 IP 范围的 NICE DCV 端口的访问，并使用 Port 设置来设置非标准端口。
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
3.11.0 AWS ParallelCluster 版本中增加了对登录节点上的 DCV 的支持。  
`Enabled`（**必需** `Boolean`）  
指定是否在池中的登录节点上启用 NICE DCV。默认值为 `false`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
NICE DCV 会自动生成自签名证书，该证书用于保护 NICE DCV 客户端和登录节点上运行的 NICE DCV 服务器之间的流量。要配置您自己的证书，请参阅 [Amazon DCV HTTPS 证书](dcv-v3.md#dcv-v3-certificate)。  
`Port`（**可选** `Integer`）  
指定 NICE DCV 的端口。默认值为 `8443`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`AllowedIps`（**可选** `String`）  
指定 NICE DCV 连接的 CIDR 格式的 IP 范围。此设置仅在 AWS ParallelCluster 创建安全组时使用。默认值是 `0.0.0.0/0`，允许从任何 Internet 地址访问。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`CustomActions`（**可选**）  
指定在登录节点上运行的自定义脚本。  

```
CustomActions:
  OnNodeStart:
    Sequence:
      - Script: string
        Args: 
          - string
    Script: string
    Args:
      - string
  OnNodeConfigured:
    Sequence:
      - Script: string
        Args:
          - string
    Script: string
    Args:
      - string
  OnNodeUpdated:
    Sequence:
      - Script: string
        Args:
          - string
    Script: string
    Args:
      - string
```
3.11.0 AWS ParallelCluster 版本中增加了对登录节点上的自定义操作的支持。  
`OnNodeStart`（**可选**）  
指定在启动任何节点部署引导操作前在[登录节点](#LoginNodes-v3)上运行的单个脚本或脚本序列。有关更多信息，请参阅[自定义引导操作](custom-bootstrap-actions-v3.md)。    
`Sequence`（**可选**）  
要运行的脚本列表。 AWS ParallelCluster 按配置文件中列出的顺序运行脚本，从第一个脚本开始。    
`Script`（**必需** `String`）  
指定要使用的文件。文件路径可以 `https://` 或 `s3://` 开头。  
`Args`（**可选** `[String]`）  
要传递到脚本的参数的列表。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`Script`（**必需** `String`）  
指定用于单个脚本的文件。文件路径可以 `https://` 或 `s3://` 开头。  
`Args`（**可选** `[String]`）  
要传递到单个脚本的参数的列表。  
`OnNodeConfigured`（**可选**）  
指定节点引导过程完成后，在[登录节点](#LoginNodes-v3)上运行的单个脚本或一系列脚本。有关更多信息，请参阅[自定义引导操作](custom-bootstrap-actions-v3.md)。    
`Sequence`（**可选**）  
要运行的脚本列表。 AWS ParallelCluster 按配置文件中列出的顺序运行脚本，从第一个脚本开始。    
`Script`（**必需** `String`）  
指定要使用的文件。文件路径可以 `https://` 或 `s3://` 开头。  
`Args`（**可选** `[String]`）  
要传递到脚本的参数的列表。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`Script`（**必需** `String`）  
指定用于单个脚本的文件。文件路径可以 `https://` 或 `s3://` 开头。  
`Args`（**可选** `[String]`）  
要传递到单个脚本的参数的列表。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`OnNodeUpdated`（**可选**）  
指定在头节点更新完成并且调度程序和共享存储与最新的群集配置更改保持一致后要运行的单个脚本或一系列脚本。有关更多信息，请参阅[自定义引导操作](custom-bootstrap-actions-v3.md)。    
`Sequence`（**可选**）  
要运行的脚本列表。 AWS ParallelCluster 按配置文件中列出的顺序运行脚本，从第一个脚本开始。    
`Script`（**必需** `String`）  
指定要使用的文件。文件路径可以 `https://` 或 `s3://` 开头。  
`Args`（**可选** `[String]`）  
要传递到脚本的参数的列表。  
`Script`（**必需** `String`）  
指定用于单个脚本的文件。文件路径可以 `https://` 或 `s3://` 开头。  
`Args`（**可选** `[String]`）  
要传递到单个脚本的参数的列表。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
AWS ParallelCluster 不支持同时包含单个脚本和`Sequence`同一个自定义操作。

`Iam`（**可选**）  
指定要在登录节点上使用的实例角色或实例配置文件，用于覆盖集群的默认实例角色或实例配置文件。  

```
Iam:
  InstanceRole: string
  InstanceProfile: string
  AdditionalIamPolicies:
    - Policy: string
```
从 AWS ParallelCluster 版本 3.11.0 开始，更新策略是：必须停止池中的登录节点才能更改此设置以进行更新。  
`InstanceProfile`（**可选** `String`）  
指定用于覆盖默认登录节点实例配置文件的实例配置文件。您不能同时指定 `InstanceProfile` 和 `InstanceRole`。格式为 `arn:Partition:iam::Account:instance-profile/InstanceProfileName`。如果指定此设置，则不能指定 `InstanceRole` 和 `AdditionalIamPolicies` 设置。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`InstanceRole`（**可选** `String`）  
指定用于覆盖默认登录节点实例角色的实例角色。您不能同时指定 `InstanceProfile` 和 `InstanceRole`。格式为 `arn:Partition:iam::Account:role/RoleName`。如果指定此设置，则不能指定 `InstanceProfile` 和 `AdditionalIamPolicies` 设置。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`AdditionalIamPolicies`（**可选**）  

```
AdditionalIamPolicies:
  - Policy: string
```
IAM 策略的 Amazon 资源名称 (ARN)。  
指定 Amazon EC2 的 IAM 策略的 Amazon 资源名称 (ARN) 列表。除了所需的权限外，此列表还附在用于登录节点的根角色上 AWS ParallelCluster。  
IAM 策略名称及其 ARN 不相同。不能使用名称。  
如果指定此设置，则不能指定 `InstanceProfile` 和 `InstanceRole` 设置。我们建议您使用，`AdditionalIamPolicies``AdditionalIamPolicies`因为已添加到所需的权限中，并且`InstanceRole`必须包含所有必需的权限。 AWS ParallelCluster 随着功能的不断添加，所需权限通常会随版本发生变化。  
没有默认值。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)    
`Policy`（**必需** `[String]`）  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

# `Monitoring` 部分
<a name="Monitoring-v3"></a>

**（可选）**指定集群的监控设置。

```
Monitoring:
  Logs:
    CloudWatch:
      Enabled: boolean
      RetentionInDays: integer
      DeletionPolicy: string
    Rotation:
      Enabled: boolean
  Dashboards:
    CloudWatch:
      Enabled: boolean
  DetailedMonitoring: boolean
  Alarms:
   Enabled: boolean
```

[更新策略：在更新期间不分析此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-ignored-v3)

## `Monitoring` 属性
<a name="Monitoring-v3.properties"></a>

`Logs`（**可选**）  
集群的日志设置。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)    
`CloudWatch`（**可选**）  
集群的 CloudWatch 日志设置。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)    
`Enabled`（**必需**，`Boolean`）  
如果是`true`，则集群日志将流式传输到 CloudWatch 日志。默认值为 `true`。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
`RetentionInDays`（**可选**，`Integer`）  
在日志中保留日志事件的 CloudWatch 天数。默认值为 180。支持的值有 0、1、3、5、7、14、30、60、90、120、150、180、365、400、545、731、1827 和 3653。值为 0 将使用默认的 CloudWatch 日志保留设置，即永不过期。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
`DeletionPolicy`（**可选**，`String`）  
表示删除集群时是否删除 CloudWatch 日志上的日志事件。可能的值为 `Delete` 和 `Retain`。默认值为 `Retain`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
`Rotation`（**可选**）  
集群的日志轮换设置。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)    
`Enabled`（**必需**，`Boolean`）  
如果为 `true`，则启用日志轮换。默认值为 `true`。当 AWS ParallelCluster 配置的日志文件达到一定大小时，将对其进行轮换并保留单个备份。有关更多信息，请参阅[AWS ParallelCluster 配置的日志轮换](log-rotation-v3.md)。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

`Dashboards`（**可选**）  
集群的控制面板设置。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)    
`CloudWatch`（**可选**）  
集群的 CloudWatch 仪表板设置。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)    
`Enabled`（**必需**，`Boolean`）  
如果启用`true`，则 CloudWatch 仪表板已启用。默认值为 `true`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`DetailedMonitoring`（**可选**，`Boolean`）  
如果设置为 `true`，则会对计算实例集 Amazon EC2 实例启用详细监控。启用后，Amazon EC2 控制台会以 1 分钟的间隔显示用于监控实例的图表。启用此功能后，会产生额外费用。默认值为 `false`。  
有关更多信息，请参阅 *Amazon EC2 用户指南（适用于 Linux 实例）*中的[对实例启用或禁用详细监控](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html)。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)  
`DetailedMonitoring`是从 3.6.0 AWS ParallelCluster 版本开始添加的。

`Alarms`（**可选**）  
CloudWatch 集群警报。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)    
`Enabled`（**可选**）  
如果是`true`，则将为集群创建 CloudWatch 警报。默认值为 `true`。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)  
从 AWS ParallelCluster 版本 3.8.0 开始，将为头节点创建以下警报：Amazon EC2 Health Check、CPU/Memory/Disk利用率和包含所有其他警报的复合警报。

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

**（可选），Array** 定义所有群集资源使用 CloudFormation 并传播到所有群集资源的标签。有关更多信息，请参阅 *AWS CloudFormation 用户指南* 中的 [CloudFormation 资源标签](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)。

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

[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

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

`Key`（**必需**，`String`）  
定义标签的名称。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

`Value`（**必需**，`String`）  
定义标签的值。  
[更新策略：可以在更新期间更改此设置。](using-pcluster-update-cluster-v3.md#update-policy-setting-supported-v3)

**注意**  
从 AWS ParallelCluster 3.15.0 开始，支持标签更新有以下限制：  
EBS 卷已开启 HeadNode -将仅保留集群创建时的标签；不支持更新此 EBS 卷上的标签。
运行节点-标签更新不会应用于正在运行的计算节点或登录节点。

# `AdditionalPackages` 部分
<a name="AdditionalPackages-v3"></a>

**（可选）**用于标识要安装的其他程序包。

```
AdditionalPackages:
  IntelSoftware:
    IntelHpcPlatform: boolean
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

## `IntelSoftware`
<a name="AdditionalPackages-v3-IntelSoftware"></a>

**（可选）**定义 Intel Select Solutions 的配置。

```
IntelSoftware:
  IntelHpcPlatform: boolean
```

[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

### `IntelSoftware` 属性
<a name="AdditionalPackages-v3-IntelSoftware.properties"></a>

` IntelHpcPlatform`（**可选**，`Boolean`）  
如果为`true`，则表示英特尔 Parallel Studio [的最终用户许可协议](https://software.intel.com/en-us/articles/end-user-license-agreement)已被接受。这将导致 Intel Parallel Studio 安装在头节点上并与计算节点共享。这使头节点进行引导的时间增加了几分钟。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
从 3.10.0 AWS ParallelCluster 版开始，不再`IntelHpcPlatform`支持该参数。

# `DirectoryService` 部分
<a name="DirectoryService-v3"></a>

**注意**  
在 3.1.1 AWS ParallelCluster 版本中增加了对 Support 的支持。`DirectoryService`

**（可选）**支持多用户访问的集群的目录服务设置。

AWS ParallelCluster 管理支持多用户通过[系统安全服务守护程序 (SSSD) 支持的轻型目录访问协议 (LDAP) 使用活动目录 (AD](https://sssd.io/docs/introduction.html)) 访问集群的权限。有关更多信息，请参阅[什么是 AWS Directory Service？](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html) 在《*AWS Directory Service 管理指南》*中。

我们建议您使用 LDAP TLS/SSL （简称 LDAPS），以确保任何潜在的敏感信息都通过加密通道传输。

```
DirectoryService:
  DomainName: string
  DomainAddr: string
  PasswordSecretArn: string
  DomainReadOnlyUser: string
  LdapTlsCaCert: string
  LdapTlsReqCert: string
  LdapAccessFilter: string
  GenerateSshKeysForUsers: boolean
  AdditionalSssdConfigs: dict
```

[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

## `DirectoryService` 属性
<a name="DirectoryService-v3.properties"></a>

**注意**  
如果您计划 AWS ParallelCluster 在无法访问 Internet 的单个子网中使用，[AWS ParallelCluster 在无法访问互联网的单个子网中](aws-parallelcluster-in-a-single-public-subnet-no-internet-v3.md)请参阅了解其他要求。

`DomainName`（**必需**，`String`）  
用于指示身份信息的 Active Directory (AD) 域。  
`DomainName` 同时接受完全限定域名 (FQDN) 和 LDAP 可分辨名称 (DN) 格式。  
+ FQDN 示例：`corp.example.com`
+ LDAP DN 示例：`DC=corp,DC=example,DC=com`
此属性对应于名为 `ldap_search_base` 的 sssd-ldap 参数。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

`DomainAddr`（**必需**，`String`）  
URI 或 URIs 指向用作 LDAP 服务器的 AD 域控制器。该 URI 对应于名为 `ldap_uri` 的 SSSD-LDAP 参数。该值可以是逗号分隔的字符串。 URIs要使用 LDAP，必须在每个 URI 的开头添加 `ldap://`。  
示例值：  

```
ldap://192.0.2.0,ldap://203.0.113.0          # LDAP
ldaps://192.0.2.0,ldaps://203.0.113.0        # LDAPS without support for certificate verification
ldaps://abcdef01234567890.corp.example.com  # LDAPS with support for certificate verification
192.0.2.0,203.0.113.0                        # AWS ParallelCluster uses LDAPS by default
```
如果您使用 LDAPS 进行证书验证，则 URIs 必须是主机名。  
如果您使用 LDAPS 而不进行证书验证或 LDAP，则 URIs 可以是主机名或 IP 地址。  
使用 LDAP over TLS/SSL (LDAPS) 可避免通过未加密的通道传输密码和其他敏感信息。如果 AWS ParallelCluster 找不到协议，它会在每个 URI 或主机名的开头添加 `ldaps://`。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

`PasswordSecretArn`（**必需**，`String`）  
包含`DomainReadOnlyUser`纯文本密码的 AWS Secrets Manager 密钥的 Amazon 资源名称 (ARN)。密钥的内容对应于名为 `ldap_default_authtok` 的 SSSD-LDAP 参数。  
使用 AWS Secrets Manager 控制台创建密钥时，请务必选择 “其他类型的密钥”，选择纯文本，并且仅在密钥中包含密码文本。  
有关如何使用 AWS Secrets Manager 创建密钥的更多信息，请参阅[创建 AWS Secrets Manager 密钥](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret)
LDAP 客户端使用密码向 AD 域进行身份验证`DomainReadOnlyUser`，就像请求身份信息一样。  
如果用户拥有 [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DescribeSecret.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DescribeSecret.html) 的权限，则会验证 `PasswordSecretArn`。如果指定的密钥存在，则 `PasswordSecretArn` 有效。如果用户 IAM 策略不包括 `DescribeSecret`，则不验证 `PasswordSecretArn` 并显示警告消息。有关更多信息，请参阅 [基本 AWS ParallelCluster `pcluster` 用户策略](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-base-user-policy)。  
当密钥的值发生变化时，*不会* 自动更新集群。要针对新密钥值更新集群，必须使用 [`pcluster update-compute-fleet`](pcluster.update-compute-fleet-v3.md) 命令停止计算实例集，然后从头节点内运行以下命令。  

```
$ sudo /opt/parallelcluster/scripts/directory_service/update_directory_service_password.sh
```
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

`DomainReadOnlyUser`（**必需**，`String`）  
在对集群用户登录进行身份验证时，用于查询 AD 域以获取身份信息的身份。它对应于名为 `ldap_default_bind_dn` 的 SSSD-LDAP 参数。对此值使用您的 AD 身份信息。  
以节点上特定 LDAP 客户端要求的格式指定身份：  
+ MicrosoftAD：

  ```
  cn=ReadOnlyUser,ou=Users,ou=CORP,dc=corp,dc=example,dc=com
  ```
+ SimpleAD：

  ```
  cn=ReadOnlyUser,cn=Users,dc=corp,dc=example,dc=com
  ```
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

`LdapTlsCaCert`（**可选**，`String`）  
证书包的绝对路径，其中包含证书链中为域控制器颁发证书的每个证书颁发机构的证书。它对应于名为 `ldap_tls_cacert` 的 SSSD-LDAP 参数。  
证书捆绑包是一个由 PEM 格式（在 Windows 中也称为 DER Base64 格式）的不同证书串联组成的文件。它用于验证充当 LDAP 服务器的 AD 域控制器的身份。  
AWS ParallelCluster 不负责将证书初始放置到节点上。作为集群管理员，您可以在创建集群后在头节点中手动配置证书，也可以使用[引导脚本](custom-bootstrap-actions-v3.md)。或者，您可以使用包含头节点上配置的证书的亚马逊机器映像 (AMI)。  
[Simple AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_simple_ad.html) 不提供 LDAPS 支持。要了解如何将 Simple AD 目录与集成 AWS ParallelCluster，请参阅*AWS 安全博客*中的[如何为 Simple AD 配置 LDAPS 端点](https://aws.amazon.com/blogs/security/how-to-configure-ldaps-endpoint-for-simple-ad/)。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

`LdapTlsReqCert`（**可选**，`String`）  
指定在 TLS 会话中对服务器证书执行哪些检查。它对应于名为 `ldap_tls_reqcert` 的 SSSD-LDAP 参数。  
有效值：`never`、`allow`、`try`、`demand` 和 `hard`。  
即使发现证书有问题，`never`、`allow` 和 `try` 也允许继续连接。  
在未发现证书问题的情况下，`demand` 和 `hard` 允许继续进行通信。  
如果集群管理员使用的值不需要证书验证成功，则会向管理员返回一条警告消息。出于安全考虑，我们建议您不要禁用证书验证。  
默认值为 `hard`。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

`LdapAccessFilter`（**可选**，`String`）  
指定用于将目录访问权限限制为一部分用户的筛选器。此属性对应于名为 `ldap_access_filter` 的 SSSD-LDAP 参数。您可以使用此属性将查询限制为支持大量用户的 AD。  
此筛选器可阻止用户访问集群。但它不影响被阻止用户的可发现性。  
如果设置了此属性，则 SSSD 参数 `access_provider` 将由 AWS ParallelCluster 在内部设置为 `ldap` 且不得被 [`DirectoryService`](#DirectoryService-v3)/[`AdditionalSssdConfigs`](#yaml-DirectoryService-AdditionalSssdConfigs) 设置修改。  
如果省略此属性且未在 [`DirectoryService`](#DirectoryService-v3)/[`AdditionalSssdConfigs`](#yaml-DirectoryService-AdditionalSssdConfigs) 中指定自定义用户访问权限，则目录中的所有用户都可以访问集群。  
示例：  

```
"!(cn=SomeUser*)"  # denies access to every user with an alias that starts with "SomeUser"
"(cn=SomeUser*)"   # allows access to every user with alias that starts with "SomeUser"
"memberOf=cn=TeamOne,ou=Users,ou=CORP,dc=corp,dc=example,dc=com" # allows access only to users in group "TeamOne".
```
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

`GenerateSshKeysForUsers`（**可选**，`Boolean`）  
定义集群用户在头节点上进行初始身份验证后是否立即为其 AWS ParallelCluster 生成 SSH 密钥。  
如果设置为 `true`，则每个用户在头节点上进行首次身份验证后会为其生成一个 SSH 密钥并保存到 `USER_HOME_DIRECTORY/.ssh/id_rsa`（如果不存在）。  

对于尚未在头节点上进行身份验证的用户，可能会在以下情况下进行首次身份验证：
+ 用户使用自己的密码首次登录头节点。
+ 在头节点中，sudoer 首次切换到用户：`su USERNAME`
+ 在头节点中，sudoer 首次以用户身份运行命令：`su -u USERNAME COMMAND`
之后，用户可以使用 SSH 密钥登录到集群头节点和计算节点。使用 AWS ParallelCluster时，集群计算节点的密码登录在设计上是禁用的。如果用户未登录到头节点，则不会生成 SSH 密钥，用户将无法登录到计算节点。  
默认值为 `true`。  
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

`AdditionalSssdConfigs`（**可选**，`Dict`）  
键值对的字典，其中包含要写入集群实例上的 SSSD 配置文件的 SSSD 参数和值。有关 SSSD 配置文件的完整描述，请参阅 `SSSD` 的 on-instance man 页面和相关配置文件。  
SSSD 参数和值必须与下表中所述 AWS ParallelCluster的 SSSD 配置兼容。  
+ `id_provider`由`ldap`内部设置为 AWS ParallelCluster ，不得修改。
+ `access_provider`指定 [`DirectoryService`](#DirectoryService-v3)/ AWS ParallelCluster 时在`ldap`内部设置[`LdapAccessFilter`](#yaml-DirectoryService-LdapAccessFilter)为，且不得修改此设置。

  如果省略 [`DirectoryService`](#DirectoryService-v3)/[`LdapAccessFilter`](#yaml-DirectoryService-LdapAccessFilter)，则也将省略其指定的 `access_provider`。例如，如果您在 [`AdditionalSssdConfigs`](#yaml-DirectoryService-AdditionalSssdConfigs) 中将 `access_provider` 设置为 `simple`，则不得指定 [`DirectoryService`](#DirectoryService-v3)/[`LdapAccessFilter`](#yaml-DirectoryService-LdapAccessFilter)。
以下配置代码段是 `AdditionalSssdConfigs` 有效配置的示例。  
此示例启用 SSSD 日志的调试级别，将搜索库限制为特定的组织部门，并禁用凭证缓存。  

```
DirectoryService:
  ...
  AdditionalSssdConfigs:
    debug_level: "0xFFF0"
    ldap_search_base: OU=Users,OU=CORP,DC=corp,DC=example,DC=com
    cache_credentials: False
```
此示例指定 SSSD [https://www.mankier.com/5/sssd-simple](https://www.mankier.com/5/sssd-simple) `access_provider` 的配置。为 `EngineeringTeam` 中的用户提供了目录访问权限。在这种情况下，不得设置 [`DirectoryService`](#DirectoryService-v3)/[`LdapAccessFilter`](#yaml-DirectoryService-LdapAccessFilter)。  

```
DirectoryService:
  ...
  AdditionalSssdConfigs:
    access_provider: simple
    simple_allow_groups: EngineeringTeam
```
[更新策略：必须停止计算实例集才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-fleet-v3)

# `DeploymentSettings` 部分
<a name="DeploymentSettings-cluster-v3"></a>

**注意**  
`DeploymentSettings`是从 3.4.0 AWS ParallelCluster 版本开始添加的。

**（可选）**指定部署设置配置。

```
DeploymentSettings:
  LambdaFunctionsVpcConfig:
    SecurityGroupIds:
      - string
    SubnetIds:
      - string
  DisableSudoAccessForDefaultUser: Boolean
  DefaultUserHome: string # 'Shared' or 'Local'
```

## `DeploymentSettings` 属性
<a name="DeploymentSettings-cluster-v3.properties"></a>

### `LambdaFunctionsVpcConfig`
<a name="DeploymentSettings-cluster-v3-LambdaFunctionsVpcConfig"></a>

**（可选）**指定 AWS Lambda 函数 VPC 配置。有关更多信息，请参阅 [AWS Lambda 中的 VPC 配置 AWS ParallelCluster](lambda-vpc-v3.md)。

```
LambdaFunctionsVpcConfig:
  SecurityGroupIds:
    - string
  SubnetIds:
    - string
```

#### `LambdaFunctionsVpcConfig properties`
<a name="DeploymentSettings-cluster-v3-LambdaFunctionsVpcConfig.properties"></a>

 `SecurityGroupIds`（**必需**，`[String]`）  
附加到 Lambda 函数 IDs 的 Amazon VPC 安全组列表。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

 `SubnetIds`（**必需**，`[String]`）  
附加 IDs 到 Lambda 函数的子网列表。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

**注意**  
子网和安全组必须位于同一 VPC。

### DisableSudoAccessForDefaultUser 财产
<a name="DeploymentSettings-cluster-v3-DisableSudoAccessForDefaultUser.property"></a>

**注意**  
只有 Slurm 集群支持此配置选项。

（可选）如果是 `True`，则将禁用默认用户的 sudo 权限。这适用于集群中的所有节点。

```
# Main DeploymentSettings section in config yaml(applies to HN, CF and LN)
DeploymentSettings:
  DisableSudoAccessForDefaultUser: True
```

要更新 `DisableSudoAccessForDefaultUser` 的值，必须停止计算实例集和所有登录节点。

[更新策略：必须停止计算实例集和登录节点才能更改此设置以进行更新。](using-pcluster-update-cluster-v3.md#update-policy-compute-login-v3)

### DefaultUserHome 财产
<a name="DeploymentSettings-cluster-v3-DefaultUserHome.property"></a>

如果设置为 `Shared`，则集群将使用默认设置，并通过 `/home/<default user>` 在集群中共享默认用户的目录。

如果设置为 `Local`，则头节点、登录节点和计算节点都将有一个单独的本地默认用户目录，该目录存储在 `local/home/<default user>` 中。

# 构建映像配置文件
<a name="image-builder-configuration-file-v3"></a>

AWS ParallelCluster 版本 3 使用 YAML 1.1 文件作为构建镜像配置参数。请确认缩进正确以减少配置错误。有关更多信息，请参阅 YAML 1.1 规范 ([https://yaml.org/spec/1.1/](https://yaml.org/spec/1.1/))。

这些配置文件用于定义如何使用 EC2 Image Buil AWS ParallelCluster der 构建您的自定义 AMI。使用 [`pcluster build-image`](pcluster.build-image-v3.md) 命令即可触发自定义 AMI 构建过程。有关一些示例配置文件，请参阅 aw [parallelcluster/tree/release-3.0/cli/tests/pcluster/schemas/test\$1imagebuilder\$1schema/tests-\$1imagebuild https://github.com/aws/ er\$1schema](https://github.com/aws/aws-parallelcluster/tree/release-3.0/cli/tests/pcluster/schemas/test_imagebuilder_schema/test_imagebuilder_schema)。

**Topics**
+ [构建映像配置文件属性](#build-image-v3.properties)
+ [`Build` 部分](Build-v3.md)
+ [`Image` 部分](build-Image-v3.md)
+ [`DeploymentSettings` 部分](DeploymentSettings-build-image-v3.md)

## 构建映像配置文件属性
<a name="build-image-v3.properties"></a>

`Region`（**可选**，`String`）  
 AWS 区域 为`build-image`操作指定。例如 `us-east-2`。

`CustomS3Bucket`（**可选**，`String`）  
指定在您的 AWS 账户中创建的 Amazon S3 存储桶的名称，该存储桶用于存储自定义 AMI 构建过程使用的资源和导出日志。图像使用的信息位于镜像配置的自定义存储桶中。 AWS ParallelCluster 在您创建集群的每个 AWS 区域中维护一个 Amazon S3 存储桶。默认情况下，这些 Amazon S3 存储桶命名为 `parallelcluster-hash-v1-DO-NOT-DELETE`。

# `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`， IMDSv2 则同时支持 IMDSv1 和。  
如果设置`ImdsSupport`为`v2.0`，则仅支持 IMDSv2 该选项。  
有关更多信息，请参阅《适用于 *Linux 实例的 Amazon EC2 用户指南》 IMDSv2*中的[使用](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)  
从 3.7.0 AWS ParallelCluster 版开始，`ImdsSupport`默认值为。`v2.0`我们建议您在自定义操作调 IMDSv1 用 IMDSv2 中设置`ImdsSupport`为`v2.0`并替换为。  
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`）  
用于支持 CloudFormation 自定义资源的 AWS Lambda 函数的 IAM 角色的 ARN，该资源将在构建完成后移除构建工件。需要将 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`）  
要用作 AWS ParallelCluster创建的所有角色的权限边界的 IAM 策略的 ARN。有关 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>

（**可选**）除了默认提供的 ImageBuilder 组件外，还指定要在 AMI 构建过程中使用的 Amazon EC2 组件 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 or s3 link that points to the script to use when you create the EC2 Image Builder com点。

### `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 依赖项兼容。  
例如，假设您要为内核版本 Y.0 和某个组件 AWS ParallelCluster 版本 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`。

# `Image` 部分
<a name="build-Image-v3"></a>

**（可选）**定义映像构建的映像属性。

```
Image:
  Name: string
  RootVolume:
    Size: integer
    Encrypted: boolean
    KmsKeyId: string
  Tags:
    - Key: string
      Value: string
```

## `Image` 属性
<a name="build-Image-v3.properties"></a>

`Name`（**可选**，`String`）  
指定 AMI 的名称。如果未指定，则使用调用 [`pcluster build-image`](pcluster.build-image-v3.md) 命令时使用的名称。

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

#### `Tags` 属性
<a name="build-Image-v3-Tags.properties"></a>

（**可选**）指定映像的键值对。

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

`Key`（**可选**，`String`）  
定义标签的名称。

`Value`（**可选**，`String`）  
定义标签的值。

### `RootVolume`
<a name="build-Image-v3-RootVolume"></a>

#### `RootVolume` 属性
<a name="build-Image-v3-RootVolume.properties"></a>

（**可选**）指定映像根卷的属性。

```
RootVolume:
  Size: integer
  Encrypted: boolean
  KmsKeyId: string
```

`Size`（**可选**，`Integer`）  
指定映像根卷的大小，以 GiB 为单位。默认大小为 [`ParentImage`](Build-v3.md#yaml-build-image-Build-ParentImage) 的大小加 27 GiB。

`Encrypted`（**可选**，`Boolean`）  
指定是否对卷进行加密。默认值为 `false`。

`KmsKeyId`（**可选**，`String`）  
指定用于加密卷的 AWS KMS 密钥的 ARN。格式为 `arn:Partition:kms:Region:Account:key/KeyId`。

# `DeploymentSettings` 部分
<a name="DeploymentSettings-build-image-v3"></a>

**注意**  
`DeploymentSettings`是从 3.4.0 AWS ParallelCluster 版本开始添加的。

**（可选）**指定部署设置配置。

```
DeploymentSettings:
  LambdaFunctionsVpcConfig:
    SecurityGroupIds:
      - string
    SubnetIds:
      - string
```

## `DeploymentSettings` 属性
<a name="DeploymentSettings-build-image-v3.properties"></a>

### `LambdaFunctionsVpcConfig`
<a name="DeploymentSettings-build-image-v3-LambdaFunctionsVpcConfig"></a>

**（可选）**指定 AWS Lambda 函数 VPC 配置。有关更多信息，请参阅 [AWS Lambda 中的 VPC 配置 AWS ParallelCluster](lambda-vpc-v3.md)。

```
LambdaFunctionsVpcConfig:
  SecurityGroupIds:
    - string
  SubnetIds:
    - string
```

#### `LambdaFunctionsVpcConfig properties`
<a name="DeploymentSettings-build-image-v3-LambdaFunctionsVpcConfig.properties"></a>

 `SecurityGroupIds`（**必需**，`[String]`）  
附加到 Lambda 函数 IDs 的 Amazon VPC 安全组列表。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

 `SubnetIds`（**必需**，`[String]`）  
附加 IDs 到 Lambda 函数的子网列表。  
[更新策略：如果更改此设置，则不允许更新。](using-pcluster-update-cluster-v3.md#update-policy-fail-v3)

**注意**  
子网和安全组必须位于同一 VPC。

# AWS ParallelCluster API 参考
<a name="api-ref-v3"></a>

本节提供每个 AWS ParallelCluster API 操作的描述、语法和用法示例。

**Topics**
+ [buildImage](build-image.md)
+ [createCluster](create-cluster.md)
+ [deleteCluster](delete-cluster.md)
+ [deleteClusterInstances](delete-cluster-instances.md)
+ [deleteImage](delete-image.md)
+ [describeCluster](describe-cluster.md)
+ [describeClusterInstances](describe-cluster-instances.md)
+ [describeComputeFleet](describe-compute-fleet.md)
+ [describeImage](describe-image.md)
+ [getClusterLog活动](get-cluster-log-events.md)
+ [getClusterStack活动](get-cluster-stack-events.md)
+ [getImageLog活动](get-image-log-events.md)
+ [getImageStack活动](get-image-stack-events.md)
+ [listClusters](list-clusters.md)
+ [listClusterLog直播](list-cluster-log-streams.md)
+ [listImageLog直播](list-image-log-streams.md)
+ [listImages](list-images.md)
+ [listOfficialImages](list-official-images.md)
+ [updateCluster](update-cluster.md)
+ [updateComputeFleet](update-compute-fleet.md)

# buildImage
<a name="build-image"></a>

在中创建自定义 AWS ParallelCluster 镜像 AWS 区域。

**Topics**
+ [请求语法](#build-image-request)
+ [请求正文](#build-image-request-body)
+ [响应语法](#build-image-response)
+ [响应正文](#build-image-response-body)
+ [示例](#build-image-example)

## 请求语法
<a name="build-image-request"></a>

```
POST /v3/images/custom
{
  "imageConfiguration": "string",
  "imageId": "string",
  "dryrun": boolean,
  "region": "string",
  "rollbackOnFailure": boolean,
  "supressValidators": [ "string" ],
  "validationFailureLevel": "string"
}
```

## 请求正文
<a name="build-image-request-body"></a>

**imageConfiguration**  
映像配置作为 YAML 文档。  
类型：字符串。  
必需：是

**imageId**  
要构建的映像的 ID。  
类型：字符串。  
必需：是

**dryrun**  
如果设置为 `true`，则仅执行请求验证而不创建任何资源。使用此参数可验证映像配置。默认值为 `false`。  
类型：布尔值  
必需：否

**region**  
你 AWS 区域 在其中运行命令来构建镜像。  
类型：字符串  
必需：否

**rollbackOnFailure**  
如果设置为 `true`，则在创建映像失败时会回滚映像堆栈。默认值为 `false`。  
类型：布尔值  
必需：否

**suppressValidators**  
标识一个或多个要禁止的配置验证器。  
类型：字符串列表  
格式：`(ALL|type:[A-Za-z0-9]+)`  
必需：否

**validationFailureLevel**  
导致映像构建失败的最低验证级别。默认值为 `ERROR`。  
类型：字符串  
有效值：`INFO | WARNING | ERROR`  
必需：否

## 响应语法
<a name="build-image-response"></a>

```
{
  "image": {
    "imageId": "string",
    "ec2AmiInfo": {
      "amiId": "string"
    },
    "region": "string",
    "version": "string",
    "cloudformationStackArn": "string",
    "imageBuildStatus": "BUILD_IN_PROGRESS",
    "cloudformationStackStatus": "CREATE_IN_PROGRESS"
  },
  "validationMessages": [
    {
      "id": "string",
      "type": "string",
      "level": "INFO",
      "message": "string"
    }
  ]
}
```

## 响应正文
<a name="build-image-response-body"></a>

**image**    
**imageId**  
映像的 ID。  
类型：字符串  
**cloudformationStackArn**  
主 CloudFormation 堆栈的亚马逊资源名称 (ARN)。  
类型：字符串  
**cloudformationStackStatus**  
堆 CloudFormation 栈状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE`  
**ec2 AmiInfo**    
**ami\$1id**  
亚马逊 EC2 AMI ID。  
类型：字符串  
**imageBuildStatus**  
映像构建状态。  
类型：字符串  
有效值：`BUILD_IN_PROGRESS | BUILD_FAILED | BUILD_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE`  
**区域**  
 AWS 区域 在其中构建镜像。  
类型：字符串  
**version**  
用于构建镜像的 AWS ParallelCluster 版本。  
类型：字符串

**validationMessages**  
验证级别低于 `validationFailureLevel` 的消息的列表。消息列表是在配置验证期间收集的。    
**id**  
验证器 ID。  
类型：字符串  
**level**  
验证级别。  
类型：字符串  
有效值：`INFO | WARNING | ERROR`  
**message**  
验证消息。  
类型：字符串  
**type**  
验证器的类型。  
类型：字符串

## 示例
<a name="build-image-example"></a>

------
#### [ Python ]

**请求**

```
$ build_image(custom-image-id, custom-image-config.yaml)
```

**200 响应**

```
{
  "image": {
    "cloudformation_stack_arn": "arn:aws:cloudformation:us-east-1:123456789012:stack/custom-image-id/711b76b0-af81-11ec-a29f-0ee549109f1f",
    "cloudformation_stack_status": "CREATE_IN_PROGRESS",
    "image_build_status": "BUILD_IN_PROGRESS",
    "image_id": "custom-image-id",
    "region": "us-east-1",
    "version": "3.2.1"
  }
}
```

------

# createCluster
<a name="create-cluster"></a>

在 AWS 区域中创建托管集群。

**Topics**
+ [请求语法](#create-cluster-request)
+ [请求正文](#create-cluster-request-body)
+ [响应语法](#create-cluster-response)
+ [响应正文](#create-cluster-response-body)
+ [示例](#create-cluster-example)

## 请求语法
<a name="create-cluster-request"></a>

```
POST /v3/clusters
{
  "clusterName": "string",
  "clusterConfiguration": "string",
  "dryrun": boolean,
  "region": "string",
  "rollbackOnFailure", boolean,
  "suppressValidators": [ "string" ],
  "validationFailureLevel": "string"
}
```

## 请求正文
<a name="create-cluster-request-body"></a>

**clusterConfiguration**  
集群配置作为 YAML 文档。  
类型：字符串。  
必需：是

**clusterName**  
要创建的集群的名称。  
名称必须以字母字符开头。名称最多可以包含 60 个字符。如果启用 Slurm 会计，则名称最多可包含 40 个字符。  
类型：字符串。  
必需：是

**dryrun**  
如果设置为`true`，则仅执行请求验证，但不创建任何资源。使用此参数可验证集群配置。默认值为 `false`。  
类型：布尔值  
必需：否

**region**  
 AWS 区域 集群所在的。  
类型：字符串  
必需：否

**rollbackOnFailure**  
如果设置为`true`，则在集群创建失败时会进行集群堆栈回滚。默认值为 `true`。  
类型：布尔值  
必需：否

**suppressValidators**  
标识一个或多个要禁止的配置验证器。  
类型：字符串列表  
格式：`(ALL|type:[A-Za-z0-9]+)`  
必需：否

**validationFailureLevel**  
导致集群创建失败的最低验证级别。默认值为 `ERROR`。  
类型：字符串  
有效值：`INFO | WARNING | ERROR`  
必需：否

## 响应语法
<a name="create-cluster-response"></a>

```
{
  "cluster": {
    "clusterName": "string",
    "region": "string",
    "version": "string",
    "cloudformationStackArn": "string",
    "cloudformationStackStatus": "CREATE_IN_PROGRESS",
    "clusterStatus": "CREATE_IN_PROGRESS",
    "scheduler": {
      "type": "string",
      "metadata": {
        "name": "string",
        "version": "string"
      }
    }
  },
  "validationMessages": [
    {
      "id": "string",
      "type": "string",
      "level": "INFO",
      "message": "string"
    }
  ]
}
```

## 响应正文
<a name="create-cluster-response-body"></a>

**clusterName**  
集群的名称。  
类型：字符串

**cloudformationStackArn**  
主 CloudFormation 堆栈的亚马逊资源名称 (ARN)。  
类型：字符串

**cloudformationStackStatus**  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE`

**clusterStatus**  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_FAILED`

**区域**  
创建 AWS 区域 集群时使用的。  
类型：字符串

**scheduler**    
**metadata**  
调度器元数据    
**名称**  
调度器的名称。  
类型：字符串  
**version**  
调度器版本。  
类型：字符串  
**type**  
调度器类型。  
类型：字符串

**version**  
用于创建集群的 AWS ParallelCluster 版本。  
类型：字符串

**validation\$1messages**  
验证级别低于 `validationFailureLevel` 的消息的列表。消息列表是在配置验证期间收集的。    
**id**  
验证器的 ID。  
类型：字符串  
**level**  
类型：字符串  
有效值：`INFO | WARNING | ERROR`  
**message**  
验证消息。  
类型：字符串  
**type**  
验证器的类型。  
类型：字符串

## 示例
<a name="create-cluster-example"></a>

------
#### [ Python ]

**请求**

```
$ create_cluster(cluster_name_3x, cluster-config.yaml)
```

**200 响应**

```
{
  "cluster": {
    "cloudformation_stack_arn": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-3x/e0462730-50b5-11ed-99a3-0a5ddc4a34c7",
    "cloudformation_stack_status": "CREATE_IN_PROGRESS",
    "cluster_name": "cluster-3x",
    "cluster_status": "CREATE_IN_PROGRESS",
    "region": "us-east-1",
    "scheduler": {
      "type": "slurm"
    },
    "version": "3.2.1"
  }
}
```

------

# deleteCluster
<a name="delete-cluster"></a>

开始删除集群。

**Topics**
+ [请求语法](#delete-cluster-request)
+ [请求正文](#delete-cluster-request-body)
+ [响应语法](#delete-cluster-response)
+ [响应正文](#delete-cluster-response-body)
+ [示例](#delete-cluster-example)

## 请求语法
<a name="delete-cluster-request"></a>

```
DELETE /v3/clusters/{clusterName}
{
  "region": "string"
}
```

## 请求正文
<a name="delete-cluster-request-body"></a>

**clusterName**  
集群的名称。  
类型：字符串。  
必需：是

**区域**  
 AWS 区域 在其中删除集群。  
类型：字符串  
必需：否

## 响应语法
<a name="delete-cluster-response"></a>

```
{
   "cluster": {
       "clusterName": "string",
       "region": "string",
       "version": "string",
       "cloudformationStackArn": "string",
       "cloudformationStackStatus": "DELETE_IN_PROGRESS",
       "clusterStatus": "DELETE_IN_PROGRESS",
       "scheduler": {
           "type": "string",
           "metadata": {
               "name": "string",
               "version": "string"
           }
        }
    }
}
```

## 响应正文
<a name="delete-cluster-response-body"></a>

**cluster**  
集群实例列表。    
**clusterName**  
集群的名称。  
类型：字符串  
**cloudformationStackArn**  
主 CloudFormation 堆栈的亚马逊资源名称 (ARN)。  
类型：字符串  
**cloudformationStackStatus**  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE`  
**clusterStatus**  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_FAILED`  
**区域**  
 AWS 区域 在其中创建集群。  
类型：字符串  
**scheduler**    
**metadata**  
调度器元数据。    
**名称**  
调度器的名称。  
类型：字符串  
**version**  
调度器版本。  
类型：字符串  
**type**  
调度器类型。  
类型：字符串  
**version**  
用于创建集群的 AWS ParallelCluster 版本。  
类型：字符串

## 示例
<a name="delete-cluster-example"></a>

------
#### [ Python ]

**请求**

```
$ delete_cluster(cluster_name_3x)
```

**200 响应**

```
{
  "cluster": {
    "cloudformation_stack_arn": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster_name_3x/16b49540-aee5-11ec-8e18-0ac1d712b241",
    "cloudformation_stack_status": "DELETE_IN_PROGRESS",
    "cluster_name": "cluster_name_3x",
    "cluster_status": "DELETE_IN_PROGRESS",
    "region": "us-east-1",
    "version": "3.2.1"
  }
}
```

------

# deleteClusterInstances
<a name="delete-cluster-instances"></a>

开始强制终止所有集群计算节点。此操作不支持 AWS Batch 集群。

**Topics**
+ [请求语法](#delete-cluster-instances-request)
+ [请求正文](#delete-cluster-instances-request-body)
+ [响应正文](#delete-cluster-instances-response-body)
+ [示例](#delete-cluster-instances-example)

## 请求语法
<a name="delete-cluster-instances-request"></a>

```
DELETE /v3/clusters/{clusterName}/instances
{
  "force": boolean,
  "region": "string"
}
```

## 请求正文
<a name="delete-cluster-instances-request-body"></a>

**clusterName**  
集群的名称。  
类型：字符串。  
必需：是

**force**  
如果设置为 `true`，则在找不到具有给定名称的集群时强制删除。默认值为 `false`。  
类型：布尔值  
必需：否

**region**  
 AWS 区域 集群所在的。  
类型：字符串  
必需：否

## 响应正文
<a name="delete-cluster-instances-response-body"></a>

无

## 示例
<a name="delete-cluster-instances-example"></a>

------
#### [ Python ]

**请求**

```
$ delete_cluster_instances(cluster_name_3x)
```

**200 响应**

无

------

# deleteImage
<a name="delete-image"></a>

开始删除自定义 AWS ParallelCluster 镜像。

**Topics**
+ [请求语法](#delete-image-request)
+ [请求正文](#delete-image-request-body)
+ [响应语法](#delete-image-response)
+ [响应正文](#delete-image-response-body)
+ [示例](#delete-image-example)

## 请求语法
<a name="delete-image-request"></a>

```
DELETE /v3/images/custom/{imageId}
{
  "force": boolean,
  "region": "string"
}
```

## 请求正文
<a name="delete-image-request-body"></a>

**imageId**  
映像的 ID。  
类型：字符串。  
必需：是

**force**  
如果设置为 `true`，则强制删除 AMI。如果有使用 AMI 的实例或者共享了 AMI，则使用此参数。默认值为 `false`。  
类型：布尔值  
必需：否

**region**  
图像 AWS 区域 是在其中创建的。  
类型：字符串  
必需：否

## 响应语法
<a name="delete-image-response"></a>

```
{
  "image": {
    "imageId": "string",
    "ec2AmiInfo": {
      "amiId": "string"
    },
    "region": "string",
    "version": "string",
    "cloudformationStackArn": "string",
    "imageBuildStatus": "DELETE_IN_PROGRESS",
    "cloudformationStackStatus": "DELETE_IN_PROGRESS"
  }
}
```

## 响应正文
<a name="delete-image-response-body"></a>

**image**    
**cloudformationStackArn**  
主 CloudFormation 堆栈的亚马逊资源名称 (ARN)。  
类型：字符串  
**cloudformationStackStatus**  
堆 CloudFormation 栈状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE`  
**ec2 AmiInfo**    
**amiId**  
亚马逊 EC2 AMI ID。  
类型：字符串  
**imageBuildStatus**  
映像构建状态。  
类型：字符串  
有效值：`BUILD_IN_PROGRESS | BUILD_FAILED | BUILD_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE`  
**imageId**  
映像的 ID。  
类型：字符串  
**区域**  
 AWS 区域 在其中创建镜像。  
类型：字符串  
**version**  
用于构建镜像的 AWS ParallelCluster 版本。  
类型：字符串

## 示例
<a name="delete-image-example"></a>

------
#### [ Python ]

**请求**

```
$ delete_image(custom-image-id)
```

**200 响应**

```
{
  "image": {
    "image_build_status": "DELETE_IN_PROGRESS",
    "image_id": "custom-image-id",
    "region": "us-east-1",
    "version": "3.2.1"
  }
}
```

------

# describeCluster
<a name="describe-cluster"></a>

获取有关现有集群的详细信息。

**Topics**
+ [请求语法](#describe-cluster-request)
+ [请求正文](#describe-cluster-request-body)
+ [响应语法](#describe-cluster-response)
+ [响应正文](#describe-cluster-response-body)
+ [示例](#describe-cluster-example)

## 请求语法
<a name="describe-cluster-request"></a>

```
GET /v3/clusters/{clusterName}
{
  "region": "string"
}
```

## 请求正文
<a name="describe-cluster-request-body"></a>

**clusterName**  
集群的名称。  
类型：字符串。  
必需：是

**区域**  
 AWS 区域 集群所在的。  
类型：字符串  
必需：否

## 响应语法
<a name="describe-cluster-response"></a>

**注意**  
`failureReason`已更改为`failures`从 3.5.0 AWS ParallelCluster 版本开始。

```
{
  "clusterName": "string",
  "region": "string",
  "version": "string",
  "cloudFormationStackStatus": "CREATE_IN_PROGRESS",
  "clusterStatus": "CREATE_IN_PROGRESS",
  "scheduler": {
    "type": "string",
    "metadata": {
      "name": "string",
      "version": "string"
    }
  },
  "cloudformationStackArn": "string",
  "creationTime": "2019-08-24T14:15:22Z",
  "lastUpdatedTime": "2019-08-24T14:15:22Z",
  "clusterConfiguration": {
    "url": "string"
  },
  "computeFleetStatus": "START_REQUESTED",
  "tags": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "headNode": {
    "instanceId": "string",
    "instanceType": "string",
    "launchTime": "2019-08-24T14:15:22Z",
    "privateIpAddress": "string",
    "publicIpAddress": "string",
    "state": "pending"
  },
  "failures": [
    {
      "failureCode": "string",
      "failureReason": "string"
    }
  ],
  "loginNodes": {      
    "status": "string",
    "address": "string",
    "poolName": "string",
    "scheme": "string",
    "healthyNodes": integer,
    "unhealthyNodes": integer
  }
}
```

## 响应正文
<a name="describe-cluster-response-body"></a>

**clusterName**  
集群的名称。  
类型：字符串

**cloudformationStackArn**  
主 CloudFormation 堆栈的亚马逊资源名称 (ARN)。  
类型：字符串

**cloudformationStackStatus**  
堆 CloudFormation 栈状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE`

**clusterConfiguration**    
**url**  
集群配置文件的 URL。  
类型：字符串

**clusterStatus**  
集群状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_FAILED`

**computeFleetStatus**  
计算实例集状态。  
类型：字符串  
有效值：`START_REQUESTED | STARTING | RUNNING | PROTECTED | STOP_REQUESTED | STOPPING | STOPPED | UNKNOWN | ENABLED | DISABLED`

**creationTime**  
创建集群时的时间戳。  
类型：日期时间

**lastUpdatedTime**  
上次更新集群时的时间戳。  
类型：日期时间

**区域**  
 AWS 区域 在其中创建集群。  
类型：字符串

**tags**  
与集群关联的标签的列表。    
**key**  
标签名称。  
类型：字符串  
**tag**  
标签值。  
类型：字符串

**version**  
用于创建集群的 AWS ParallelCluster 版本。  
类型：字符串

**failures**  
集群堆栈处于 `CREATE_FAILED` 状态时的故障列表。    
**failureCode**  
集群堆栈处于 `CREATE_FAILED` 状态时的故障代码。  
类型：字符串  
**failureReason**  
集群堆栈处于 `CREATE_FAILED` 状态时的故障原因。  
类型：字符串

**head\$1node**  
集群头节点。    
**instanceId**  
亚马逊 EC2 实例 ID。  
类型：字符串  
**instanceType**  
Amazon EC2 实例类型。  
类型：字符串  
**launchTime**  
Amazon EC2 实例的启动时间。  
类型：日期时间  
**privateIpAddress**  
集群私有 IP 地址。  
类型：字符串  
**publicIpAddress**  
集群公共 IP 地址。  
类型：字符串  
**状态**  
头节点实例状态。  
类型：字符串  
有效值：`pending | running | shutting-down | terminated | stopping | stopped`

**scheduler**    
**metadata**  
调度器元数据。    
**名称**  
调度器的名称。  
类型：字符串  
**version**  
调度器版本。  
类型：字符串

**loginNodes**    
status  
登录节点状态。  
类型：字符串  
有效值：`PENDING | FAILED | ACTIVE`  
address  
登录节点地址。  
类型：字符串  
poolName  
登录节点池名称。  
类型：字符串  
scheme  
登录节点方案。  
类型：字符串  
healthyNodes  
健康节点的数量。  
类型：整数  
unhealthyNodes  
不正常节点数。  
类型：整数

**type**  
调度器类型。  
类型：字符串

## 示例
<a name="describe-cluster-example"></a>

------
#### [ Python ]

**请求**

```
$ describe_cluster(cluster_name_3x)
```

**200 响应**

```
{
  "cloud_formation_stack_status": "CREATE_COMPLETE",
  "cloudformation_stack_arn": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster_name_3x/16b49540-aee5-11ec-8e18-0ac1d712b241",
  "cluster_configuration": {
    "url": "https://parallelcluster-...."
  },
  "cluster_name": "cluster_name_3x",
  "cluster_status": "CREATE_COMPLETE",
  "compute_fleet_status": "RUNNING",
  "creation_time": datetime.datetime(2022, 3, 28, 22, 19, 9, 661000, tzinfo=tzlocal()),
  "head_node": {
    "instance_id": "i-abcdef01234567890",
    "instance_type": "t2.micro",
    "launch_time": datetime.datetime(2022, 3, 28, 22, 21, 56, tzinfo=tzlocal()),
    "private_ip_address": "172.31.56.3",
    "public_ip_address": "107.23.100.164",
    "state": "running"
  },
  "last_updated_time": datetime.datetime(2022, 3, 28, 22, 19, 9, 661000, tzinfo=tzlocal()),
  "region": "us-east-1",
  "tags": [
    {
      "key": "parallelcluster:version", "value": "3.2.1"
    }
  ],
  "version": "3.2.1"
}
```

------

# describeClusterInstances
<a name="describe-cluster-instances"></a>

描述属于集群的实例。

**Topics**
+ [请求语法](#describe-cluster-instances-request)
+ [请求正文](#describe-cluster-instances-request-body)
+ [响应语法](#describe-cluster-instances-response)
+ [响应正文](#describe-cluster-instances-response-body)
+ [示例](#describe-cluster-instances-example)

## 请求语法
<a name="describe-cluster-instances-request"></a>

```
GET /v3/clusters/{clusterName}/instances
{
  "nextToken": "string",
  "nodeType": "string",
  "queueName": "string",
  "region": "string"
}
```

## 请求正文
<a name="describe-cluster-instances-request-body"></a>

**clusterName**  
集群的名称。  
类型：字符串。  
必需：是

**nextToken**  
用于获取下一组结果的令牌。  
类型：字符串  
必需：否

**nodeType**  
按节点类型筛选实例。  
类型：字符串  
有效值：`HeadNode`、`ComputeNode`、`LoginNode`  
必需：否

**queueName**  
按队列名称筛选实例。  
类型：字符串  
必需：否

**region**  
 AWS 区域 集群所在的。  
类型：字符串  
必需：否

## 响应语法
<a name="describe-cluster-instances-response"></a>

```
{
  "nextToken": "string",
  "instances": [
    {
      "instanceId": "string",
      "instanceType": "string",
      "launchTime": "2019-08-24T14:15:22Z",
      "privateIpAddress": "string",
      "publicIpAddress": "string",
      "state": "pending",
      "nodeType": "HeadNode",
      "queueName": "string",
      "poolName": "string"
    }
  ]
}
```

## 响应正文
<a name="describe-cluster-instances-response-body"></a>

**instances**  
集群实例列表。    
**instanceId**  
亚马逊 EC2 实例 ID。  
类型：字符串  
**instanceType**  
Amazon EC2 实例类型。  
类型：字符串  
**launchTime**  
Amazon EC2 实例的启动时间。  
类型：日期时间  
**nodeType**  
节点类型。  
类型：字符串  
有效值：`HeadNode`、`ComputeNode`、`LoginNode`  
**publicIpAddress**  
集群公共 IP 地址。  
类型：字符串  
**queueName**  
Amazon EC2 实例支持节点的队列名称。  
类型：字符串  
**状态**  
节点 Amazon EC2 实例状态。  
类型：字符串  
有效值：`pending | running | shutting-down | terminated | stopping | stopped`

**nextToken**  
用于检索下一组结果的令牌，没有更多结果时为 `null`。  
类型：字符串

## 示例
<a name="describe-cluster-instances-example"></a>

------
#### [ Python ]

**请求**

```
$ describe_cluster_instances(cluster_name_3x)
```

**200 响应**

```
{
  "instances": [
    {
      "instance_id": "i-abcdef01234567890",
      "instance_type": "t2.micro",
      "launch_time": datetime.datetime(2022, 3, 30, 14, 2, 7, tzinfo=tzlocal()),
      "node_type": "HeadNode",
      "private_ip_address": "192.0.2.5",
      "public_ip_address": "198.51.100.180",
      "state": "running"
    }
  ]
}
```

------

# describeComputeFleet
<a name="describe-compute-fleet"></a>

描述计算实例集的状态。

**Topics**
+ [请求语法](#describe-compute-fleet-request)
+ [请求正文](#describe-compute-fleet-request-body)
+ [响应语法](#describe-compute-fleet-response)
+ [响应正文](#describe-compute-fleet-response-body)
+ [示例](#describe-compute-fleet-example)

## 请求语法
<a name="describe-compute-fleet-request"></a>

```
GET /v3/clusters/{clusterName}/computefleet
{
  "region": "string"
}
```

## 请求正文
<a name="describe-compute-fleet-request-body"></a>

**clusterName**  
集群的名称。  
类型：字符串。  
必需：是

**区域**  
 AWS 区域 集群所在的。  
类型：字符串  
必需：否

## 响应语法
<a name="describe-compute-fleet-response"></a>

```
{
  "status": "START_REQUESTED",
  "lastStatusUpdatedTime": "2019-08-24T14:15:22Z"
}
```

## 响应正文
<a name="describe-compute-fleet-response-body"></a>

**状态**  
类型：字符串  
有效值：`START_REQUESTED | STARTING | RUNNING | PROTECTED | STOP_REQUESTED | STOPPING | STOPPED | UNKNOWN | ENABLED | DISABLED`

**lastStatusUpdated时间**  
代表上次状态更新时间的时间戳。  
类型：日期时间

## 示例
<a name="describe-compute-fleet-example"></a>

------
#### [ Python ]

**请求**

```
$ describe_compute_fleet(cluster_name_3x)
```

**200 响应**

```
{
  "last_status_updated_time": datetime.datetime(2022, 3, 28, 22, 27, 14, tzinfo=tzlocal()),
  "status": "RUNNING"
}
```

------

# describeImage
<a name="describe-image"></a>

获取有关现有映像的详细信息。

**Topics**
+ [请求语法](#describe-image-request)
+ [请求正文](#describe-image-request-body)
+ [响应语法](#describe-image-response)
+ [响应正文](#describe-image-response-body)
+ [示例](#describe-image-example)

## 请求语法
<a name="describe-image-request"></a>

```
GET /v3/images/custom/{imageId}
{
  "region": "string"
}
```

## 请求正文
<a name="describe-image-request-body"></a>

**imageId**  
映像的 ID。  
类型：字符串。  
必需：是

**区域**  
图像 AWS 区域 是在其中创建的。  
类型：字符串  
必需：否

## 响应语法
<a name="describe-image-response"></a>

```
{
  "imageId": "string",
  "region": "string",
  "version": "string",
  "imageBuildStatus": "BUILD_IN_PROGRESS",
  "imageBuildLogsArn": "string",
  "cloudformationStackStatus": "CREATE_IN_PROGRESS",
  "cloudformationStackStatusReason": "string",
  "cloudformationStackArn": "string",
  "creationTime": "2019-08-24T14:15:22Z",
  "cloudformationStackCreationTime": "2019-08-24T14:15:22Z",
  "cloudformationStackTags": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "imageConfiguration": {
    "url": "string"
  },
  "imagebuilderImageStatus": "PENDING",
  "imagebuilderImageStatusReason": "string",
  "ec2AmiInfo": {
    "amiId": "string",
    "tags": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "amiName": "string",
    "architecture": "string",
    "state": "PENDING",
    "description": "string"
  }
}
```

## 响应正文
<a name="describe-image-response-body"></a>

**imageId**  
要检索其详细信息的映像的 ID。  
类型：字符串

**imageBuildStatus**  
映像构建状态。  
类型：字符串  
有效值：`BUILD_IN_PROGRESS | BUILD_FAILED | BUILD_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE`

**imageConfiguration**    
**url**  
映像配置文件的 URL。  
类型：字符串

**区域**  
 AWS 区域 在其中创建镜像。  
类型：字符串

**version**  
用于构建镜像的 AWS ParallelCluster 版本。  
类型：字符串

**cloudformationStackArn**  
主 CloudFormation 堆栈的亚马逊资源名称 (ARN)。  
类型：字符串

**cloudformationStackCreation时间**  
 CloudFormation 堆栈的创建时间。  
类型：日期时间

**cloudformationStackStatus**  
堆 CloudFormation 栈状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE`

**cloudformationStackStatus原因**  
 CloudFormation 堆栈状态的原因。  
类型：字符串

**cloudformationStackTags**  
 CloudFormation 堆栈的标签列表。    
**键**  
标签名称。  
类型：字符串  
**value**  
标签值。  
类型：字符串

**creationTime**  
图像的创建时间。  
类型：日期时间

**ec2 AmiInfo**    
**amiId**  
亚马逊 EC2 AMI ID。  
类型：字符串  
**amiName**  
亚马逊 EC2 AMI 的名称。  
类型：字符串  
**架构**  
亚马逊 EC2 AMI 架构。  
类型：字符串  
**状态**  
亚马逊 EC2 AMI 的状态。  
类型：字符串  
有效值：`PENDING | AVAILABLE | INVALID | DEREGISTERED | TRANSIENT | FAILED | ERROR`  
**tags**  
亚马逊 EC2 AMI 标签列表。    
**key**  
标签名称。  
类型：字符串  
**值**  
标签值。  
类型：字符串

**imagebuilderImageStatus**  
 ImageBuilder 图像状态。  
类型：字符串  
有效值：`PENDING | CREATING | BUILDING | TESTING | DISTRIBUTING | INTEGRATING | AVAILABLE | CANCELLED | FAILED | DEPRECATED | DELETED`

**imagebuilderImageStatus原因**  
 ImageBuilder 图片处于该状态的原因。  
类型：字符串

**imageBuildLogsArn**  
映像构建过程日志的 Amazon 资源名称 (ARN)。  
类型：字符串

## 示例
<a name="describe-image-example"></a>

------
#### [ Python ]

**请求**

```
$ describe_image(custom-image-id)
```

**200 响应**

```
{
  "cloudformation_stack_arn": "arn:aws:cloudformation:us-east-1:123456789012:stack/custom-image-id/6accc570-b080-11ec-845e-0e2dc6386985",
  "cloudformation_stack_creation_time": datetime.datetime(2022, 3, 30, 23, 23, 33, 731000, tzinfo=tzlocal()),
  "cloudformation_stack_status": "CREATE_IN_PROGRESS",
  "cloudformation_stack_tags": [
    {
      "key": "parallelcluster:version", "value": "3.2.1"
    },
    {
      "key": "parallelcluster:image_name",
      "value": 'custom-image-id"
    },
    {
      "key": "parallelcluster:custom-image-id",
      "value": "custom-image-id"
    },
    {
      "key": 'parallelcluster:amzn-s3-demo-bucket",
      "value": 'amzn-s3-demo-bucket"
    },
    {
      "key": "parallelcluster:s3_image_dir",
      "value": "parallelcluster/3.2.1/images/custom-image-id-1234567890abcdef0"
    },
    {
      "key": "parallelcluster:build_log",
      "value": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-custom-image-id"
    },
    {
      "key": "parallelcluster:build_config",
      "value": "s3://amzn-s3-demo-bucket/parallelcluster/3.2.1/images/custom-image-id-1234567890abcdef0/configs/image-config.yaml"
    }
  ],
  "image_build_logs_arn": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-alinux2-image",
  "image_build_status": "BUILD_IN_PROGRESS",
  "image_configuration": {
    "url": "https://amzn-s3-demo-bucket.s3.amazonaws.com/parallelcluster/3.2.1/images/custom-image-id-1234567890abcdef0/configs/image-config.yaml?..."
  },
  "image_id": 'custom-image-id',
  "imagebuilder_image_status": "PENDING",
  "region": "us-east-1",
  "version": "3.2.1"
}
```

------

# getClusterLog活动
<a name="get-cluster-log-events"></a>

检索与日志流关联的事件。

**Topics**
+ [请求语法](#get-cluster-log-events-request)
+ [请求正文](#get-cluster-log-events-request-body)
+ [响应语法](#get-cluster-log-events-response)
+ [响应正文](#get-cluster-log-events-response-body)
+ [示例](#get-cluster-log-events-example)

## 请求语法
<a name="get-cluster-log-events-request"></a>

```
GET /v3/clusters/{clusterName}/logstreams/{logStreamName}
{
  "endTime": datetime,
  "limit": float,
  "nextToken": "string",
  "region": "string",
  "startFromHead": boolean,
  "startTime": datetime
}
```

## 请求正文
<a name="get-cluster-log-events-request-body"></a>

**clusterName**  
集群的名称。  
类型：字符串。  
必需：是

**logStreamName**  
日志流的名称。  
类型：字符串。  
必需：是

**endTime**  
时间范围的结束，以 ISO 8601 格式表示。不包括时间戳等于或晚于该时间的事件。  
类型：日期时间  
格式：`2021-01-01T20:00:00Z`  
必需：否

**limit**  
返回的日志事件的最大数目。如果您不指定值，则最大值是响应大小为 1 MB 或最多 10,000 个日志事件中可以容纳的日志事件数。  
类型：浮点数  
必需：否

**nextToken**  
用于获取下一组结果的令牌。  
类型：字符串  
必需：否

**region**  
 AWS 区域 集群所在的。  
类型：字符串  
必需：否

**startFromHead**  
如果设置为 `true`，则最先返回最早的日志事件。如果值为 `false`，则最先返回最新的日志事件。默认值为 `false`。  
类型：布尔值  
必需：否

**startTime**  
时间范围的开始，以 ISO 8601 格式表示。包括时间戳等于或晚于该时间的事件。  
类型：日期时间  
格式：`2021-01-01T20:00:00Z`  
必需：否

## 响应语法
<a name="get-cluster-log-events-response"></a>

```
{
  "nextToken": "string",
  "prevToken": "string",
  "events": [
    {
      "timestamp": "2019-08-24T14:15:22Z",
      "message": "string"
    }
  ]
}
```

## 响应正文
<a name="get-cluster-log-events-response-body"></a>

**events**  
筛选的事件的列表。    
**message**  
事件消息。  
类型：字符串  
**timestamp**  
事件时间戳。  
类型：日期时间

**nextToken**  
用于检索下一组结果的令牌，没有更多结果时为 `null`。  
类型：字符串

**prevToken**  
一种标记，可用于检索前一组结果，`null`或者在没有其他结果时使用。  
类型：字符串

## 示例
<a name="get-cluster-log-events-example"></a>

------
#### [ Python ]

**请求**

```
$ get_cluster_log_events(cluster_name_3x, log_stream_name=ip-192-0-2-26.i-abcdef01234567890.cfn-init)
```

**200 响应**

```
"events": [
  {
    "message": "2022-09-22 16:40:15,127 [DEBUG] CloudFormation client initialized with endpoint https://cloudformation.us-east-1.amazonaws.com",
    "timestamp": "2022-09-22T16:40:15.127Z"
  },
  {
    "message": "2022-09-22 16:40:15,127 [DEBUG] Describing resource HeadNodeLaunchTemplate in stack cluster_name_3x",
    "timestamp": "2022-09-22T16:40:15.127Z"
  },
  ...
]
```

------

# getClusterStack活动
<a name="get-cluster-stack-events"></a>

检索与集群的堆栈关联的事件。

**注意**  
从 3.6.0 版开始， AWS ParallelCluster 使用嵌套堆栈来创建与队列和计算资源关联的资源。`GetClusterStackEvents` API 和 `pcluster get-cluster-stack-events` 命令仅返回集群主堆栈事件。您可以在 CloudFormation 控制台中查看集群堆栈事件，包括与队列和计算资源相关的事件。

**Topics**
+ [请求语法](#get-cluster-stack-events-request)
+ [请求正文](#get-cluster-stack-events-request-body)
+ [响应语法](#get-cluster-stack-events-response)
+ [响应正文](#get-cluster-stack-events-response-body)
+ [示例](#get-cluster-stack-events-example)

## 请求语法
<a name="get-cluster-stack-events-request"></a>

```
GET /v3/clusters/{clusterName}/stackevents
{
  "nextToken": "string",
  "region": "string"
}
```

## 请求正文
<a name="get-cluster-stack-events-request-body"></a>

**clusterName**  
集群的名称。  
类型：字符串。  
必需：是

**nextToken**  
用于获取下一组结果的令牌。  
类型：字符串  
必需：否

**region**  
 AWS 区域 集群所在的。  
类型：字符串  
必需：否

## 响应语法
<a name="get-cluster-stack-events-response"></a>

```
{
  "nextToken": "string",
  "events": [
    {
      "stackId": "string",
      "eventId": "string",
      "stackName": "string",
      "logicalResourceId": "string",
      "physicalResourceId": "string",
      "resourceType": "string",
      "timestamp": "2019-08-24T14:15:22Z",
      "resourceStatus": "CREATE_IN_PROGRESS",
      "resourceStatusReason": "string",
      "resourceProperties": "string",
      "clientRequestToken": "string"
    }
  ]
}
```

## 响应正文
<a name="get-cluster-stack-events-response-body"></a>

**events**  
筛选的事件的列表。    
**clientRequestToken**  
传递给生成此事件的操作的令牌。  
类型：字符串  
**eventId**  
此事件的唯一 ID。  
类型：字符串  
**logicalResourceId**  
模板中指定资源的逻辑名称。  
类型：字符串  
**physicalResourceId**  
与资源的物理实例关联的名称或唯一标识符。  
类型：字符串  
**resourceProperties**  
用于创建资源的属性的 BLOB。  
类型：字符串  
**resourceStatus**  
资源状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | DELETE_SKIPPED | UPDATE_IN_PROGRESS | UPDATE_FAILED | UPDATE_COMPLETE | IMPORT_FAILED | IMPORT_COMPLETE | IMPORT_IN_PROGRESS | IMPORT_ROLLBACK_IN_PROGRESS | IMPORT_ROLLBACK_FAILED | IMPORT_ROLLBACK_COMPLETE`  
**resourceStatusReason**  
与资源关联的成功或失败消息。  
类型：字符串  
**resourceType**  
资源的类型。  
类型：字符串  
**stackId**  
堆栈实例的唯一 ID 名称。  
类型：字符串  
**stackName**  
与堆栈关联的名称。  
类型：字符串  
**timestamp**  
上次更新状态的时间。  
类型：日期时间

**nextToken**  
用于检索下一组结果的令牌，没有更多结果时为 `null`。  
类型：字符串

## 示例
<a name="get-cluster-stack-events-example"></a>

------
#### [ Python ]

**请求**

```
$ get_cluster_stack_events(cluster_name_3x)
```

**200 响应**

```
{
  "events": [
    {
      "event_id": "590b3820-b081-11ec-985e-0a7af5751497",
      "logical_resource_id": "cluster_name_3x",
      "physical_resource_id": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster_name_3x/11a59710-b080-11ec-b8bd-129def1380e9",
      "resource_status": "CREATE_COMPLETE",
      "resource_type": "AWS::CloudFormation::Stack",
      "stack_id": "arn:aws:cloudformation:us-east-1:123456789012:stack/cluster_name_3x/11a59710-b080-11ec-b8bd-129def1380e9",
      "stack_name": "cluster_name_3x",
      "timestamp": datetime.datetime(2022, 3, 30, 23, 30, 13, 268000, tzinfo=tzlocal())
    },
    ...
  ]
}
```

------

# getImageLog活动
<a name="get-image-log-events"></a>

检索与映像构建关联的事件。

**Topics**
+ [请求语法](#get-image-log-events-request)
+ [请求正文](#get-image-log-events-request-body)
+ [响应语法](#get-image-log-events-response)
+ [响应正文](#get-image-log-events-response-body)
+ [示例](#get-image-log-events-example)

## 请求语法
<a name="get-image-log-events-request"></a>

```
GET /v3/images/custom/{imageId}/logstreams/{logStreamName}
{
  "endTime": datetime,
  "limit": float,
  "nextToken": "string",
  "region": "string",
  "startFromHead": boolean,
  "startTime": datetime
}
```

## 请求正文
<a name="get-image-log-events-request-body"></a>

**imageId**  
映像的 ID。  
类型：字符串。  
必需：是

**logStreamName**  
日志流的名称。  
类型：字符串。  
必需：是

**endTime**  
时间范围的结束，以 ISO 8601 格式表示。不包括时间戳等于或晚于该时间的事件。  
类型：日期时间  
格式：`2021-01-01T20:00:00Z`  
必需：否

**limit**  
返回的日志事件的最大数目。如果不指定值，则最大值为 1 MB 的响应大小所能容纳的日志事件数量，最多可达 10000 个日志事件。  
类型：浮点数  
必需：否

**nextToken**  
用于获取下一组结果的令牌。  
类型：字符串  
必需：否

**region**  
 AWS 区域 那张图片在里面。  
类型：字符串  
必需：否

**startFromHead**  
如果设置为 `true`，则最先返回最早的日志事件。如果设置为 false，则最先返回最新的日志事件。默认值为 `false`。  
类型：布尔值  
必需：否

**startTime**  
时间范围的开始，以 ISO 8601 格式表示。包括时间戳等于或晚于该时间的事件。  
类型：日期时间  
格式：`2021-01-01T20:00:00Z`  
必需：否

## 响应语法
<a name="get-image-log-events-response"></a>

```
{
  "nextToken": "string",
  "prevToken": "string",
  "events": [
    {
      "timestamp": "2019-08-24T14:15:22Z",
      "message": "string"
    }
  ]
}
```

## 响应正文
<a name="get-image-log-events-response-body"></a>

**events**  
筛选的事件的列表。    
**message**  
事件消息。  
类型：字符串  
**timestamp**  
事件时间戳。  
类型：日期时间

**nextToken**  
用于检索下一组结果的令牌，没有更多结果时为 `null`。  
类型：字符串

**prevToken**  
一种标记，可用于检索前一组结果，`null`或者在没有其他结果时使用。  
类型：字符串

## 示例
<a name="get-image-log-events-example"></a>

------
#### [ Python ]

**请求**

```
$ get_image_log_events(image_id, log_stream_name=3.2.1/1)
```

**200 响应**

```
"events": [
  {
    "message": "ExecuteBash: STARTED EXECUTION",
    "timestamp": 2022-04-05T15:51:20.228Z"
  },
  {
    "message": "ExecuteBash: Created temporary directory: /tmp/1234567890abcdef0",
    "timestamp": "2022-04-05T15:51:20.228Z"
  },
  ...
]
```

------

# getImageStack活动
<a name="get-image-stack-events"></a>

检索与映像构建的堆栈关联的事件。

**Topics**
+ [请求语法](#get-image-stack-events-request)
+ [请求正文](#get-image-stack-events-request-body)
+ [响应语法](#get-image-stack-events-response)
+ [响应正文](#get-image-stack-events-response-body)
+ [示例](#get-image-stack-events-example)

## 请求语法
<a name="get-image-stack-events-request"></a>

```
GET /v3/images/custom/{imageId}/stackevents
{
  "nextToken": "string",
  "region": "string"
}
```

## 请求正文
<a name="get-image-stack-events-request-body"></a>

**imageId**  
映像的 ID。  
类型：字符串。  
必需：是

**nextToken**  
用于获取下一组结果的令牌。  
类型：字符串  
必需：否

**region**  
图像所在 AWS 区域 的那个。  
类型：字符串  
必需：否

## 响应语法
<a name="get-image-stack-events-response"></a>

```
{
  "nextToken": "string",
  "events": [
    {
      "stackId": "string",
      "eventId": "string",
      "stackName": "string",
      "logicalResourceId": "string",
      "physicalResourceId": "string",
      "resourceType": "string",
      "timestamp": "2019-08-24T14:15:22Z",
      "resourceStatus": "CREATE_IN_PROGRESS",
      "resourceStatusReason": "string",
      "resourceProperties": "string",
      "clientRequestToken": "string"
    }
  ]
}
```

## 响应正文
<a name="get-image-stack-events-response-body"></a>

**events**  
筛选的事件的列表。    
**clientRequestToken**  
传递给生成此事件的操作的令牌。  
类型：字符串  
**eventId**  
此事件的唯一 ID。  
类型：字符串  
**logicalResourceId**  
模板中指定资源的逻辑名称。  
类型：字符串  
**physicalResourceId**  
与资源的物理实例关联的名称或唯一标识符。  
类型：字符串  
**resourceProperties**  
用于创建资源的属性的 BLOB。  
类型：字符串  
**resourceStatus**  
资源状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | DELETE_SKIPPED | UPDATE_IN_PROGRESS | UPDATE_FAILED | UPDATE_COMPLETE | IMPORT_FAILED | IMPORT_COMPLETE | IMPORT_IN_PROGRESS | IMPORT_ROLLBACK_IN_PROGRESS | IMPORT_ROLLBACK_FAILED | IMPORT_ROLLBACK_COMPLETE`  
**resourceStatusReason**  
与资源关联的成功或失败消息。  
类型：字符串  
**resourceType**  
资源的类型。  
类型：字符串  
**stackId**  
堆栈实例的唯一 ID 名称。  
类型：字符串  
**stackName**  
与堆栈关联的名称。  
类型：字符串  
**timestamp**  
上次更新状态的时间。  
类型：日期时间

**nextToken**  
用于检索下一组结果的令牌，没有更多结果时为 `null`。  
类型：字符串

## 示例
<a name="get-image-stack-events-example"></a>

------
#### [ Python ]

**请求**

```
$ get_image_stack_events(image_id)
```

**200 响应**

```
{
  'events': [
    {
      'event_id': 'ParallelClusterImage-CREATE_IN_PROGRESS-2022-03-30T23:26:33.499Z',
      'logical_resource_id': 'ParallelClusterImage',
      'physical_resource_id': 'arn:aws:imagebuilder:us-east-1:123456789012:image/parallelclusterimage-alinux2-image/3.2.1/1',
      'resource_properties': {
        "InfrastructureConfigurationArn":"arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/parallelclusterimage-6accc570-b080-11ec-845e-0e2dc6386985",
        "ImageRecipeArn":"arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/parallelclusterimage-alinux2-image/3.2.1",
        "DistributionConfigurationArn":"arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/parallelclusterimage-6accc570-b080-11ec-845e-0e2dc6386985",
        "EnhancedImageMetadataEnabled":"false",
        "Tags": {
          "parallelcluster:image_name":"alinux2-image","parallelcluster:image_id":"alinux2-image"
        }
      },
      'resource_status': 'CREATE_IN_PROGRESS',
      'resource_status_reason': 'Resource creation Initiated',
      'resource_type': 'AWS::ImageBuilder::Image',
      'stack_id': 'arn:aws:cloudformation:us-east-1:123456789012:stack/alinux2-image/6accc570-b080-11ec-845e-0e2dc6386985',
      'stack_name': 'alinux2-image',
      'timestamp': datetime.datetime(2022, 3, 30, 23, 26, 33, 499000, tzinfo=tzlocal())
    },
    ...
  ]
}
```

------

# listClusters
<a name="list-clusters"></a>

检索现有集群的列表。

**Topics**
+ [请求语法](#list-clusters-request)
+ [请求正文](#list-clusters-request-body)
+ [响应语法](#list-clusters-response)
+ [响应正文](#list-clusters-response-body)
+ [示例](#list-clusters-example)

## 请求语法
<a name="list-clusters-request"></a>

```
GET /v3/clusters
{
  "clusterStatus": "string",
  "nextToken": "string",
  "region": "string"
}
```

## 请求正文
<a name="list-clusters-request-body"></a>

**clusterStatus**  
按集群状态筛选。默认为所有集群。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | UPDATE_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_FAILED`  
必需：否

**nextToken**  
用于获取下一组结果的令牌。  
类型：字符串  
必需：否

**region**  
集 AWS 区域 群中的。  
类型：字符串  
必需：否

## 响应语法
<a name="list-clusters-response"></a>

```
{
  "nextToken": "string",
  "clusters": [
    {
      "clusterName": "string",
      "region": "string",
      "version": "string",
      "cloudformationStackArn": "string",
      "cloudformationStackStatus": "CREATE_IN_PROGRESS",
      "clusterStatus": "CREATE_IN_PROGRESS",
      "scheduler": {
        "type": "string",
        "metadata": {
          "name": "string",
          "version": "string"
        }
      }
    }
  ]
}
```

## 响应正文
<a name="list-clusters-response-body"></a>

**clusters**    
**cloudformationStackArn**  
主 CloudFormation 堆栈的亚马逊资源名称 (ARN)。  
类型：字符串  
**cloudformationStackStatus**  
堆 CloudFormation 栈状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE`  
**clusterName**  
集群的名称。  
类型：字符串  
**clusterStatus**  
集群状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_FAILED`  
**scheduler**    
**metadata**  
调度器元数据。    
**名称**  
调度器的名称。  
类型：字符串  
**version**  
调度器版本。  
类型：字符串  
**type**  
调度器的类型。  
类型：字符串  
**区域**  
 AWS 区域 在其中创建集群。  
类型：字符串  
**version**  
用于创建集群的 AWS ParallelCluster 版本。  
类型：字符串

**nextToken**  
用于检索下一组结果的令牌，没有更多结果时为 `null`。  
类型：字符串

## 示例
<a name="list-clusters-example"></a>

------
#### [ Python ]

**请求**

```
$ list_clusters()
```

**200 响应**

```
{
  'clusters': 
   [
      {
        'cloudformation_stack_arn': 'arn:aws:cloudformation:us-east-1:123456789012:stack/cluster_name_3x/16b49540-aee5-11ec-8e18-0ac1d712b241',
        'cloudformation_stack_status': 'CREATE_COMPLETE',
        'cluster_name': 'cluster_name_3x',
        'cluster_status': 'CREATE_COMPLETE',
        'region': 'us-east-1',
        'version': '3.2.1'
      },
      ...
   ]
}
```

------

# listClusterLog直播
<a name="list-cluster-log-streams"></a>

检索与集群关联的日志流的列表。

**Topics**
+ [请求语法](#list-cluster-log-streams-request)
+ [请求正文](#list-cluster-log-streams-request-body)
+ [响应语法](#list-cluster-log-streams-response)
+ [响应正文](#list-cluster-log-streams-response-body)
+ [示例](#list-cluster-log-streams-example)

## 请求语法
<a name="list-cluster-log-streams-request"></a>

```
GET /v3/clusters/{clusterName}/logstreams
{
  "filters": [ "string" ],
  "nextToken": "string",
  "region": "string"
}
```

## 请求正文
<a name="list-cluster-log-streams-request-body"></a>

**clusterName**  
集群的名称。  
类型：字符串。  
必需：是

**filters**  
筛选日志流。  
可接受的筛选器包括：  
+ private-dns-name：实例私有 DNS 名称的缩写形式（例如 ip-10-0-0-0-101）。
+ node-type：有效值：`HeadNode`。
类型：字符串数组，唯一  
格式：`Name=a,Values=1 Name=b,Values=2,3`  
必需：否

**nextToken**  
用于获取下一组结果的令牌。  
类型：字符串  
必需：否

**region**  
 AWS 区域 集群所在的。  
类型：字符串  
必需：否

## 响应语法
<a name="list-cluster-log-streams-response"></a>

```
{
  "nextToken": "string",
  "logStreams": [
    {
      "logStreamName": "string",
      "creationTime": "2019-08-24T14:15:22Z",
      "firstEventTimestamp": "2019-08-24T14:15:22Z",
      "lastEventTimestamp": "2019-08-24T14:15:22Z",
      "lastIngestionTime": "2019-08-24T14:15:22Z",
      "uploadSequenceToken": "string",
      "logStreamArn": "string"
    }
  ]
}
```

## 响应正文
<a name="list-cluster-log-streams-response-body"></a>

**logStreams**  
日志流的列表。    
**creationTime**  
创建流的时间。  
类型：日期时间  
**firstEventTimestamp**  
流中第一个事件的时间。  
类型：日期时间  
**lastEventTimestamp**  
流中最后一个事件的时间。该 lastEventTime 值以最终一致性为基础进行更新。它通常会在摄取后不到一小时内更新，但在极少数情况下可能需要更长时间。  
类型：日期时间  
**lastIngestionTime**  
上次摄取时间。  
类型：日期时间  
**logStreamArn**  
日志流的 Amazon 资源名称 (ARN)。  
类型：字符串  
**logStreamName**  
日志流的名称。  
类型：字符串  
**uploadSequenceToken**  
序列令牌。  
类型：字符串

**nextToken**  
用于检索下一组结果的令牌，没有更多结果时为 `null`。  
类型：字符串

## 示例
<a name="list-cluster-log-streams-example"></a>

------
#### [ Python ]

**请求**

```
$ list_cluster_log_streams(cluster_name_3x)
```

**200 响应**

```
{
  'log_streams': [
      {
        'creation_time': datetime.datetime(2022, 3, 30, 14, 7, 34, 354000, tzinfo=tzlocal()),
        'first_event_timestamp': datetime.datetime(2022, 3, 30, 14, 6, 41, 444000, tzinfo=tzlocal()),
        'last_event_timestamp': datetime.datetime(2022, 3, 30, 14, 25, 55, 462000, tzinfo=tzlocal()),
        'last_ingestion_time': datetime.datetime(2022, 3, 30, 14, 49, 50, 62000, tzinfo=tzlocal()),
        'log_stream_arn': 'arn:aws:logs:us-east-1:123456789012:log-group:/aws/parallelcluster/cluster_name_3x:log-stream:ip-192-0-2-26.i-abcdef01234567890.cfn-init',
        'log_stream_name': 'ip-192-0-2-26.i-abcdef01234567890.cfn-init',
         ...
        'upload_sequence_token': '####'
      },
      ...
   ]
}
```

------

# listImageLog直播
<a name="list-image-log-streams"></a>

检索与映像关联的日志流的列表。

**Topics**
+ [请求语法](#list-image-log-streams-request)
+ [请求正文](#list-image-log-streams-request-body)
+ [响应语法](#list-image-log-streams-response)
+ [响应正文](#list-image-log-streams-response-body)
+ [示例](#list-image-log-streams-example)

## 请求语法
<a name="list-image-log-streams-request"></a>

```
GET /v3/images/custom/{imageId}/logstreams
{
  "nextToken": "string",
  "region": "string"
}
```

## 请求正文
<a name="list-image-log-streams-request-body"></a>

**imageId**  
映像的 ID。  
类型：字符串。  
必需：是

**nextToken**  
用于获取下一组结果的令牌。  
类型：字符串  
必需：否

**region**  
图像所在 AWS 区域 的那个。  
类型：字符串  
必需：否

## 响应语法
<a name="list-image-log-streams-response"></a>

```
{
  "nextToken": "string",
  "logStreams": [
    {
      "logStreamName": "string",
      "creationTime": "2019-08-24T14:15:22Z",
      "firstEventTimestamp": "2019-08-24T14:15:22Z",
      "lastEventTimestamp": "2019-08-24T14:15:22Z",
      "lastIngestionTime": "2019-08-24T14:15:22Z",
      "uploadSequenceToken": "string",
      "logStreamArn": "string"
    }
  ]
}
```

## 响应正文
<a name="list-image-log-streams-response-body"></a>

**logStreams**  
日志流的列表。    
**creationTime**  
创建流的时间。  
类型：日期时间  
**firstEventTimestamp**  
流中第一个事件的时间。  
类型：日期时间  
**lastEventTimestamp**  
流中最后一个事件的时间。该 lastEventTime 值以最终一致性为基础进行更新。它通常会在摄取后不到一小时内更新，但在极少数情况下可能需要更长时间。  
类型：日期时间  
**lastIngestionTime**  
上次摄取时间。  
类型：日期时间  
**logStreamArn**  
日志流的 Amazon 资源名称 (ARN)。  
类型：字符串  
**logStreamName**  
日志流的名称。  
类型：字符串  
**uploadSequenceToken**  
序列令牌。  
类型：字符串

**next\$1token**  
用于检索下一组结果的令牌，没有更多结果时为 `null`。  
类型：字符串

## 示例
<a name="list-image-log-streams-example"></a>

------
#### [ Python ]

**请求**

```
$ list_image_log_streams(custom-image-id)
```

**200 响应**

```
{
  'log_streams': [
    {
      'creation_time': datetime.datetime(2022, 3, 29, 20, 29, 24, 875000, tzinfo=tzlocal()),
      'first_event_timestamp': datetime.datetime(2022, 3, 29, 20, 29, 24, 775000, tzinfo=tzlocal()),
      'last_event_timestamp': datetime.datetime(2022, 3, 29, 20, 38, 23, 944000, tzinfo=tzlocal()),
      'last_ingestion_time': datetime.datetime(2022, 3, 29, 20, 51, 56, 26000, tzinfo=tzlocal()),
      'log_stream_arn': 'arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-alinux2-image:log-stream:3.2.1/1',
      'log_stream_name': '3.2.1/1',
      'upload_sequence_token': '####'
    },
    ...
  ]
}
```

------

# listImages
<a name="list-images"></a>

检索现有自定义映像的列表。

**Topics**
+ [请求语法](#list-images-request)
+ [请求正文](#list-images-request-body)
+ [响应语法](#list-images-response)
+ [响应正文](#list-images-response-body)
+ [示例](#list-images-example)

## 请求语法
<a name="list-images-request"></a>

```
GET /images/custom
{
  "imageStatus": "string",
  "nextToken": "string",
  "region": "string"
}
```

## 请求正文
<a name="list-images-request-body"></a>

**imageStatus**  
按提供的状态筛选映像。  
类型：字符串  
有效值：`AVAILABLE | PENDING | FAILED`  
必需：是

**nextToken**  
用于获取下一组结果的令牌。  
类型：字符串  
必需：否

**region**  
 AWS 区域 那张图片在里面。  
类型：字符串  
必需：否

## 响应语法
<a name="list-images-response"></a>

```
{
  "nextToken": "string",
  "images": [
    {
      "imageId": "string",
      "ec2AmiInfo": {
        "amiId": "string"
      },
      "region": "string",
      "version": "string",
      "cloudformationStackArn": "string",
      "imageBuildStatus": "BUILD_IN_PROGRESS",
      "cloudformationStackStatus": "CREATE_IN_PROGRESS"
    }
  ]
}
```

## 响应正文
<a name="list-images-response-body"></a>

**images**  
映像的列表。    
**cloudformationStackArn**  
主 CloudFormation 堆栈的亚马逊资源名称 (ARN)。  
类型：字符串  
**cloudformationStackStatus**  
堆 CloudFormation 栈状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE`  
**ec2 AmiInfo**    
**ami\$1id**  
亚马逊 EC2 AMI ID。  
类型：字符串  
**imageBuildStatus**  
映像构建状态。  
有效值：`BUILD_IN_PROGRESS | BUILD_FAILED | BUILD_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE`  
类型：字符串  
**imageId**  
映像的 ID。  
类型：字符串  
**区域**  
 AWS 区域 在其中创建镜像。  
类型：字符串  
**version**  
用于构建镜像的 AWS ParallelCluster 版本。  
类型：字符串

**nextToken**  
用于检索下一组结果的令牌，没有更多结果时为 `null`。  
类型：字符串

## 示例
<a name="list-images-example"></a>

------
#### [ Python ]

**请求**

```
$ list_images("AVAILABLE")
```

**200 响应**

```
{
  'images': [
    {
      'ec2_ami_info': {
        'ami_id': 'ami-abcdef01234567890'
      },
      'image_build_status': 'BUILD_COMPLETE',
      'image_id': 'custom-image',
      'region': 'us-east-1',
      'version': '3.2.1'
    }
  ]
}
```

------

# listOfficialImages
<a name="list-official-images"></a>

检索 AWS ParallelCluster 官方图片列表。

**Topics**
+ [请求语法](#list-official-images-request)
+ [请求正文](#list-official-images-request-body)
+ [响应语法](#list-official-images-response)
+ [响应正文](#list-official-images-response-body)
+ [示例](#list-official-images-example)

## 请求语法
<a name="list-official-images-request"></a>

```
GET /v3/images/official
{  
  "architecture": "string",
  "os": "string",
  "region": "string"
}
```

## 请求正文
<a name="list-official-images-request-body"></a>

**架构**  
按架构筛选。默认为不筛选。  
类型：字符串  
有效值：`x86_64 | arm64`  
必需：否

**os**  
按操作系统分发进行筛选。默认为不筛选。  
类型：字符串  
有效值：`alinux2 | alinux2023 | ubuntu2404 | ubuntu2204 | rhel8 | rhel9`  
必需：否

**region**  
其中 AWS 区域 列出了官方图片。  
类型：字符串  
必需：否

## 响应语法
<a name="list-official-images-response"></a>

```
{
  "images": [
    {
      "architecture": "string",
      "amiId": "string",
      "name": "string",
      "os": "string",
      "version": "string"
    }
  ]
}
```

## 响应正文
<a name="list-official-images-response-body"></a>

**images**    
**amiId**  
AMI 的 ID。  
类型：字符串  
**架构**  
AMI 架构。  
类型：字符串  
**名称**  
AMI 的名称。  
类型：字符串  
**os**  
AMI 操作系统。  
类型：字符串  
**version**  
 AWS ParallelCluster 版本。  
类型：字符串

## 示例
<a name="list-official-images-example"></a>

------
#### [ Python ]

**请求**

```
$ list_official_images()
```

**200 响应**

```
{
  'images': [ 
    {
      'ami_id': 'ami-015cfeb4e0d6306b2',
      'architecture': 'x86_64',
      'name': 'aws-parallelcluster-3.2.1-ubuntu-2204-lts-hvm-x86_64-202202261505 '
      '2022-02-26T15-08-34.759Z',
      'os': 'ubuntu2204',
      'version': '3.2.1'
    },
    ...
  ]
}
```

------

# updateCluster
<a name="update-cluster"></a>

更新集群。

**Topics**
+ [请求语法](#update-cluster-request)
+ [请求正文](#update-cluster-request-body)
+ [响应语法](#update-cluster-response)
+ [响应正文](#update-cluster-response-body)
+ [示例](#update-cluster-example)

## 请求语法
<a name="update-cluster-request"></a>

```
PUT /v3/clusters/{clusterName}
{
  "clusterConfiguration": "string",
  "dryrun": boolean,
  "forceUpdate": boolean,
  "region": "string",
  "suppressValidators": "string",
  "validationFailureLevel": "string"
}
```

## 请求正文
<a name="update-cluster-request-body"></a>

**clusterConfiguration**  
集群配置作为 YAML 文档。  
必需：是

**clusterName**  
集群的名称。  
类型：字符串。  
必需：是

**dryrun**  
如果设置为 `true`，则仅执行请求验证而不创建任何资源。使用此参数可验证集群配置和更新要求。默认值为 `false`。  
类型：布尔值  
必需：否

**forceUpdate**  
如果设置为 `true`，则忽略更新验证错误并强制更新。默认值为 `false`。  
类型：布尔值  
必需：否

**region**  
 AWS 区域 集群所在的。  
类型：字符串  
必需：否

**suppressValidators**  
标识一个或多个要禁止的配置验证器。  
类型：字符串  
格式：`(ALL|type:[A-Za-z0-9]+)`  
必需：否  
有效值示例：`currentValue`、`requestedValue`、`message`

**validationFailureLevel**  
导致更新失败的最低验证级别。  
类型：字符串  
有效值：`INFO | WARNING | ERROR`  
必需：否

## 响应语法
<a name="update-cluster-response"></a>

```
{
  "cluster": {
    "clusterName": "string",
    "region": "string",
    "version": "string",
    "cloudformationStackArn": "string",
    "cloudformationStackStatus": "UPDATE_IN_PROGRESS",
    "clusterStatus": "UPDATE_IN_PROGRESS",
    "scheduler": {
      "type": "string",
      "metadata": {
        "name": "string",
        "version": "string"
      }
    }
  },
  "validationMessages": [
    {
      "id": "string",
      "type": "string",
      "level": "INFO",
      "message": "string"
    }
  ],
  "changeSet": [
    {
      "parameter": "string",
      "currentValue": "string",
      "requestedValue": "string"
    }
  ]
}
```

## 响应正文
<a name="update-cluster-response-body"></a>

**changeSet**  
集群更新的更改集。    
**currentValue**  
要更新的参数的当前值。  
类型：字符串  
**参数**  
要更新的参数。  
类型：字符串  
**requestedValue**  
要更新的参数的请求值。  
类型：字符串

**cluster**    
**cloudformationStackArn**  
主 CloudFormation 堆栈的亚马逊资源名称 (ARN)。  
类型：字符串  
**cloudformationStackStatus**  
堆 CloudFormation 栈状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE`  
**clusterName**  
集群的名称。  
类型：字符串  
**clusterStatus**  
集群状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_FAILED`  
**区域**  
 AWS 区域 在其中创建集群。  
类型：字符串  
**scheduler**    
**metadata**  
调度器元数据。    
**名称**  
调度器的名称。  
类型：字符串  
**version**  
调度器版本。  
类型：字符串  
**type**  
调度器类型。  
类型：字符串

**version**  
AWS ParallelCluster 用于创建集群的版本。  
类型：字符串

**validationMessages**  
验证级别低于 `validationFailureLevel` 的消息的列表。消息列表是在配置验证期间收集的。    
**id**  
验证器的 ID。  
类型：字符串  
**level**  
验证级别。  
类型：字符串  
有效值：`INFO | WARNING | ERROR`  
**message**  
验证消息。  
类型：字符串  
**type**  
验证器的类型。  
类型：字符串

## 示例
<a name="update-cluster-example"></a>

------
#### [ Python ]

**请求**

```
$ update_cluster(cluster_name_3x, path/config-file.yaml)
```

**200 响应**

```
{
  'change_set': [
    {
      'current_value': '10',
      'parameter': 'Scheduling.SlurmQueues[queue1].ComputeResources[t2micro].MaxCount',
      'requested_value': '15'
    }
  ],
  'cluster': {
    'cloudformation_stack_arn': 'arn:aws:cloudformation:us-east-1:123456789012:stack/test-api-cluster/e0462730-50b5-11ed-99a3-0a5ddc4a34c7',
    'cloudformation_stack_status': 'UPDATE_IN_PROGRESS',
    'cluster_name': 'cluster-3x',
    'cluster_status': 'UPDATE_IN_PROGRESS',
    'region': 'us-east-1',
    'scheduler': {
      'type': 'slurm'
    },
    'version': '3.2.1'
  }
}
```

------

# updateComputeFleet
<a name="update-compute-fleet"></a>

更新集群计算实例集的状态。

**Topics**
+ [请求语法](#update-compute-fleet-request)
+ [请求正文](#update-compute-fleet-request-body)
+ [响应语法](#update-compute-fleet-response)
+ [响应正文](#update-compute-fleet-response-body)
+ [示例](#update-compute-fleet-example)

## 请求语法
<a name="update-compute-fleet-request"></a>

```
PATCH /v3/clusters/{clusterName}/computefleet
{
  "status": "string",
  "region": "string"
}
```

## 请求正文
<a name="update-compute-fleet-request-body"></a>

**clusterName**  
集群的名称。  
类型：字符串。  
必需：是

**状态**  
计算实例集状态。  
类型：字符串  
有效值：`START_REQUESTED | STOP_REQUESTED | ENABLED | DISABLED`  
必需：是

**区域**  
 AWS 区域 集群所在的。  
类型：字符串  
必需：否

## 响应语法
<a name="update-compute-fleet-response"></a>

```
{
  "status": "START_REQUESTED",
  "lastStatusUpdatedTime": "2019-08-24T14:15:22Z"
}
```

## 响应正文
<a name="update-compute-fleet-response-body"></a>

**状态**  
计算实例集状态。  
类型：字符串  
有效值：`START_REQUESTED | STARTING | RUNNING | PROTECTED | STOP_REQUESTED | STOPPING | STOPPED | UNKNOWN | ENABLED | DISABLED`

**lastStatusUpdated时间**  
代表上次状态更新时间的时间戳。  
类型：日期时间

## 示例
<a name="update-compute-fleet-example"></a>

------
#### [ Python ]

**请求**

```
$ update_compute_fleet(cluster_name_3x,  "START_REQUESTED")
```

**200 响应**

```
{
  'last_status_updated_time': datetime.datetime(2022, 3, 28, 22, 27, 14, tzinfo=tzlocal()),
  'status': 'START_REQUESTED'
}
```

------

# AWS ParallelCluster Python 库 API
<a name="pc-py-library-v3"></a>

从 3.5.0 AWS ParallelCluster 版本开始，你可以使用 AWS ParallelCluster Python 库 AWS ParallelCluster 进行访问。您可以在自己的`pcluster`环境中或在 AWS Lambda 运行时中访问该 AWS ParallelCluster 库。了解如何使用 AWS ParallelCluster Python 库访问 AWS ParallelCluster 该 API。P AWS ParallelCluster ython 库提供的功能与 AWS ParallelCluster API 提供的功能相同。

 AWS ParallelCluster Python 库的操作和参数在转换为不`snake_case`使用大写字母时会反映 API 参数的操作和参数。

**Topics**
+ [AWS ParallelCluster Python 库授权](#pc-py-lib-auth)
+ [安装 AWS ParallelCluster Python 库](#pc-py-lib-install)
+ [集群 API 操作](pc-py-lib-api-cluster.md)
+ [计算实例集 API 操作](pc-py-lib-api-fleet.md)
+ [集群和堆栈日志操作](pc-py-lib-api-logs-cluster-stack.md)
+ [映像 API 操作](pc-py-lib-api-image.md)
+ [映像和堆栈日志操作](pc-py-lib-api-logs-image-stack.md)
+ [示例](pc-py-lib-api-examples.md)
+ [AWS Lambda 用于 AWS ParallelCluster Python 库](#lambda-py-v3)

## AWS ParallelCluster Python 库授权
<a name="pc-py-lib-auth"></a>

使用对 boto3 有效的任何标准方式指定凭证。有关更多信息，请参阅 [boto3 文档](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration)。

## 安装 AWS ParallelCluster Python 库
<a name="pc-py-lib-install"></a>

1. 按照[设置 AWS ParallelCluster](install-v3.md) 中的说明安装 `pcluster` CLI 版本 3.5.0 或更高版本。

1. 导入 `pcluster` 模块并开始使用库，如以下示例所示：

   ```
   import pcluster.lib as pc
   pc.create_cluster(cluster_name="mycluster", cluster_configuration="config.yaml"
   ```

# 集群 API 操作
<a name="pc-py-lib-api-cluster"></a>

**Topics**
+ [`list_clusters`](pc-py-lib-api-cluster-list.md)
+ [`create_cluster`](pc-py-lib-api-cluster-create.md)
+ [`delete_cluster`](pc-py-lib-api-cluster-delete.md)
+ [`describe_cluster`](pc-py-lib-api-cluster-describe.md)
+ [`update_cluster`](pc-py-lib-api-cluster-update.md)

# `list_clusters`
<a name="pc-py-lib-api-cluster-list"></a>

```
list_clusters(region, next_token, cluster_status)
```

检索现有集群的列表。参数：

**`region`**  
列出部署到给定对象的集群 AWS 区域。

**`next_token`**  
用于获取下一组结果的令牌。

**`cluster_status`**  
按集群状态筛选。默认为列出所有集群。  
有效值：`CREATE_IN_PROGRESS` \$1 `CREATE_FAILED` \$1 `CREATE_COMPLETE` \$1 `DELETE_IN_PROGRESS` \$1 `DELETE_FAILED` \$1 `UPDATE_IN_PROGRESS` \$1 `UPDATE_COMPLETE` \$1 `UPDATE_FAILED` 

# `create_cluster`
<a name="pc-py-lib-api-cluster-create"></a>

```
create_cluster(cluster_name, cluster_configuration, region, suppress_validators, validation_failure_level, dry_run, rollback_on_failure, wait)
```

在指定区域内创建集群。参数：

**`cluster_name`（必需）**  
集群名称。

**`cluster_configuration`（必需）**  
作为 Python 数据类型的集群配置。

**`region`**  
集群 AWS 区域。

**`suppress_validators`**  
标识一个或多个要禁止的集群配置验证器。  
格式：`(ALL | type:[A-Za-z0-9]+)`

**`validation_failure_level`**  
导致集群创建失败的最低验证级别。默认值为 `ERROR`。  
有效值：`INFO` \$1 `WARNING` \$1 `ERROR`。

**`dry_run`**  
执行请求验证而不创建任何资源。您可以使用此参数来验证集群配置。默认值为 `False`。

**`rollback_on_failure`**  
如果设置为`True`，则在 AWS ParallelCluster 出现故障时自动启动集群堆栈回滚。默认值为 `True`。

**`wait`**  
如果设置为 `True`，则 AWS ParallelCluster 等待操作完成。默认值为 `False`。

# `delete_cluster`
<a name="pc-py-lib-api-cluster-delete"></a>

```
delete_cluster(cluster_name, region, wait)
```

删除指定区域中的集群。参数：

**`cluster_name`（必需）**  
集群名称。

**`region`**  
集群 AWS 区域。

**`wait`**  
如果设置为 `True`，则等待操作完成。默认值为 `False`。

# `describe_cluster`
<a name="pc-py-lib-api-cluster-describe"></a>

```
describe_cluster(cluster_name, region)
```

获取有关现有集群的详细信息。参数：

**`cluster_name`（必需）**  
集群名称。

**`region`**  
集群 AWS 区域。

# `update_cluster`
<a name="pc-py-lib-api-cluster-update"></a>

```
update_cluster(cluster_name, cluster_configuration, suppress_validators, validation_failure_level, region, force_update, dry_run, wait)
```

更新指定区域中的集群。参数：

**`cluster_name`（必需）**  
集群名称。

**`cluster_configuration`（必需）**  
作为 Python 数据类型的集群配置。

**`suppress_validators`**  
标识一个或多个要禁止的集群配置验证器。  
格式：`(ALL | type:[A-Za-z0-9]+)`

**`validation_failure_level`**  
导致集群更新失败的最低验证级别。默认值为 `ERROR`。  
有效值：`INFO` \$1`WARNING` \$1`ERROR`

**`region`**  
集群 AWS 区域。

**`dry_run`**  
执行请求验证而不创建或更新任何资源。您可以使用此参数来验证集群配置。默认值为 `False`。

**`force_update`**  
如果设置为 `True`，则通过忽略更新验证错误强制更新。默认值为 `False`。

**`wait`**  
如果设置为 `True`，则等待操作完成。默认值为 `False`。

# 计算实例集 API 操作
<a name="pc-py-lib-api-fleet"></a>

**Topics**
+ [`describe_compute_fleet`](pc-py-lib-api-fleet-describe.md)
+ [`update_compute_fleet`](pc-py-lib-api-fleet-update.md)
+ [`delete_cluster_instances`](pc-py-lib-api-fleet-delete.md)
+ [`describe_cluster_instances`](pc-py-lib-api-fleet-describe-instances.md)

# `describe_compute_fleet`
<a name="pc-py-lib-api-fleet-describe"></a>

```
describe_compute_fleet(cluster_name, region)
```

描述指定集群的集群计算实例集的状态。参数：

**`cluster_name`（必需）**  
集群名称。

**`region`**  
描述部署到给定集群的计算队列状态 AWS 区域。

# `update_compute_fleet`
<a name="pc-py-lib-api-fleet-update"></a>

```
update_compute_fleet(cluster_name, status, region)
```

更新集群计算实例集的状态。参数：

**`cluster_name`（必需）**  
集群名称。

**`status`（必需）**  
要更新到的状态。  
有效值：`START_REQUESTED` \$1 `STOP_REQUESTED` \$1 `ENABLED` \$1 `DISABLED`

**`region`**  
集群 AWS 区域。

# `delete_cluster_instances`
<a name="pc-py-lib-api-fleet-delete"></a>

```
delete_cluster_instances(cluster_name, region, force)
```

开始强制终止所有集群计算节点。此操作不支持 AWS Batch 集群。参数：

**`cluster_name`（必需）**  
集群名称。

**`region`**  
集群 AWS 区域。

**`force`**  
如果设置为 `True`，则在找不到具有指定 `cluster_name` 的集群时强制删除。默认值为 `False`。

# `describe_cluster_instances`
<a name="pc-py-lib-api-fleet-describe-instances"></a>

```
describe_cluster_instances(cluster_name, region, next_token, node_type, queue_name)
```

描述集群的实例。参数：

**`cluster_name`（必需）**  
集群名称。

**`region`**  
集群 AWS 区域。

**`next_token`**  
用于获取下一组结果的令牌。

**`node_type`**  
按 `node_type` 筛选实例。  
有效值：`HeadNode` \$1 `ComputeNode`

**`queue_name`**  
按队列名称筛选实例。

# 集群和堆栈日志操作
<a name="pc-py-lib-api-logs-cluster-stack"></a>

**Topics**
+ [`list_cluster_log_streams`](pc-py-lib-api-logs-cluster-stack-log-streams.md)
+ [`get_cluster_log_events`](pc-py-lib-api-logs-cluster-stack-log-events.md)
+ [`get_cluster_stack_events`](pc-py-lib-api-logs-cluster-stack-log-stack-events.md)

# `list_cluster_log_streams`
<a name="pc-py-lib-api-logs-cluster-stack-log-streams"></a>

```
list_cluster_log_streams(cluster_name, region, filters, next_token)
```

列出指定集群的日志流。参数：

**`cluster_name`（必需）**  
集群名称。

**`region`**  
集群 AWS 区域。

**`filters`**  
筛选集群日志流。  
格式：`'Name=a,Values=1 Name=b,Values=2,3'`  
**接受的筛选器：**    
**code-dns-name**  
实例私有 DNS 名称的短格式；例如 `ip-10-0-0-101`。  
**node-type**  
节点类型。  
有效值：`HeadNode`

**`next_token`**  
用于获取下一组结果的令牌。

# `get_cluster_log_events`
<a name="pc-py-lib-api-logs-cluster-stack-log-events"></a>

```
get_cluster_log_events(cluster_name, log_stream_name, region, next_token, start_from_head, limit, start_time, end_time)
```

获取指定集群和日志流的日志事件。参数：

**`cluster_name`（必需）**  
集群名称。

**`log_stream_name`（必需）**  
日志流名称。

**`region`**  
集群 AWS 区域。

**`next_token`**  
用于获取下一组结果的令牌。

**`start_from_head`**  
如果设置为`True`，则首先 AWS ParallelCluster 返回最早的日志事件。如果设置为 `False`，则最先返回最新的日志事件。默认值为 `False`。

**`limit`**  
返回的日志事件的最大数目。如果不指定值，则最大值为 1 MB 的响应大小所能容纳的日志数量，最多可达 10000 个日志事件。

**`start_time`**  
日志事件时间范围的开始时间，以 ISO 8601 格式表示，例如 `'2021-01-01T20:00:00Z'`。包括时间戳等于或晚于该时间的事件。

**`end_time`**  
日志事件时间范围的结束时间，以 ISO 8601 格式表示，例如 `'2021-01-01T20:00:00Z'`。不包括时间戳等于或晚于该时间的事件。

# `get_cluster_stack_events`
<a name="pc-py-lib-api-logs-cluster-stack-log-stack-events"></a>

```
get_cluster_stack_events(cluster_name, region, next_token)
```

获取指定集群的堆栈事件。参数：

**`cluster_name`（必需）**  
集群名称。

**`region`**  
集群 AWS 区域。

**`next_token`**  
用于获取下一组结果的令牌。

# 映像 API 操作
<a name="pc-py-lib-api-image"></a>

**Topics**
+ [`list_images`](pc-py-lib-api-image-list.md)
+ [`build_image`](pc-py-lib-api-image-build.md)
+ [`delete_image`](pc-py-lib-api-image-delete.md)
+ [`describe_image`](pc-py-lib-api-image-describe.md)

# `list_images`
<a name="pc-py-lib-api-image-list"></a>

```
list_images(image_status, region, next_token)
```

检索现有映像的列表。参数：

**`image_status`（必需）**  
按映像状态筛选。  
有效值：`AVAILABLE` \$1`PENDING` \$1`FAILED`

**`region`**  
列出在指定 AWS 区域中构建的映像。

**`next_token`**  
用于获取下一组结果的令牌。

# `build_image`
<a name="pc-py-lib-api-image-build"></a>

```
build_image(image_configuration, image_id, suppress_validators, validation_failure_level, dry_run, rollback_on_failure, region)
```

在给定区域创建自定义 AWS ParallelCluster 镜像。参数：

**`image_configuration`（必需）**  
作为 Python 数据的映像配置。

**`image_id`（必需）**  
映像 ID。

**`suppress_validators`**  
标识一个或多个要禁止的映像配置验证器。  
格式：`(ALL | type:[A-Za-z0-9]+)`

**`validation_failure_level`**  
导致映像创建失败的最低验证级别。默认值为 `ERROR`。  
有效值：`INFO` \$1`WARNING` \$1`ERROR`

**`dry_run`**  
如果设置为`True`，则在不创建任何资源的情况下 AWS ParallelCluster 执行请求验证。您可以使用此参数来验证映像配置。默认值为 `False`。

**`rollback_on_failure`**  
如果设置为`True`，则在 AWS ParallelCluster 出现故障时自动启动映像堆栈回滚。默认值为 `False`。

**`region`**  
映像 AWS 区域。

# `delete_image`
<a name="pc-py-lib-api-image-delete"></a>

```
delete_image(image_id, region, force)
```

删除指定区域中的映像。参数：

**`image_id`（必需）**  
映像 ID。

**`region`**  
映像 AWS 区域。

**`force`**  
如果设置为`True`，则如果实例正在使用 AMI 或 AMI 已共享，则 AWS ParallelCluster 强制删除。默认值为 `False`。

# `describe_image`
<a name="pc-py-lib-api-image-describe"></a>

```
describe_image(image_id, region)
```

获取有关现有映像的详细信息。参数：

**`image_id`（必需）**  
映像 ID。

**`region`**  
映像 AWS 区域。

# 映像和堆栈日志操作
<a name="pc-py-lib-api-logs-image-stack"></a>

**Topics**
+ [`list_image_log_streams`](pc-py-lib-api-logs-image-stack-log-streams.md)
+ [`get_image_log_events`](pc-py-lib-api-logs-image-stack-log-events.md)
+ [`get_image_stack_events`](pc-py-lib-api-logs-image-stack-log-stack-events.md)
+ [`list_official_images`](pc-py-lib-api-logs-list-official-images.md)

# `list_image_log_streams`
<a name="pc-py-lib-api-logs-image-stack-log-streams"></a>

```
list_image_log_streams(image_id, region, next_token)
```

列出映像的日志流。参数：

**`image_id`（必需）**  
映像 ID。

**`region`**  
映像 AWS 区域。

**`next_token`**  
用于获取下一组结果的令牌。

# `get_image_log_events`
<a name="pc-py-lib-api-logs-image-stack-log-events"></a>

```
get_image_log_events(image_id, log_stream_name, region, next_token, start_from_head, limit, start_time, end_time)
```

获取指定映像和日志流的日志事件。参数：

**`image_id`（必需）**  
映像 ID。

**`log_stream_name`（必需）**  
日志流名称。

**`region`**  
映像 AWS 区域。

**`next_token`**  
用于获取下一组结果的令牌。

**`start_from_head`**  
如果设置为`True`，则首先 AWS ParallelCluster 返回最早的日志事件。如果设置为 `False`，则最先返回最新的日志事件。默认值为 `False`。

**`limit`**  
返回的日志事件的最大数目。如果不指定值，则最大值为 1 MB 的响应大小所能容纳的日志数量，最多可达 10000 个日志事件。

**`start_time`**  
日志事件时间范围的开始时间，以 ISO 8601 格式表示，例如 `'2021-01-01T20:00:00Z'`。包括时间戳等于或晚于该时间的事件。

**`end_time`**  
日志事件时间范围的结束时间，以 ISO 8601 格式表示，例如 `'2021-01-01T20:00:00Z'`。不包括时间戳等于或晚于该时间的事件。

# `get_image_stack_events`
<a name="pc-py-lib-api-logs-image-stack-log-stack-events"></a>

```
get_image_stack_events(image_id, region, next_token)
```

获取指定映像的堆栈事件。参数：

**`image_id`（必需）**  
映像 ID。

**`region`**  
映像 AWS 区域。

**`next_token`**  
用于获取下一组结果的令牌。

# `list_official_images`
<a name="pc-py-lib-api-logs-list-official-images"></a>

```
list_official_images(region,os, architecture)
```

检索官方 AWS ParallelCluster 图片列表。参数：

**`region`**  
映像 AWS 区域。

**`os`**  
按操作系统分发进行筛选。默认为不筛选。

**`architecture`**  
按架构筛选。默认为不筛选。

# 示例
<a name="pc-py-lib-api-examples"></a>

**Topics**
+ [创建集群](#pc-py-lib-api-examples-create-cluster)

## 创建集群
<a name="pc-py-lib-api-examples-create-cluster"></a>

当您运行以下示例脚本时，在将指定的输入存储在您的环境中后，您就会创建一个集群。集群配置是根据[集群配置文档](cluster-configuration-file-v3.md)作为一种 Python 数据类型创建的。

```
import os
import pprint
import pcluster.lib as pc
pp = pprint.PrettyPrinter()

HEAD_NODE_SUBNET = os.environ["HEAD_NODE_SUBNET"]
COMPUTE_NODE_SUBNET = os.environ["HEAD_NODE_SUBNET"]
KEY_NAME = os.environ["KEY_NAME"]
CONFIG = {'Image': {'Os': 'alinux2'},
          'HeadNode': {'InstanceType': 't2.large',
                       'Networking': {'SubnetId': HEAD_NODE_SUBNET},
                       'Ssh': {'KeyName': KEY_NAME}},

          'Scheduling': {'Scheduler': 'slurm',
                         'SlurmQueues':
                         [{'Name': 'queue0',
                           'ComputeResources':
                           [{'Name': 'queue0-i0', 'InstanceType': 't2.micro',
                             'MinCount': 0, 'MaxCount': 10}],
                           'Networking': {'SubnetIds': [COMPUTE_NODE_SUBNET]}}]}}


pp.pprint(pc.create_cluster(cluster_name="mycluster", cluster_configuration=CONFIG))
```

**输出**：

```
{'cluster': {'cloudformationStackArn': 'arn:aws:cloudformation:us-east-2:123456789012:stack/mycluster/00000000-aaaa-1111-999-000000000000',
             'cloudformationStackStatus': 'CREATE_IN_PROGRESS',
             'clusterName': 'mycluster',
             'clusterStatus': 'CREATE_IN_PROGRESS',
             'region': 'us-east-2',
             'scheduler': {'type': 'slurm'},
             'version': '3.15.0'}}
```

## AWS Lambda 用于 AWS ParallelCluster Python 库
<a name="lambda-py-v3"></a>

您可以部署 Lambda 层和运行时来访问 Pyth AWS ParallelCluster on 库。我们托管 AWS ParallelCluster zip 文件，您可以按照以下步骤中的说明输入指向 zip 文件的链接来使用这些文件。Lambda 使用 zip 文件来准备运行时系统环境，以支持对 Python 库的访问。 AWS ParallelCluster Python 库是在 3.5.0 AWS ParallelCluster 版本中添加的。您只能对版本 3.5.0 和更高版本使用该库。

托管的 zip 文件 URL 的格式为：`s3://aws-region-id-aws-parallelcluster/parallelcluster/3.15.0/layers/aws-parallelcluster/lambda-layer.zip`。（*3.15.0*替换为下一步中要使用的 AWS ParallelCluster 版本。）

### 使用以下命令开始访问 P AWS ParallelCluster ython 库 AWS Lambda
<a name="lambda-py-get-started-v3"></a>

**创建 Lambda 层**

1. 登录 AWS 管理控制台 并导航到 AWS Lambda 控制台。

1. 在导航窗格中选择**层**，然后选择**创建层**。

1. 输入层的名称，然后选择**从 Amazon S3 上传文件**。

1. 输入 zip 文件的 URL：s3://*aws-region-id*-aws-parallelcluster/parallel *3.15.0* cluster//-layer.zip。layers/aws-parallelcluster/lambda

1. 对于**兼容架构**，选择 **x86\$164** 架构。

1. 对于**兼容运行时**，请选择 **Python 3.12** 运行时。

1. 选择**创建**。

**使用 Lambda 层**

1. 在 Lambda 控制台导航窗格中，依次选择**函数**、**创建函数**。

1. 输入您的函数的名称。

1. 在 “**运行时**” 中，选择 **Python 3.12** 运行时。

1. 对于**架构**，选择 **x86\$164** 架构。

1. 选择**创建函数**。

1. 创建函数后，选择**层**，然后选择**添加层**。

1. 选择**自定义层**，然后选择您在之前的步骤中创建的层。

1. 选择层版本。

1. 选择**添加**。

1. 您的 Lambda 需要权限才能管理使用创建的集群。 AWS ParallelCluster创建具有[基本 AWS ParallelCluster `pcluster` 用户策略](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-base-user-policy)中所列权限的 Lambda 角色。

现在，您可以 AWS ParallelCluster 从 Python 库中进行访问，如中所述[AWS ParallelCluster Python 库 API](#pc-py-library-v3)。