我正在使用AWSBatch Java客户端com.amazonaws.services.batch (AWS SDK for Java - 1.11.483)
以编程方式提交作业。
但是,我们的科学家不断更新工作定义。 每当有一个新的作业定义时,我都必须用修订号更新环境变量,以将其传递给客户端。 AWS documentation指出
此值可以是名称:版本或作业定义的Amazon资源名称(ARN)。
有什么方法可以将其默认为最新版本,并且每次我提交BatchJob时,即使不知道最新版本也可以选择最新版本?
答案 0 :(得分:3)
此值可以是名称:版本或作业定义的Amazon资源名称(ARN)。
似乎AWS未能正确记录此问题:revision
是可选的,您可以简单地使用name
代替name:revision
,它将得到ACTIVE
的修订版您的工作定义。对于作业定义ARN,它也是可选的。
这也适用于boto3
以及与AWS Batch集成的AWS Step Functions,以及可能需要Job Definition名称或ARN的所有其他接口。
答案 1 :(得分:3)
摘自AWS Batch SubmitJob API参考。
jobDefinition
此作业使用的作业定义。此值可以是名称之一, 名称:修订,或作业的亚马逊资源名称(ARN) 定义。如果指定的名称没有修订,则最新的 使用主动修订。
也许文档现在已经更新。
答案 2 :(得分:0)
我找不到任何Java SDK函数,但最终使用了一个bash脚本,该脚本从AWS上获取了最新的*修订号。
$ aws batch describe-job-definitions --job-definition-name ${full_name} \
--query='jobDefinitions[?status==`ACTIVE`].revision' --output=json \
--region=${region} | jq '.[0]'
(*).[0]
将从活动修订列表中选择第一个对象,我之所以使用它是因为默认情况下,AWS Batch将最新修订添加到顶部。如果需要最后一个,可以将其设置为.[-1]
。