

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Envía con Deadline Cloud
<a name="submit-a-job"></a>

Para ejecutar trabajos de Deadline Cloud en los hosts de sus trabajadores, cree y utilice un paquete de trabajos de Open Job Description (OpenJD) para configurar un trabajo. El paquete configura el trabajo, por ejemplo, especificando los archivos de entrada para un trabajo y dónde escribir el resultado del trabajo. En este tema se incluyen ejemplos de formas de configurar un paquete de trabajos.

Para poder seguir los procedimientos de esta sección, debe completar lo siguiente:
+ [Cree una granja de Deadline Cloud](create-a-farm.md)
+ [Ejecute el agente de trabajo de Deadline Cloud](run-worker.md)

Para usar AWS Deadline Cloud para ejecutar trabajos, utilice los siguientes procedimientos. Usa la primera AWS CloudShell pestaña para enviar trabajos a tu granja de desarrolladores. Utilice la segunda CloudShell pestaña para ver el resultado del agente obrero. 

**Topics**
+ [Envíe la simple\$1job muestra](#submit-a-simplejob-sample)
+ [Envíe un anuncio simple\$1job con un parámetro](#submit-with-parameter)
+ [Cree un paquete de trabajos simple\$1file\$1job con E/S de archivos](#create-job-bundle-with-file-io)
+ [Siguientes pasos](#submit-a-job-next)

## Envíe la simple\$1job muestra
<a name="submit-a-simplejob-sample"></a>

Después de crear una granja y gestionar el agente obrero, puede enviar la simple\$1job muestra a Deadline Cloud. 

**Para enviar la simple\$1job muestra a Deadline Cloud**

1. Elige tu primera CloudShell pestaña.

1. Descarga la muestra de GitHub.

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

1. Navegue hasta el directorio de ejemplos de paquetes de trabajos.

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

1. Envíe la simple\$1job muestra.

   ```
   deadline bundle submit simple_job
   ```

1. Seleccione la segunda CloudShell pestaña para ver el resultado del registro sobre las llamadas`BatchGetJobEntities`, la obtención de una sesión y la ejecución de una acción de sesión.

   ```
   ...
   [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]
   ...
   ```
**nota**  
Solo se muestra el resultado del registro del agente de trabajo. Hay un registro independiente para la sesión en la que se ejecuta el trabajo.

1. Elija la primera pestaña y, a continuación, inspeccione los archivos de registro que escribe el agente de trabajo.

   1. Navegue hasta el directorio de registros del agente de trabajo y vea su contenido.

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

   1. Imprima el primer archivo de registro que cree el agente de trabajo. 

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

      Este archivo contiene información sobre cómo llamó a la API de Deadline Cloud para crear un recurso de trabajadores en su flota y, después, asumió la función de flota.

   1. Imprima el resultado del archivo de registro cuando el agente obrero se una a la flota. 

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

      Este registro contiene resultados sobre todas las acciones que realiza el agente trabajador, pero no contiene resultados sobre las colas desde las que ejecuta los trabajos, excepto en lo que respecta a esos recursos. IDs 

   1. Imprima los archivos de registro de cada sesión en un directorio que tenga el mismo nombre que el identificador del recurso de la cola.

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

      Si el trabajo se realiza correctamente, la salida del archivo de registro será similar a la siguiente:

      ```
      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. Imprima la información sobre el trabajo. 

   ```
   deadline job get
   ```

   Al enviar el trabajo, el sistema lo guarda como predeterminado para que no tenga que introducir el identificador del trabajo.

## Envíe un anuncio simple\$1job con un parámetro
<a name="submit-with-parameter"></a>

Puede enviar trabajos con parámetros. En el siguiente procedimiento, edite la simple\$1job plantilla para incluir un mensaje personalizado, envíe el simple\$1job archivo de registro de la sesión e imprima el mismo para ver el mensaje. 

**Para enviar el simple\$1job ejemplo con un parámetro**

1. Seleccione la primera CloudShell pestaña y, a continuación, navegue hasta el directorio de ejemplos de paquetes de trabajos.

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

1. Imprima el contenido de la simple\$1job plantilla.

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

   La `parameterDefinitions` sección con el `Message` parámetro debería tener el siguiente aspecto:

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

1. Envíe la simple\$1job muestra con un valor de parámetro y espere a que el trabajo termine de ejecutarse.

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

1. Para ver el mensaje personalizado, consulte el archivo de registro de sesión más reciente.

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

## Cree un paquete de trabajos simple\$1file\$1job con E/S de archivos
<a name="create-job-bundle-with-file-io"></a>

Un trabajo de renderizado necesita leer la definición de la escena, renderizar una imagen a partir de ella y, a continuación, guardar esa imagen en un archivo de salida. Puede simular esta acción haciendo que el trabajo calcule el hash de la entrada en lugar de renderizar una imagen.

**Para crear un paquete de trabajos simple\$1file\$1job con E/S de archivos**

1. Seleccione la primera CloudShell pestaña y, a continuación, navegue hasta el directorio de ejemplos del paquete de trabajos.

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

1. Haga una copia de `simple_job` con el nuevo nombre`simple_file_job`.

   ```
   cp -r simple_job simple_file_job
   ```

1. Edite la plantilla de trabajo de la siguiente manera:
**nota**  
Le recomendamos que utilice nano estos pasos. Si prefiere usarloVim, debe configurar su modo de pegado usando`:set paste`.

   1. Abre la plantilla en un editor de texto.

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

   1. Añada lo siguiente `type``objectType`, y `dataFlow``parameterDefinitions`. 

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

   1. Añada el siguiente comando de `bash` script al final del archivo para leer el archivo de entrada y escribir en el archivo de salida. 

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

      La actualización `template.yaml` debe coincidir exactamente con lo siguiente:

      ```
      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}}"
      ```
**nota**  
Si desea ajustar el espaciado`template.yaml`, asegúrese de utilizar espacios en lugar de hendiduras. 

   1. Guarde el archivo y salga del editor de texto.

1. Proporcione los valores de los parámetros de los archivos de entrada y salida para enviar el simple\$1file\$1job.

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

1. Imprima la información sobre el trabajo.

   ```
   deadline job get
   ```
   + Verá un resultado como el siguiente:

     ```
     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
     ```
   + Aunque solo proporcionó rutas relativas, los parámetros tienen configurada la ruta completa. AWS CLI Une el directorio de trabajo actual a cualquier ruta que se proporcione como parámetro cuando las rutas tienen ese tipo`PATH`. 
   + El agente de trabajo que se encuentra en la otra ventana de la terminal recoge y ejecuta el trabajo. Esta acción crea el `hash.txt` archivo, que puede ver con el siguiente comando. 

     ```
     cat hash.txt
     ```

     Este comando imprimirá un resultado similar al siguiente.

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

## Siguientes pasos
<a name="submit-a-job-next"></a>

Después de aprender a enviar trabajos sencillos mediante la CLI de Deadline Cloud, puede explorar:
+ [Envíe trabajos con adjuntos de trabajo en Deadline Cloud](run-jobs-job-attachments.md)para obtener información sobre cómo ejecutar trabajos en hosts que ejecutan diferentes sistemas operativos.
+ [Agrega una flota gestionada por servicios a tu granja de desarrolladores en Deadline Cloud](service-managed-fleet.md)para ejecutar tus trabajos en hosts gestionados por Deadline Cloud.
+ [Limpia los recursos de tu granja en Deadline Cloud](cleaning-up.md)para cerrar los recursos que utilizaste para este tutorial.