Table Of Contents


User Guide

First time using the AWS CLI? See the User Guide for help getting started.

Note: You are viewing the documentation for an older major version of the AWS CLI (version 1).

AWS CLI version 2, the latest major version of AWS CLI, is now stable and recommended for general use. To view this page for the AWS CLI version 2, click here. For more information see the AWS CLI version 2 installation instructions and migration guide.

[ aws . batch ]



Describes one or more of your compute environments.

If you are using an unmanaged compute environment, you can use the DescribeComputeEnvironment operation to determine the ecsClusterArn that you should launch your Amazon ECS container instances into.

See also: AWS API Documentation

See 'aws help' for descriptions of global parameters.

describe-compute-environments is a paginated operation. Multiple API calls may be issued in order to retrieve the entire data set of results. You can disable pagination by providing the --no-paginate argument. When using --output text and the --query argument on a paginated response, the --query argument must extract data from the results of the following query expressions: computeEnvironments


[--compute-environments <value>]
[--cli-input-json <value>]
[--starting-token <value>]
[--page-size <value>]
[--max-items <value>]
[--generate-cli-skeleton <value>]


--compute-environments (list)

A list of up to 100 compute environment names or full Amazon Resource Name (ARN) entries.


"string" "string" ...

--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally.

--starting-token (string)

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

For usage examples, see Pagination in the AWS Command Line Interface User Guide .

--page-size (integer)

The size of each page to get in the AWS service call. This does not affect the number of items returned in the command's output. Setting a smaller page size results in more calls to the AWS service, retrieving fewer items in each call. This can help prevent the AWS service calls from timing out.

For usage examples, see Pagination in the AWS Command Line Interface User Guide .

--max-items (integer)

The total number of items to return in the command's output. If the total number of items available is more than the value specified, a NextToken is provided in the command's output. To resume pagination, provide the NextToken value in the starting-token argument of a subsequent command. Do not use the NextToken response element directly outside of the AWS CLI.

For usage examples, see Pagination in the AWS Command Line Interface User Guide .

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

See 'aws help' for descriptions of global parameters.


To describe a compute environment

This example describes the P2OnDemand compute environment.


aws batch describe-compute-environments --compute-environments P2OnDemand


    "computeEnvironments": [
            "status": "VALID",
            "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole",
            "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/P2OnDemand",
            "computeResources": {
                "subnets": [
                "tags": {
                    "Name": "Batch Instance - P2OnDemand"
                "desiredvCpus": 48,
                "minvCpus": 0,
                "instanceTypes": [
                "securityGroupIds": [
                "instanceRole": "ecsInstanceRole",
                "maxvCpus": 128,
                "type": "EC2",
                "ec2KeyPair": "id_rsa"
            "statusReason": "ComputeEnvironment Healthy",
            "ecsClusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/P2OnDemand_Batch_2c06f29d-d1fe-3a49-879d-42394c86effc",
            "state": "ENABLED",
            "computeEnvironmentName": "P2OnDemand",
            "type": "MANAGED"


computeEnvironments -> (list)

The list of compute environments.


An object representing an AWS Batch compute environment.

computeEnvironmentName -> (string)

The name of the compute environment.

computeEnvironmentArn -> (string)

The Amazon Resource Name (ARN) of the compute environment.

ecsClusterArn -> (string)

The Amazon Resource Name (ARN) of the underlying Amazon ECS cluster used by the compute environment.

type -> (string)

The type of the compute environment.

state -> (string)

The state of the compute environment. The valid values are ENABLED or DISABLED .

If the state is ENABLED , then the AWS Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand.

If the state is DISABLED , then the AWS Batch scheduler does not attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state do not scale out. However, they scale in to minvCpus value after instances become idle.

status -> (string)

The current status of the compute environment (for example, CREATING or VALID ).

statusReason -> (string)

A short, human-readable string to provide additional details about the current status of the compute environment.

computeResources -> (structure)

The compute resources defined for the compute environment.

type -> (string)

The type of compute environment: EC2 or SPOT .

allocationStrategy -> (string)

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 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 additional instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types with a lower cost per vCPU. SPOT_CAPACITY_OPTIMIZED is only available for Spot Instance compute resources and will select additional instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types that are less likely to be interrupted. For more information, see `Allocation Strategies < >`__ in the AWS Batch User Guide .

minvCpus -> (integer)

The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is DISABLED ).

maxvCpus -> (integer)

The maximum number of Amazon EC2 vCPUs that an environment can reach.

desiredvCpus -> (integer)

The desired number of Amazon EC2 vCPUS in the compute environment.

instanceTypes -> (list)

The instances types that may be launched. You can specify instance families to launch any instance type within those families (for example, c5 or p3 ), or you can specify specific sizes within a family (such as c5.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.


imageId -> (string)

The Amazon Machine Image (AMI) ID used for instances launched in the compute environment.

subnets -> (list)

The VPC subnets into which the compute resources are launched. For more information, see VPCs and Subnets in the Amazon VPC User Guide .


securityGroupIds -> (list)

The Amazon EC2 security groups associated with instances launched in the compute environment. One or more security groups must be specified, either in securityGroupIds or using a launch template referenced in launchTemplate . If security groups are specified using both securityGroupIds and launchTemplate , the values in securityGroupIds will be used.


ec2KeyPair -> (string)

The Amazon EC2 key pair that is used for instances launched in the compute environment.

instanceRole -> (string)

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 .

tags -> (map)

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" }.

key -> (string)

value -> (string)

placementGroup -> (string)

The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see Placement Groups in the Amazon EC2 User Guide for Linux Instances .

bidPercentage -> (integer)

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 Amazon 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.

spotIamFleetRole -> (string)

The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This role is required if the allocation strategy set to BEST_FIT or if the allocation strategy is not specified. For more information, see Amazon EC2 Spot Fleet Role in the AWS Batch User Guide .

launchTemplate -> (structure)

The launch template to use for your compute resources. Any other compute resource parameters that you specify in a CreateComputeEnvironment API operation override the same parameters in the launch template. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see Launch Template Support in the AWS Batch User Guide .

launchTemplateId -> (string)

The ID of the launch template.

launchTemplateName -> (string)

The name of the launch template.

version -> (string)

The version number of the launch template.

Default: The default version of the launch template.

serviceRole -> (string)

The service role associated with the compute environment that allows AWS Batch to make calls to AWS API operations on your behalf.

nextToken -> (string)

The nextToken value to include in a future DescribeComputeEnvironments request. When the results of a DescribeJobDefinitions request exceed maxResults , this value can be used to retrieve the next page of results. This value is null when there are no more results to return.