本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
第 3 步:使用 Deadline Cloud 提交和运行作业
要使用 De AWS adline Cloud 运行作业,请按以下步骤操作。使用第一个 AWS CloudShell 选项卡向您的开发者群提交作业。使用第二个 CloudShell 选项卡查看工作器代理的输出。
提交simple_job样本
创建服务器场并运行工作器代理后,您可以将simple_job示例提交到 Deadline Cloud。
将simple_job样本提交到 Deadline Cloud
-
安装并配置 AWS Command Line Interface (AWS CLI)(如果尚未安装)。有关信息,请参阅安装或更新到最新版本的 AWS CLI。
-
从中下载示例 GitHub。
cd ~ git clone https://github.com/aws-deadline/deadline-cloud-samples.git
-
选择您的第一个 CloudShell 选项卡,然后导航到任务捆绑包示例目录。
cd ~/deadline-cloud-samples/job_bundles/
-
提交simple_job样本。
deadline bundle submit simple_job
-
选择第二个 CloudShell 选项卡可查看有关呼叫
BatchGetJobEntities
、获取会话和运行会话操作的日志输出。... [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] ...
注意
仅显示工作器代理的日志输出。运行作业的会话有一个单独的日志。
-
选择第一个选项卡,然后检查工作器代理写入的日志文件。
-
导航到工作器代理日志目录并查看其内容。
cd ~/demoenv-logs ls
-
打印工作器代理创建的第一个日志文件。
cat worker-agent-bootstrap.log
此文件包含工作人员代理输出,说明它如何调用 Deadline Cloud API 在您的队列中创建工作人员资源,然后担任队列角色。
-
打印工作器代理加入队列时的日志文件输出。
cat worker-agent.log
此日志包含有关工作代理执行的所有操作的输出,但不包含有关其运行作业的队列的输出,但这些资源的 ID 除外。
-
在与队列资源 ID 同名的目录中打印每个会话的日志文件。
cat $DEV_QUEUE_ID/session-*.log
如果作业成功,则日志文件输出将类似于以下内容:
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
-
-
打印有关作业的信息。
deadline job get
提交作业时,系统会将其保存为默认值,因此您无需输入作业 ID。
提交simple_job带有参数的
您可以提交带有参数的作业。在以下步骤中,您可以编辑simple_job模板以包含自定义消息,提交simple_job,然后打印会话日志文件以查看消息。
提交带参数的simple_job示例
-
选择您的第一个 CloudShell 选项卡,然后导航到任务捆绑包示例目录。
cd ~/deadline-cloud-samples/job_bundles/
-
打印simple_job模板的内容。
cat simple_job/template.yaml
带有
Message
参数的parameterDefinitions
部分应如下所示:parameterDefinitions: - name: Message type: STRING default: Welcome to AWS Deadline Cloud!
-
提交带有参数值的simple_job示例,然后等待任务完成运行。
deadline bundle submit simple_job \ -p "Message=Greetings from the developer getting started guide."
-
要查看自定义消息,请查看最新的会话日志文件。
cd ~/demoenv-logs cat $DEV_QUEUE_ID/$(ls -t $DEV_QUEUE_ID | head -1)
创建带有文件 I/O 的 simple_file_job 任务捆绑包
渲染作业需要读取场景定义,从中渲染图像,然后将该图像保存到输出文件中。您可以通过让作业计算输入的哈希值而不是渲染图像来模拟此操作。
创建带有文件 I/O 的 simple_file_job 任务捆绑包
-
选择您的第一个 CloudShell 选项卡,然后导航到任务捆绑包示例目录。
cd ~/deadline-cloud-samples/job_bundles/
-
用新名称制作一份副本
simple_file_job
。simple_job
cp -r simple_job simple_file_job
-
按如下方式编辑作业模板:
注意
我们建议您使用nano这些步骤。如果您更喜欢使用Vim,则必须使用设置其粘贴模式
:set paste
。-
在文本编辑器中打开模板。
nano simple_file_job/template.yaml
-
添加以下内容
type
objectType
、和dataFlow
parameterDefinitions
。- name: InFile type: PATH objectType: FILE dataFlow: IN - name: OutFile type: PATH objectType: FILE dataFlow: OUT
-
将以下
bash
脚本命令添加到文件末尾,该命令从输入文件读取并写入输出文件。# hash the input file, and write that to the output
sha256sum "{{Param.InFile}}" > "{{Param.OutFile}}"
更新后的内容
template.yaml
应与以下内容完全匹配: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.runScript}}' embeddedFiles: - name: runScript 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}}"
注意
如果要调整中的间距
template.yaml
,请确保使用空格而不是缩进。 -
保存文件,然后退出文本编辑器。
-
-
为输入和输出文件提供参数值以提交 simple_file_job。
deadline bundle submit simple_file_job \ -p "InFile=simple_job/template.yaml" \ -p "OutFile=hash.txt"
-
打印有关作业的信息。
deadline job get
-
您将看到如下输出:
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
-
尽管您只提供了相对路径,但参数设置了完整路径。将当前工作目录与作为参数提供的任何路径 AWS CLI 连接起来,而这些路径的类型为该路径
PATH
。 -
在另一个终端窗口中运行的工作器代理接起并运行作业。此操作将创建
hash.txt
文件,您可以使用以下命令查看该文件。cat hash.txt
此命令将打印类似于以下内容的输出。
eaa2df5d34b54be5ac34c56a24a8c237b8487231a607eaf530a04d76b89c9cd3 /local/home/cloudshell-user/BundleFiles/JobBundle-Examples/simple_job/template.yaml
-