

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

# 使用 Deadline Cloud 提交挂钩强制执行固定的许可证限制
<a name="examples-license-limits-hook"></a>

[l [icense\_](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/submission_hooks/license_limits) limits 示例展示了如何将 Deadline Cloud Limits 功能与[提交挂钩](https://github.com/aws-deadline/deadline-cloud/blob/mainline/docs/submission-hooks.md)相结合，在所有提交的工作中强制使用固定数量的并发 V-Ray 许可证（例如许可证），而无需美工人员手动配置任何内容。](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/deadline-cloud-limits.html)

Deadline Cloud Limits 功能限制了任务调度，因此同时运行需要许可证的任务不超过 N 个。为了使限制生效，每个作业都必须在其模板中将许可证声明为主机要求。此示例提供了一个提交前挂钩，可在提交时自动将许可证主机要求注入到每个作业模板中。因此：
+ 艺术家可以正常提交作业，无需额外步骤。
+ 该挂钩可确保每个作业都声明需要许可证。
+ Deadline Cloud 调度器强制执行并发限制。

**要设置许可证限制挂钩**

1. 使用 AWS CLI 为您的服务器场创建限制：

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

1. 使用将限制与您的队列相关联`aws deadline create-queue-limit-association`。

1. 将`license_limits/`目录复制到所有艺术家工作站均可访问的共享位置。

1. 在每个艺术家工作站上，启用环境挂钩：

   ```
   deadline config set settings.allow_environment_hooks true
   ```

1. 在应用程序启动器脚本中将`DEADLINE_HOOKS_DIR`环境变量设置为指向共享目录。

**重要**  
不要添加`amount.vray`为舰队能力的`customAmounts`条目。如果队列将该数量声明为一项能力，则队列会将其视为每个工作人员的资源并绕过队列级别限制。仅限制关联就能提供兼容性。

要将示例扩展到其他许可证（Houdini、Nuke等），请向限制和队列关联添加条目`license_limits.json`并创建相应的限制。