

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Envie um trabalho que exija limites
<a name="job-limit-job"></a>

Você aplica um limite especificando-o como um requisito de host para o trabalho ou etapa do trabalho. Se você não especificar um limite em uma etapa e essa etapa usar um recurso associado, o uso da etapa não será contabilizado no limite quando os trabalhos forem agendados.

Alguns remetentes do Deadline Cloud permitem que você defina um requisito de anfitrião. Você pode especificar o nome do requisito de valor do limite no remetente para aplicar o limite.

Se o remetente não aceitar a adição de requisitos de hospedagem, você também pode aplicar um limite editando o modelo de trabalho para o trabalho.

**Para aplicar um limite a uma etapa do trabalho no pacote de tarefas**

1. Abra o modelo de trabalho para o trabalho usando um editor de texto. O modelo de trabalho está localizado no diretório do pacote de tarefas do trabalho. Para obter mais informações, consulte [Pacotes de tarefas](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/build-job-bundle.html) no *Guia do desenvolvedor do Deadline Cloud*.

1. Encontre a definição da etapa à qual aplicar o limite.

1. Adicione o seguinte à definição da etapa. {{amount.name}}Substitua pelo nome do valor exigido do seu limite. Para uso típico, você deve definir o `min` valor como 1.

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

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

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

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

------

   Você pode adicionar vários limites a uma etapa do trabalho da seguinte maneira. Substitua {{amount.name\_1}} e {{amount.name\_2}} pelos nomes dos requisitos de valor de seus limites.

------
#### [ 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. Salve as alterações no modelo de trabalho.

## Automatize os limites com ganchos de envio
<a name="job-limit-hooks"></a>

Se você quiser impor limites em todos os envios de trabalhos sem exigir que os artistas editem manualmente os modelos de trabalho, você pode usar um [gancho de pré-envio](https://github.com/aws-deadline/deadline-cloud/blob/mainline/docs/submission-hooks.md) para injetar automaticamente a exigência de anfitrião em cada modelo de trabalho no momento do envio.

Um gancho de pré-envio é um script executado antes do envio do trabalho. O gancho pode modificar o pacote de tarefas `template.yaml` para adicionar a entrada de `hostRequirements` valores ao seu limite. Essa abordagem garante que cada trabalho enviado por meio da CLI do Deadline Cloud ou dos remetentes do DCC declare sua necessidade do recurso limitado.

Para ver um exemplo funcional completo, consulte a [amostra do gancho de envio de limites de licença](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/submission_hooks/license_limits) no repositório de amostras do Deadline Cloud.

## End-to-end exemplo: impor limites de V-Ray licença
<a name="job-limit-example"></a>

Este exemplo mostra como configurar um limite para 5 licenças V-Ray flutuantes e verificar se o agendador o aplica.

**Para configurar e testar um limite V-Ray de licença**

1. Crie o limite em sua fazenda:

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

1. Associe o limite à sua fila:

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

1. Adicione o requisito de anfitrião ao seu modelo de trabalho:

   ```
   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. Envie o trabalho. O agendador permite que no máximo 5 tarefas `amount.vray` sejam executadas simultaneamente em todos os trabalhos na fila. Tarefas adicionais permanecem no `READY` estado até que um espaço fique disponível.

Para verificar se o limite está funcionando, `maxCount` defina temporariamente como 1 e envie dois trabalhos. O primeiro trabalho é executado enquanto o segundo permanece no `READY` estado até que o primeiro seja concluído.