Skip to content
v2.276.0

JobQueueProps Struct ​

Props to configure a JobQueue.

Example ​

ts
declare const vpc: ec2.IVpc;

const ecsJob = new batch.EcsJobDefinition(this, 'JobDefn', {
  container: new batch.EcsEc2ContainerDefinition(this, 'containerDefn', {
    image: ecs.ContainerImage.fromRegistry('public.ecr.aws/amazonlinux/amazonlinux:latest'),
    memory: cdk.Size.mebibytes(2048),
    cpu: 256,
  }),
});

const queue = new batch.JobQueue(this, 'JobQueue', {
  computeEnvironments: [{
    computeEnvironment: new batch.ManagedEc2EcsComputeEnvironment(this, 'managedEc2CE', {
      vpc,
    }),
    order: 1,
  }],
  priority: 10,
});

const user = new iam.User(this, 'MyUser');
ecsJob.grantSubmitJob(user, queue);
python
# vpc: ec2.IVpc


ecs_job = batch.EcsJobDefinition(self, "JobDefn",
    container=batch.EcsEc2ContainerDefinition(self, "containerDefn",
        image=ecs.ContainerImage.from_registry("public.ecr.aws/amazonlinux/amazonlinux:latest"),
        memory=cdk.Size.mebibytes(2048),
        cpu=256
    )
)

queue = batch.JobQueue(self, "JobQueue",
    compute_environments=[batch.OrderedComputeEnvironment(
        compute_environment=batch.ManagedEc2EcsComputeEnvironment(self, "managedEc2CE",
            vpc=vpc
        ),
        order=1
    )],
    priority=10
)

user = iam.User(self, "MyUser")
ecs_job.grant_submit_job(user, queue)
java
IVpc vpc;


EcsJobDefinition ecsJob = EcsJobDefinition.Builder.create(this, "JobDefn")
        .container(EcsEc2ContainerDefinition.Builder.create(this, "containerDefn")
                .image(ContainerImage.fromRegistry("public.ecr.aws/amazonlinux/amazonlinux:latest"))
                .memory(Size.mebibytes(2048))
                .cpu(256)
                .build())
        .build();

JobQueue queue = JobQueue.Builder.create(this, "JobQueue")
        .computeEnvironments(List.of(OrderedComputeEnvironment.builder()
                .computeEnvironment(ManagedEc2EcsComputeEnvironment.Builder.create(this, "managedEc2CE")
                        .vpc(vpc)
                        .build())
                .order(1)
                .build()))
        .priority(10)
        .build();

User user = new User(this, "MyUser");
ecsJob.grantSubmitJob(user, queue);
csharp
// Install: dotnet add package Amazon.CDK.Lib
IVpc vpc;


var ecsJob = new EcsJobDefinition(this, "JobDefn", new EcsJobDefinitionProps {
    Container = new EcsEc2ContainerDefinition(this, "containerDefn", new EcsEc2ContainerDefinitionProps {
        Image = ContainerImage.FromRegistry("public.ecr.aws/amazonlinux/amazonlinux:latest"),
        Memory = Size.Mebibytes(2048),
        Cpu = 256
    })
});

var queue = new JobQueue(this, "JobQueue", new JobQueueProps {
    ComputeEnvironments = new [] { new OrderedComputeEnvironment {
        ComputeEnvironment = new ManagedEc2EcsComputeEnvironment(this, "managedEc2CE", new ManagedEc2EcsComputeEnvironmentProps {
            Vpc = vpc
        }),
        Order = 1
    } },
    Priority = 10
});

var user = new User(this, "MyUser");
ecsJob.GrantSubmitJob(user, queue);
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
var vpc IVpc


ecsJob := batch.NewEcsJobDefinition(this, jsii.String("JobDefn"), &EcsJobDefinitionProps{
	Container: batch.NewEcsEc2ContainerDefinition(this, jsii.String("containerDefn"), &EcsEc2ContainerDefinitionProps{
		Image: ecs.ContainerImage_FromRegistry(jsii.String("public.ecr.aws/amazonlinux/amazonlinux:latest")),
		Memory: cdk.Size_Mebibytes(jsii.Number(2048)),
		Cpu: jsii.Number(256),
	}),
})

queue := batch.NewJobQueue(this, jsii.String("JobQueue"), &JobQueueProps{
	ComputeEnvironments: []OrderedComputeEnvironment{
		&OrderedComputeEnvironment{
			ComputeEnvironment: batch.NewManagedEc2EcsComputeEnvironment(this, jsii.String("managedEc2CE"), &ManagedEc2EcsComputeEnvironmentProps{
				Vpc: *Vpc,
			}),
			Order: jsii.Number(1),
		},
	},
	Priority: jsii.Number(10),
})

user := iam.NewUser(this, jsii.String("MyUser"))
ecsJob.GrantSubmitJob(user, queue)

Properties ​

computeEnvironmentsoptionalOrderedComputeEnvironment[]compute_environmentsoptionaltyping.List[OrderedComputeEnvironment]computeEnvironmentsoptionalList<OrderedComputeEnvironment>ComputeEnvironmentsoptionalOrderedComputeEnvironment[]ComputeEnvironmentsoptional*[]OrderedComputeEnvironment= none#
The set of compute environments mapped to a job queue and their order relative to each other.
notes

The job scheduler uses this parameter to determine which compute environment runs a specific job. Compute environments must be in the VALID state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed.

Note: All compute environments that are associated with a job queue must share the same architecture. AWS Batch doesn't support mixing compute environment architecture types in a single job queue.

enabledoptionalbooleanenabledoptionalboolenabledoptionalBooleanEnabledoptionalboolEnabledoptional*bool= true#
If the job queue is enabled, it is able to accept jobs.

Otherwise, new jobs can't be added to the queue, but jobs already in the queue can finish.

jobQueueNameoptionalstringjob_queue_nameoptionalstrjobQueueNameoptionalStringJobQueueNameoptionalstringJobQueueNameoptional*string#
The name of the job queue.

Default: no name

It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_)

jobStateTimeLimitActionsoptionalJobStateTimeLimitAction[]job_state_time_limit_actionsoptionaltyping.List[JobStateTimeLimitAction]jobStateTimeLimitActionsoptionalList<JobStateTimeLimitAction>JobStateTimeLimitActionsoptionalJobStateTimeLimitAction[]JobStateTimeLimitActionsoptional*[]JobStateTimeLimitAction#
The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in the specified state longer than specified times.

Default: no actions

priorityoptionalnumberpriorityoptionalint | floatpriorityoptionalNumberPriorityoptionaldoublePriorityoptional*float64= 1#
The priority of the job queue.
notes

Job queues with a higher priority are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority of 10 is given scheduling preference over a job queue with a priority of 1.

schedulingPolicyoptionalISchedulingPolicyRefscheduling_policyoptionalISchedulingPolicyRefschedulingPolicyoptionalISchedulingPolicyRefSchedulingPolicyoptionalISchedulingPolicyRefSchedulingPolicyoptionalISchedulingPolicyRef#
The SchedulingPolicy for this JobQueue.

Default: no scheduling policy

Instructs the Scheduler how to schedule different jobs.