Получите последнюю редакцию задания при отправке пакетного задания AWS без указания точного номера редакции.

Я использую клиент AWSBatch Java com.amazonaws.services.batch (AWS SDK for Java - 1.11.483) представить работу программно.

Тем не менее, наши ученые продолжают обновлять определение должности. Каждый раз, когда появляется новое определение задания, мне приходится обновлять переменную среды с номером редакции, чтобы передать его клиенту. Документация AWS гласит, что

Это значение может быть либо именем: ревизия, либо именем ресурса Amazon (ARN) для определения задания.

Есть ли способ, которым я могу по умолчанию установить последнюю версию, и каждый раз, когда я отправляю BatchJob, последняя версия будет выбрана, даже не зная последнюю версию?

1 ответ

Это значение может быть либо именем: ревизия, либо именем ресурса Amazon (ARN) для определения задания.

Похоже, AWS не задокументировал это должным образом: revision необязательно, вы можете использовать просто использовать name вместо name:revision и он получит ACTIVE пересмотр вашего определения работы. Это также необязательно для ARN определения задания.

Это также относится к boto3 и для интеграции пошаговых функций AWS с AWS Batch и, возможно, со всеми другими интерфейсами, для которых требуется имя определения задания или ARN.

Из справочника по API AWS Batch SubmitJob.

jobDefinition

Определение задания, используемое в этом задании. Это значение может быть одним из name, name: revision или Amazon Resource Name (ARN) для определения задания. Если имя указано без ревизии, используется последняя активная ревизия.

возможно, документация уже обновлена.

Я не смог найти какую-либо функцию 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] если вы хотите последний.

Другие вопросы по тегам