

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Soumettre avec Deadline Cloud
<a name="submit-a-job"></a>

Pour exécuter des tâches Deadline Cloud sur vos hôtes de travail, vous devez créer et utiliser un ensemble de tâches Open Job Description (OpenJD) pour configurer une tâche. Le bundle configure la tâche, par exemple en spécifiant les fichiers d'entrée pour une tâche et en indiquant où écrire la sortie de la tâche. Cette rubrique contient des exemples de méthodes permettant de configurer un ensemble de tâches.

Avant de pouvoir suivre les procédures décrites dans cette section, vous devez effectuer les opérations suivantes :
+ [Création d'un parc Deadline Cloud](create-a-farm.md)
+ [Exécutez l'agent de travail Deadline Cloud](run-worker.md)

Pour utiliser AWS Deadline Cloud pour exécuter des tâches, suivez les procédures suivantes. Utilisez le premier AWS CloudShell onglet pour soumettre des offres d'emploi à votre parc de développeurs. Utilisez le deuxième CloudShell onglet pour afficher la sortie de l'agent de travail. 

**Topics**
+ [Soumettre l'simple\$1jobéchantillon](#submit-a-simplejob-sample)
+ [Soumettre un simple\$1job avec un paramètre](#submit-with-parameter)
+ [Création d'un ensemble de tâches simple\$1file\$1job avec des E/S de fichiers](#create-job-bundle-with-file-io)
+ [Étapes suivantes](#submit-a-job-next)

## Soumettre l'simple\$1jobéchantillon
<a name="submit-a-simplejob-sample"></a>

Après avoir créé une ferme et exécuté l'agent de travail, vous pouvez envoyer l'simple\$1jobéchantillon à Deadline Cloud. 

**Pour envoyer l'simple\$1jobéchantillon à Deadline Cloud**

1. Choisissez votre premier CloudShell onglet.

1. Téléchargez l'exemple à partir de GitHub.

   ```
   cd ~
   git clone https://github.com/aws-deadline/deadline-cloud-samples.git
   ```

1. Accédez au répertoire des exemples de lots de tâches.

   ```
   cd ~/deadline-cloud-samples/job_bundles/
   ```

1. Soumettez l'simple\$1jobéchantillon.

   ```
   deadline bundle submit simple_job
   ```

1. Choisissez votre deuxième CloudShell onglet pour afficher les résultats de journalisation concernant les appels`BatchGetJobEntities`, l'obtention d'une session et l'exécution d'une action de session.

   ```
   ...
   [2024-03-27 16:00:21,846][INFO    ] 🔷 Session.Starting 🔷 [session-053d77cef82648fe2] Starting new Session. [queue-3ba4ff683ff54db09b851a2ed8327d7b/job-d34cc98a6e234b6f82577940ab4f76c6]
   [2024-03-27 16:00:21,853][INFO    ] 📤 API.Req 📤 [deadline:BatchGetJobEntity] resource={'farm-id': 'farm-3e24cfc9bbcd423e9c1b6754bc1', 'fleet-id': 'fleet-246ee60f46d44559b6cce010d05', 'worker-id': 'worker-75e0fce9c3c344a69bff57fcd83'} params={'identifiers': [{'jobDetails': {'jobId': 'job-d34cc98a6e234b6f82577940ab4'}}]} request_url=https://scheduling.deadline.us-west-2.amazonaws.com/2023-10-12/farms/farm-3e24cfc9bbcd423e /fleets/fleet-246ee60f46d44559b1 /workers/worker- 75e0fce9c3c344a69b /batchGetJobEntity
   [2024-03-27 16:00:22,013][INFO    ] 📥 API.Resp 📥 [deadline:BatchGetJobEntity](200) params={'entities': [{'jobDetails': {'jobId': 'job-d34cc98a6e234b6f82577940ab6', 'jobRunAsUser': {'posix': {'user': 'job-user', 'group': 'job-group'}, 'runAs': 'QUEUE_CONFIGURED_USER'}, 'logGroupName': '/aws/deadline/farm-3e24cfc9bbcd423e9c1b6754bc1/queue-3ba4ff683ff54db09b851a2ed83', 'parameters': '*REDACTED*', 'schemaVersion': 'jobtemplate-2023-09'}}], 'errors': []} request_id=a3f55914-6470-439e-89e5-313f0c6
   [2024-03-27 16:00:22,013][INFO    ] 🔷 Session.Add 🔷 [session-053d77cef82648fea9c69827182] Appended new SessionActions. (ActionIds: ['sessionaction-053d77cef82648fea9c69827182-0']) [queue-3ba4ff683ff54db09b851a2ed8b/job-d34cc98a6e234b6f82577940ab6]
   [2024-03-27 16:00:22,014][WARNING ] 🔷 Session.User 🔷 [session-053d77cef82648fea9c69827182] Running as the Worker Agent's user. (User: cloudshell-user) [queue-3ba4ff683ff54db09b851a2ed8b/job-d34cc98a6e234b6f82577940ac6]
   [2024-03-27 16:00:22,015][WARNING ] 🔷 Session.AWSCreds 🔷 [session-053d77cef82648fea9c69827182] AWS Credentials are not available: Queue has no IAM Role. [queue-3ba4ff683ff54db09b851a2ed8b/job-d34cc98a6e234b6f82577940ab6]
   [2024-03-27 16:00:22,026][INFO    ] 🔷 Session.Logs 🔷 [session-053d77cef82648fea9c69827182] Logs streamed to: AWS CloudWatch Logs. (LogDestination: /aws/deadline/farm-3e24cfc9bbcd423e9c1b6754bc1/queue-3ba4ff683ff54db09b851a2ed83/session-053d77cef82648fea9c69827181) [queue-3ba4ff683ff54db09b851a2ed83/job-d34cc98a6e234b6f82577940ab4]
   [2024-03-27 16:00:22,026][INFO    ] 🔷 Session.Logs 🔷 [session-053d77cef82648fea9c69827182] Logs streamed to: local file. (LogDestination: /home/cloudshell-user/demoenv-logs/queue-3ba4ff683ff54db09b851a2ed8b/session-053d77cef82648fea9c69827182.log) [queue-3ba4ff683ff54db09b851a2ed83/job-d34cc98a6e234b6f82577940ab4]
   ...
   ```
**Note**  
Seule la sortie de journalisation de l'agent de travail est affichée. Il existe un journal distinct pour la session qui exécute le travail.

1. Choisissez votre premier onglet, puis inspectez les fichiers journaux écrits par l'agent de travail.

   1. Accédez au répertoire des journaux de l'agent de travail et visualisez son contenu.

      ```
      cd ~/demoenv-logs
      ls
      ```

   1. Imprimez le premier fichier journal créé par l'agent de travail. 

      ```
      cat worker-agent-bootstrap.log
      ```

      Ce fichier contient une sortie de l'agent de travail expliquant comment il a appelé l'API Deadline Cloud pour créer une ressource de personnel dans votre flotte, puis a assumé le rôle de flotte.

   1. Imprimez la sortie du fichier journal lorsque l'agent des travailleurs rejoint le parc. 

      ```
      cat worker-agent.log
      ```

      Ce journal contient des résultats sur toutes les actions entreprises par l'agent de travail, mais pas sur les files d'attente à partir desquelles il exécute les tâches, à l'exception IDs de ces ressources.

   1. Imprimez les fichiers journaux de chaque session dans un répertoire dont le nom est identique à l'identifiant de la ressource de file d'attente.

      ```
      cat $DEV_QUEUE_ID/session-*.log
      ```

      En cas de réussite de la tâche, le résultat du fichier journal sera similaire à ce qui suit :

      ```
      cat $DEV_QUEUE_ID/$(ls -t $DEV_QUEUE_ID | head -1)
                                  
      2024-03-27 16:00:22,026 WARNING Session running with no AWS Credentials.
      2024-03-27 16:00:22,404 INFO 
      2024-03-27 16:00:22,405 INFO ==============================================
      2024-03-27 16:00:22,405 INFO --------- Running Task
      2024-03-27 16:00:22,405 INFO ==============================================
      2024-03-27 16:00:22,406 INFO ----------------------------------------------
      2024-03-27 16:00:22,406 INFO Phase: Setup
      2024-03-27 16:00:22,406 INFO ----------------------------------------------
      2024-03-27 16:00:22,406 INFO Writing embedded files for Task to disk.
      2024-03-27 16:00:22,406 INFO Mapping: Task.File.runScript -> /sessions/session-053d77cef82648fea9c698271812a/embedded_fileswa_gj55_/tmp2u9yqtsz
      2024-03-27 16:00:22,406 INFO Wrote: runScript -> /sessions/session-053d77cef82648fea9c698271812a/embedded_fileswa_gj55_/tmp2u9yqtsz
      2024-03-27 16:00:22,407 INFO ----------------------------------------------
      2024-03-27 16:00:22,407 INFO Phase: Running action
      2024-03-27 16:00:22,407 INFO ----------------------------------------------
      2024-03-27 16:00:22,407 INFO Running command /sessions/session-053d77cef82648fea9c698271812a/tmpzuzxpslm.sh
      2024-03-27 16:00:22,414 INFO Command started as pid: 471
      2024-03-27 16:00:22,415 INFO Output:
      2024-03-27 16:00:22,420 INFO Welcome to AWS Deadline Cloud!
      2024-03-27 16:00:22,571 INFO 
      2024-03-27 16:00:22,572 INFO ==============================================
      2024-03-27 16:00:22,572 INFO --------- Session Cleanup
      2024-03-27 16:00:22,572 INFO ==============================================
      2024-03-27 16:00:22,572 INFO Deleting working directory: /sessions/session-053d77cef82648fea9c698271812a
      ```

1. Imprimez les informations relatives à la tâche. 

   ```
   deadline job get
   ```

   Lorsque vous soumettez la tâche, le système l'enregistre par défaut afin que vous n'ayez pas à saisir l'ID de la tâche.

## Soumettre un simple\$1job avec un paramètre
<a name="submit-with-parameter"></a>

Vous pouvez soumettre des tâches avec des paramètres. Dans la procédure suivante, vous modifiez le simple\$1job modèle pour inclure un message personnalisé, vous soumettez le fichier journal de sessionsimple\$1job, puis vous l'imprimez pour afficher le message. 

**Pour soumettre l'simple\$1jobéchantillon avec un paramètre**

1. Sélectionnez votre premier CloudShell onglet, puis accédez au répertoire des exemples de lots de tâches.

   ```
   cd ~/deadline-cloud-samples/job_bundles/
   ```

1. Imprimez le contenu du simple\$1job modèle.

   ```
   cat simple_job/template.yaml
   ```

   La `parameterDefinitions` section contenant le `Message` paramètre doit ressembler à ce qui suit :

   ```
   parameterDefinitions:
   - name: Message
     type: STRING
     default: Welcome to AWS Deadline Cloud!
   ```

1. Soumettez l'simple\$1jobexemple avec une valeur de paramètre, puis attendez que le travail soit terminé.

   ```
   deadline bundle submit simple_job \
       -p "Message=Greetings from the developer getting started guide."
   ```

1. Pour voir le message personnalisé, consultez le fichier journal de session le plus récent.

   ```
   cd ~/demoenv-logs
   cat $DEV_QUEUE_ID/$(ls -t $DEV_QUEUE_ID | head -1)
   ```

## Création d'un ensemble de tâches simple\$1file\$1job avec des E/S de fichiers
<a name="create-job-bundle-with-file-io"></a>

Une tâche de rendu doit lire la définition de la scène, en faire le rendu d'une image, puis enregistrer cette image dans un fichier de sortie. Vous pouvez simuler cette action en demandant à la tâche de calculer le hachage de l'entrée au lieu de restituer une image.

**Pour créer un ensemble de tâches simple\$1file\$1job avec des E/S de fichiers**

1. Sélectionnez votre premier CloudShell onglet, puis accédez au répertoire des exemples de lots de tâches.

   ```
   cd ~/deadline-cloud-samples/job_bundles/
   ```

1. Faites-en une copie `simple_job` avec le nouveau nom`simple_file_job`.

   ```
   cp -r simple_job simple_file_job
   ```

1. Modifiez le modèle de tâche comme suit :
**Note**  
Nous vous recommandons de l'utiliser nano pour ces étapes. Si vous préférez l'utiliserVim, vous devez définir son mode de collage à l'aide de`:set paste`.

   1. Ouvrez le modèle dans un éditeur de texte.

      ```
      nano simple_file_job/template.yaml
      ```

   1. Ajoutez les éléments suivants `type``objectType`, et `dataFlow``parameterDefinitions`. 

      ```
      - name: InFile
        type: PATH
        objectType: FILE
        dataFlow: IN
      - name: OutFile
        type: PATH
        objectType: FILE
        dataFlow: OUT
      ```

   1. Ajoutez la commande de `bash` script suivante à la fin du fichier qui lit le fichier d'entrée et écrit dans le fichier de sortie. 

      ```
              # hash the input file, and write that to the output
              sha256sum "{{Param.InFile}}" > "{{Param.OutFile}}"
      ```

      La mise à jour `template.yaml` doit correspondre exactement à ce qui suit :

      ```
      specificationVersion: 'jobtemplate-2023-09'
      name: Simple File Job Bundle Example
      parameterDefinitions:
      - name: Message
        type: STRING
        default: Welcome to AWS Deadline Cloud!
      - name: InFile
        type: PATH
        objectType: FILE
        dataFlow: IN
      - name: OutFile
        type: PATH
        objectType: FILE
        dataFlow: OUT
      steps:
      - name: WelcomeToDeadlineCloud
        script:
          actions:
            onRun:
              command: '{{Task.File.Run}}'
          embeddedFiles:
          - name: Run
            type: TEXT
            runnable: true
            data: |
              #!/usr/bin/env bash
              echo "{{Param.Message}}"
      
              # hash the input file, and write that to the output
              sha256sum "{{Param.InFile}}" > "{{Param.OutFile}}"
      ```
**Note**  
Si vous souhaitez ajuster l'espacement dans le`template.yaml`, assurez-vous d'utiliser des espaces plutôt que des indentations. 

   1. Enregistrez le fichier et quittez l'éditeur de texte.

1. Fournissez des valeurs de paramètres pour les fichiers d'entrée et de sortie afin de soumettre le simple\$1file\$1job.

   ```
   deadline bundle submit simple_file_job \
       -p "InFile=simple_job/template.yaml" \
       -p "OutFile=hash.txt"
   ```

1. Imprimez les informations relatives à la tâche.

   ```
   deadline job get
   ```
   + Vous verrez des résultats tels que les suivants :

     ```
     parameters:
       Message:
         string: Welcome to AWS Deadline Cloud!
       InFile:
         path: /local/home/cloudshell-user/BundleFiles/JobBundle-Examples/simple_job/template.yaml
       OutFile:
         path: /local/home/cloudshell-user/BundleFiles/JobBundle-Examples/hash.txt
     ```
   + Bien que vous n'ayez fourni que des chemins relatifs, le chemin complet est défini pour les paramètres. Le AWS CLI joint le répertoire de travail actuel à tous les chemins fournis en tant que paramètres lorsque les chemins ont le type`PATH`. 
   + L'agent de travail exécuté dans l'autre fenêtre du terminal prend en charge et exécute la tâche. Cette action crée le `hash.txt` fichier, que vous pouvez consulter à l'aide de la commande suivante. 

     ```
     cat hash.txt
     ```

     Cette commande imprimera un résultat similaire à ce qui suit.

     ```
     eaa2df5d34b54be5ac34c56a24a8c237b8487231a607eaf530a04d76b89c9cd3 /local/home/cloudshell-user/BundleFiles/JobBundle-Examples/simple_job/template.yaml
     ```

## Étapes suivantes
<a name="submit-a-job-next"></a>

Après avoir appris à soumettre des tâches simples à l'aide de la CLI de Deadline Cloud, vous pouvez explorer les points suivants :
+ [Soumettez des offres d'emploi avec des pièces jointes dans Deadline Cloud](run-jobs-job-attachments.md)pour savoir comment exécuter des tâches sur des hôtes exécutant différents systèmes d'exploitation.
+ [Ajoutez une flotte gérée par des services à votre parc de développeurs dans Deadline Cloud](service-managed-fleet.md)pour exécuter vos tâches sur des hôtes gérés par Deadline Cloud.
+ [Nettoyez les ressources de votre ferme dans Deadline Cloud](cleaning-up.md)pour arrêter les ressources que vous avez utilisées pour ce didacticiel.