

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

# 指定运行作业所需的资源
<a name="resource-aware-scheduling-how-to-for-jobs"></a>

注册作业时，您可以指定您创建的一个或多个资源的名称 (`consumableResource`) 以及该作业的每个实例所需的资源数量 (`quantity`)。

Batch 会跟踪每种资源在任何给定时刻的可用单位数。对于作业队列中的每个作业，Batch 调度器会确保您的作业仅在指定的资源依赖项可用时运行。

如果作业到达队列顶部时作业的消耗性资源不可用，则该作业将处于 `RUNNABLE` 状态等待，直到所有必需的资源都可用或达到作业状态时间限制为止（请参阅[在中查看作业队列 AWS Batch](job_queue_viewing_status.md)）。一旦 Batch 验证所有资源都可用，作业状态就会变为 `STARTING`，然后变为 `RUNNING`。资源将在作业状态变为 `STARTING` 后立即锁定，然后在作业状态变为 `SUCCEEDED` 或 `FAILED` 时解锁。

您还可以在提交作业时更新特定作业所需的资源数量。

**控制台**：

**要在定义作业时指定资源及其所需数量，请执行以下操作：**

1. 使用 [AWS Batch 控制台](https://console.aws.amazon.com/batch)中的作业定义向导（**作业定义** -> **创建**）定义作业。

1. 在向导第 4 步：**配置容器**的**消耗性资源**下，从列表中选择所需资源的**名称**。在**已请求的值**字段中，输入此作业实例所需的此资源的数量，然后选择**添加消耗性资源**。

1. 为作业所需的所有消耗性资源重复上一步。您最多可以为定义的每个作业指定 5 个资源。

1. 在完成作业定义向导之后，但在选择**创建作业定义**之前，您将看到已创建的消耗性资源列表。

**要在提交作业时更新所需资源数量，请执行以下操作：**

1. 在 [AWS Batch 控制台](https://console.aws.amazon.com/batch)的导航窗格中，选择**作业**，然后选择**提交新作业**。

1. 在向导第 2 步：**配置覆盖**的**消耗性资源覆盖**下，针对要为作业覆盖所需数量的任何消耗性资源，输入一个新的**已请求的值**。

1. 完成要为该作业做出的所有覆盖后，选择**下一步**以继续执行**审核并提交**。

**API:**

将使用 [`RegisterJobDefinition` API](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) 注册作业时，请在请求的 `consumableResourceProperties` 部分中使用 `consumableResourceList` 来指定运行作业实例所需的消耗性资源以及每个消耗性资源的数量。

使用 [`SubmitJob`API](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html) 提交作业时，可以使用请求的 `consumableResourcePropertiesOverride` 部分来覆盖消耗性资源列表和每个资源的数量。请注意，这只会覆盖每个作业实例所需的资源数量，而不是可用总量。