

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 制限が必要なジョブを送信する
<a name="job-limit-job"></a>

制限を適用するには、制限をジョブまたはジョブステップのホスト要件として指定します。ステップで制限を指定せず、そのステップが関連するリソースを使用する場合、ジョブがスケジュールされたとき、ステップの使用量は制限に対してカウントされません。

一部の Deadline Cloud 送信者では、ホスト要件を設定できます。送信者で制限の金額要件名を指定して、制限を適用できます。

送信者がホスト要件の追加をサポートしていない場合は、ジョブのジョブテンプレートを編集して制限を適用することもできます。

**ジョブバンドルのジョブステップに制限を適用するには**

1. テキストエディタを使用してジョブのジョブテンプレートを開きます。ジョブテンプレートは、ジョブのジョブバンドルディレクトリにあります。詳細については、*Deadline Cloud デベロッパーガイド*の[「ジョブバンドル](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/build-job-bundle.html)」を参照してください。

1. 制限を適用するステップのステップ定義を見つけます。

1. ステップ定義に以下を追加します。{{amount.name}} を、制限の金額要件名に置き換えます。一般的な使用では、`min`値を 1 に設定する必要があります。

------
#### [ YAML ]

   ```
     hostRequirements:
       amounts:
       - name: amount.{{name}}
         min: 1
   ```

------
#### [ JSON ]

   ```
   "hostRequirements": {
       "amounts": [
           {
               "name": "{{amount.name}}",
               "min": "1"
           }
       }
   }
   ```

------

   次のように、ジョブステップに複数の制限を追加できます。{{amount.name\_1}} と {{amount.name\_2}} を、制限の金額要件名に置き換えます。

------
#### [ YAML ]

   ```
     hostRequirements:
       amounts:
       - name: {{amount.name_1}}
         min: 1
       - name: {{amount.name_2}}
         min: 1
   ```

------
#### [ JSON ]

   ```
   "hostRequirements": {
       "amounts": [
           {
               "name": "amount.{{name_1}}",
               "min": "1"
           },
           {
               "name": "amount.{{name_2}}",
               "min": "1"
           }
       }
   }
   ```

------

1. 変更をジョブテンプレートに保存します。

## 送信フックで制限を自動化する
<a name="job-limit-hooks"></a>

アーティストがジョブテンプレートを手動で編集することなく、すべてのジョブ送信に制限を適用する場合は、[送信前フック](https://github.com/aws-deadline/deadline-cloud/blob/mainline/docs/submission-hooks.md)を使用して、送信時にホスト要件をすべてのジョブテンプレートに自動的に挿入できます。

送信前フックは、ジョブが送信される前に実行されるスクリプトです。フックは、ジョブバンドルの を変更`template.yaml`して、制限の`hostRequirements`金額エントリを追加できます。このアプローチにより、Deadline Cloud CLI または DCC 送信者を通じて送信されたすべてのジョブで、制限されたリソースの必要性が宣言されます。

完全な実例については、Deadline Cloud サンプルリポジトリの[「ライセンス制限送信フック](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/submission_hooks/license_limits)サンプル」を参照してください。

## End-to-endの例: V-Ray ライセンス制限を適用する
<a name="job-limit-example"></a>

この例では、5 V-Ray フローティングライセンスの制限を設定し、スケジューラが適用することを確認する方法を示します。

**V-Ray ライセンス制限を設定してテストするには**

1. ファームに 制限を作成します。

   ```
   aws deadline create-limit \
       --farm-id {{farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}} \
       --display-name "VRay License" \
       --amount-requirement-name "amount.vray" \
       --max-count 5
   ```

1. 制限をキューに関連付けます。

   ```
   aws deadline create-queue-limit-association \
       --farm-id {{farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}} \
       --queue-id {{queue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}} \
       --limit-id {{limit-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}}
   ```

1. ホスト要件をジョブテンプレートに追加します。

   ```
   specificationVersion: jobtemplate-2023-09
   name: My VRay Render
   steps:
     - name: Render
       hostRequirements:
         amounts:
           - name: amount.vray
             min: 1
       script:
         actions:
           onRun:
             command: vray
             args: ["-scene", "{{Param.SceneFile}}"]
   ```

1. ジョブを送信します。スケジューラでは、 を持つ最大 5 つのタスク`amount.vray`をキュー内のすべてのジョブで同時に実行できます。スロットが使用可能になるまで、追加のタスクは `READY`状態のままになります。

制限が機能していることを確認するには、一時的に `maxCount`を 1 に設定し、2 つのジョブを送信します。最初のジョブは、最初のジョブが完了するまで 2 番目のジョブが `READY`状態のまま実行されます。