Source code for container_collection.batch.submit_batch_job

from __future__ import annotations

import boto3


[docs]def submit_batch_job( name: str, job_definition_arn: str, user: str, queue: str, size: int, **kwargs: list | str | int | bool | dict, ) -> list[str]: """ Submit AWS Batch job. Parameters ---------- name Job name. job_definition_arn Job definition ARN. user User name prefix for job name. queue Job queue. size Number of jobs in array. **kwargs Additional parameters for job submission. The keyword arguments are passed to `boto3` Batch client method `submit_job`. Returns ------- : List of job ARNs. """ default_job_submission = { "jobName": f"{user}_{name}", "jobQueue": queue, "jobDefinition": job_definition_arn, } if size > 1: default_job_submission["arrayProperties"] = {"size": size} # type: ignore[assignment] client = boto3.client("batch") job_submission = default_job_submission | kwargs response = client.submit_job(**job_submission) if size > 1: return [f"{response['jobArn']}:{i}" for i in range(size)] return [response["jobArn"]]