Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Mit Deadline Cloud einreichen
Um Deadline Cloud-Jobs auf Ihren Worker-Hosts auszuführen, erstellen Sie ein Open Job Description (OpenJD) -Jobpaket und verwenden es, um einen Job zu konfigurieren. Das Paket konfiguriert den Job, indem beispielsweise Eingabedateien für einen Job angegeben werden und angegeben wird, wo die Ausgabe des Jobs geschrieben werden soll. Dieses Thema enthält Beispiele dafür, wie Sie ein Job-Paket konfigurieren können.
Bevor Sie die Verfahren in diesem Abschnitt ausführen können, müssen Sie die folgenden Schritte ausführen:
Gehen Sie wie folgt vor, um AWS Deadline Cloud zum Ausführen von Jobs zu verwenden. Verwenden Sie den ersten AWS CloudShell Tab, um Jobs an Ihre Entwicklerfarm zu senden. Verwenden Sie den zweiten CloudShell Tab, um die Worker-Agent-Ausgabe anzusehen.
Themen
Senden Sie das simple_job Beispiel
Nachdem Sie eine Farm erstellt und den Worker Agent ausgeführt haben, können Sie das simple_job Beispiel an Deadline Cloud senden.
Um das einzureichen simple_job Beispiel für Deadline Cloud
-
Wählen Sie Ihren ersten CloudShell Tab.
-
Laden Sie das Beispiel von herunter GitHub.
cd ~ git clone https://github.com/aws-deadline/deadline-cloud-samples.git -
Navigieren Sie zum Verzeichnis mit den Beispielen für das Auftragspaket.
cd ~/deadline-cloud-samples/job_bundles/ -
Senden Sie das simple_job Beispiel ein.
deadline bundle submit simple_job -
Wählen Sie Ihre zweite CloudShell Registerkarte, um die Protokollierungsausgabe zum Anrufen
BatchGetJobEntities, Abrufen einer Sitzung und Ausführen einer Sitzungsaktion anzuzeigen.... [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] ...Anmerkung
Nur die Protokollausgabe des Worker Agents wird angezeigt. Es gibt ein separates Protokoll für die Sitzung, in der der Job ausgeführt wird.
-
Wählen Sie Ihre erste Registerkarte und überprüfen Sie dann die Protokolldateien, die der Worker Agent schreibt.
-
Navigieren Sie zum Logverzeichnis des Worker Agents und sehen Sie sich dessen Inhalt an.
cd ~/demoenv-logs ls -
Drucken Sie die erste Protokolldatei, die der Worker Agent erstellt.
cat worker-agent-bootstrap.logDiese Datei enthält Informationen darüber, wie der Worker Agent die Deadline Cloud-API aufgerufen hat, um eine Worker-Ressource in Ihrer Flotte zu erstellen, und dann die Flottenrolle übernommen hat.
-
Drucken Sie die Protokolldatei aus, die ausgegeben wird, wenn der Worker Agent der Flotte beitritt.
cat worker-agent.logDieses Protokoll enthält Ausgaben über alle Aktionen, die der Worker Agent durchführt, aber keine Ausgabe über die Warteschlangen, in denen er Jobs ausführt, mit Ausnahme der IDs dieser Ressourcen.
-
Drucken Sie die Protokolldateien für jede Sitzung in einem Verzeichnis aus, das den gleichen Namen wie die Ressourcen-ID der Warteschlange trägt.
cat $DEV_QUEUE_ID/session-*.logWenn der Auftrag erfolgreich ist, sieht die Ausgabe der Protokolldatei etwa wie folgt aus:
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
-
-
Druckt Informationen über den Auftrag.
deadline job getWenn Sie den Job abschicken, speichert das System ihn als Standard, sodass Sie die Job-ID nicht eingeben müssen.
Senden Sie eine simple_job mit einem Parameter
Sie können Jobs mit Parametern einreichen. Im folgenden Verfahren bearbeiten Sie die simple_job Vorlage so, dass sie eine benutzerdefinierte Nachricht enthält. Senden Sie die und drucken Sie dann die Sitzungsprotokolldatei aussimple_job, um die Meldung anzuzeigen.
Um die zu senden simple_job Beispiel mit einem Parameter
-
Wählen Sie Ihre erste CloudShell Registerkarte aus und navigieren Sie dann zum Verzeichnis mit den Job-Bundle-Beispielen.
cd ~/deadline-cloud-samples/job_bundles/ -
Drucken Sie den Inhalt der simple_job Vorlage aus.
cat simple_job/template.yamlDer
parameterDefinitionsAbschnitt mit demMessageParameter sollte wie folgt aussehen:parameterDefinitions: - name: Message type: STRING default: Welcome to AWS Deadline Cloud! -
Senden Sie das simple_job Beispiel mit einem Parameterwert und warten Sie dann, bis die Ausführung des Jobs abgeschlossen ist.
deadline bundle submit simple_job \ -p "Message=Greetings from the developer getting started guide." -
Um die benutzerdefinierte Meldung zu sehen, sehen Sie sich die neueste Sitzungsprotokolldatei an.
cd ~/demoenv-logs cat $DEV_QUEUE_ID/$(ls -t $DEV_QUEUE_ID | head -1)
Erstellen Sie ein simple_file_job-Auftragspaket mit einer Datei I/O
Ein Renderauftrag muss die Szenendefinition lesen, daraus ein Bild rendern und dieses Bild dann in einer Ausgabedatei speichern. Sie können diese Aktion simulieren, indem Sie den Job veranlassen, den Hash der Eingabe zu berechnen, anstatt ein Bild zu rendern.
Um ein simple_file_job-Job-Paket mit einer Datei zu erstellen I/O
-
Wählen Sie Ihre erste CloudShell Registerkarte aus und navigieren Sie dann zum Verzeichnis mit den Job-Paketbeispielen.
cd ~/deadline-cloud-samples/job_bundles/ -
Erstellen Sie eine Kopie von
simple_jobmit dem neuen Namensimple_file_job.cp -r simple_job simple_file_job -
Bearbeiten Sie die Jobvorlage wie folgt:
Anmerkung
Wir empfehlen Ihnen, es nano für diese Schritte zu verwenden. Wenn Sie es bevorzugenVim, müssen Sie den Einfügemodus mit einstellen
:set paste.-
Öffnen Sie die Vorlage in einem Texteditor.
nano simple_file_job/template.yaml -
Fügen Sie das Folgende
typeobjectType, und hinzudataFlowparameterDefinitions.- name: InFile type: PATH objectType: FILE dataFlow: IN - name: OutFile type: PATH objectType: FILE dataFlow: OUT -
Fügen Sie den folgenden
bashSkriptbefehl am Ende der Datei hinzu, die aus der Eingabedatei liest und in die Ausgabedatei schreibt.# hash the input file, and write that to the outputsha256sum "{{Param.InFile}}" > "{{Param.OutFile}}"Das Update
template.yamlsollte genau dem Folgenden entsprechen: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}}"Anmerkung
Wenn Sie den Abstand in der anpassen möchten, achten Sie darauf
template.yaml, dass Sie Leerzeichen anstelle von Einrückungen verwenden. -
Speichern Sie die Datei und beenden Sie den Texteditor.
-
-
Geben Sie Parameterwerte für die Eingabe- und Ausgabedateien an, um den simple_file_job zu senden.
deadline bundle submit simple_file_job \ -p "InFile=simple_job/template.yaml" \ -p "OutFile=hash.txt" -
Druckt Informationen über den Auftrag.
deadline job get-
Es wird eine Ausgabe wie die folgende angezeigt:
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 -
Sie haben zwar nur relative Pfade angegeben, für die Parameter ist jedoch der vollständige Pfad festgelegt. Der AWS CLI verknüpft das aktuelle Arbeitsverzeichnis mit allen Pfaden, die als Parameter bereitgestellt werden, wenn die Pfade den folgenden Typ haben
PATH. -
Der Worker Agent, der im anderen Terminalfenster läuft, nimmt den Job auf und führt ihn aus. Diese Aktion erstellt die
hash.txtDatei, die Sie mit dem folgenden Befehl anzeigen können.cat hash.txtMit diesem Befehl wird eine Ausgabe gedruckt, die der folgenden ähnelt.
eaa2df5d34b54be5ac34c56a24a8c237b8487231a607eaf530a04d76b89c9cd3 /local/home/cloudshell-user/BundleFiles/JobBundle-Examples/simple_job/template.yaml
-
Nächste Schritte
Nachdem Sie gelernt haben, wie Sie einfache Jobs mit der Deadline Cloud-CLI einreichen, können Sie Folgendes erkunden:
-
Jobs mit Stellenanhängen in Deadline Cloud einreichenum zu lernen, wie Jobs auf Hosts mit unterschiedlichen Betriebssystemen ausgeführt werden.
-
Fügen Sie Ihrer Entwicklerfarm in Deadline Cloud eine vom Service verwaltete Flotte hinzuum Ihre Jobs auf Hosts auszuführen, die von Deadline Cloud verwaltet werden.
-
Bereinigen Sie Ihre Farmressourcen in Deadline Cloudum die Ressourcen herunterzufahren, die Sie für dieses Tutorial verwendet haben.