public static final class ComputeResources.Builder
extends java.lang.Object
ComputeResources
Constructor and Description |
---|
Builder() |
public ComputeResources.Builder vpc(IVpc vpc)
ComputeResources.getVpc()
vpc
- The VPC network that all compute resources will be connected to. This parameter is required.this
public ComputeResources.Builder allocationStrategy(AllocationStrategy allocationStrategy)
ComputeResources.getAllocationStrategy()
allocationStrategy
- The allocation strategy to use for the compute resource in case not enough instances of the best fitting instance type can be allocated.
This could be due to availability of the instance type in
the region or Amazon EC2 service limits. If this is not specified, the default for the EC2
ComputeResourceType is BEST_FIT, which will use only the best fitting instance type, waiting for
additional capacity if it's not available. This allocation strategy keeps costs lower but can limit
scaling. If you are using Spot Fleets with BEST_FIT then the Spot Fleet IAM Role must be specified.
BEST_FIT_PROGRESSIVE will select an additional instance type that is large enough to meet the
requirements of the jobs in the queue, with a preference for an instance type with a lower cost.
The default value for the SPOT instance type is SPOT_CAPACITY_OPTIMIZED, which is only available for
for this type of compute resources and will select an additional instance type that is large enough
to meet the requirements of the jobs in the queue, with a preference for an instance type that is
less likely to be interrupted.this
public ComputeResources.Builder bidPercentage(java.lang.Number bidPercentage)
ComputeResources.getBidPercentage()
bidPercentage
- This property will be ignored if you set the environment type to ON_DEMAND.
The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for
that instance type before instances are launched. For example, if your maximum percentage is 20%,
then the Spot price must be below 20% of the current On-Demand price for that EC2 instance. You always
pay the lowest (market) price and never more than your maximum percentage. If you leave this field empty,
the default value is 100% of the On-Demand price.this
public ComputeResources.Builder computeResourcesTags(java.util.Map<java.lang.String,java.lang.String> computeResourcesTags)
ComputeResources.getComputeResourcesTags()
computeResourcesTags
- Key-value pair tags to be applied to resources that are launched in the compute environment.
For AWS Batch, these take the form of "String1": "String2", where String1 is the tag key and
String2 is the tag value—for example, { "Name": "AWS Batch Instance - C4OnDemand" }.this
public ComputeResources.Builder desiredvCpus(java.lang.Number desiredvCpus)
ComputeResources.getDesiredvCpus()
desiredvCpus
- The desired number of EC2 vCPUS in the compute environment.this
public ComputeResources.Builder ec2KeyPair(java.lang.String ec2KeyPair)
ComputeResources.getEc2KeyPair()
ec2KeyPair
- The EC2 key pair that is used for instances launched in the compute environment.
If no key is defined, then SSH access is not allowed to provisioned compute resources.this
public ComputeResources.Builder image(IMachineImage image)
ComputeResources.getImage()
image
- The Amazon Machine Image (AMI) ID used for instances launched in the compute environment.this
public ComputeResources.Builder instanceRole(java.lang.String instanceRole)
ComputeResources.getInstanceRole()
instanceRole
- The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment.
You can specify
the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or
arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS
Instance Role in the AWS Batch User Guide.this
public ComputeResources.Builder instanceTypes(java.util.List<? extends InstanceType> instanceTypes)
ComputeResources.getInstanceTypes()
instanceTypes
- The types of EC2 instances that may be launched in the compute environment.
You can specify instance
families to launch any instance type within those families (for example, c4 or p3), or you can specify
specific sizes within a family (such as c4.8xlarge). You can also choose optimal to pick instance types
(from the C, M, and R instance families) on the fly that match the demand of your job queues.this
public ComputeResources.Builder launchTemplate(LaunchTemplateSpecification launchTemplate)
ComputeResources.getLaunchTemplate()
launchTemplate
- An optional launch template to associate with your compute resources.
For more information, see README file.this
public ComputeResources.Builder maxvCpus(java.lang.Number maxvCpus)
ComputeResources.getMaxvCpus()
maxvCpus
- The maximum number of EC2 vCPUs that an environment can reach.
Each vCPU is equivalent to
1,024 CPU shares. You must specify at least one vCPU.this
public ComputeResources.Builder minvCpus(java.lang.Number minvCpus)
ComputeResources.getMinvCpus()
minvCpus
- The minimum number of EC2 vCPUs that an environment should maintain (even if the compute environment state is DISABLED).
Each vCPU is equivalent to 1,024 CPU shares. By keeping this set to 0 you will not have instance time wasted when
there is no work to be run. If you set this above zero you will maintain that number of vCPUs at all times.this
public ComputeResources.Builder placementGroup(java.lang.String placementGroup)
ComputeResources.getPlacementGroup()
placementGroup
- The Amazon EC2 placement group to associate with your compute resources.this
public ComputeResources.Builder securityGroups(java.util.List<? extends ISecurityGroup> securityGroups)
ComputeResources.getSecurityGroups()
securityGroups
- The EC2 security group(s) associated with instances launched in the compute environment.this
public ComputeResources.Builder spotFleetRole(IRole spotFleetRole)
ComputeResources.getSpotFleetRole()
spotFleetRole
- This property will be ignored if you set the environment type to ON_DEMAND.
The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment.
For more information, see Amazon EC2 Spot Fleet Role in the AWS Batch User Guide.this
public ComputeResources.Builder type(ComputeResourceType type)
ComputeResources.getType()
type
- The type of compute environment: ON_DEMAND, SPOT, FARGATE, or FARGATE_SPOT.this
public ComputeResources.Builder vpcSubnets(SubnetSelection vpcSubnets)
ComputeResources.getVpcSubnets()
vpcSubnets
- The VPC subnets into which the compute resources are launched.this
public ComputeResources build()
ComputeResources
java.lang.NullPointerException
- if any required attribute was not provided