

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 资源：计算环境模板
<a name="compute-environment-template"></a>

以下示例显示了空的计算环境模板。您可以使用此模板创建计算环境，然后将其保存到文件中并与 Amazon CLI `--cli-input-json`选项一起使用。有关这些参数的更多信息，请参阅 *Amazon Batch API 参考[CreateComputeEnvironment](https://docs.amazonaws.cn/batch/latest/APIReference/API_CreateComputeEnvironment.html)*中的。

在创建托管 Amazon EC2 计算环境之前，请确保满足以下先决条件。当该`type`字段设置为时，这些先决条件适用`MANAGED`。
+ **安全组** — 您的计算资源需要一个允许出站流量的安全组，以便实例可以与 Amazon ECS 服务终端节点通信并提取容器映像。有关更多信息，请参阅 [创建安全组](create-a-base-security-group.md)。
+ **IAM 角色** — Amazon Batch 需要一个 Amazon ECS 实例角色，该角色允许容器实例代表您进行 Amazon API 调用。有关更多信息，请参阅[Amazon ECS 实例角色](instance_IAM_role.md)和[将服务相关角色用于 Amazon Batch](using-service-linked-roles.md)。
**注意**  
该`instanceRole`字段接受实例配置文件 ARN，而不是角色 ARN。格式为 `arn:aws:iam::{{account_id}}:instance-profile/{{ecsInstanceRole}}`。
+ **网络访问** — 计算资源必须能够访问 Amazon ECS 服务终端节点。如果您的实例位于没有公有 IP 地址的私有子网中，则可以使用 NAT 网关或 Amazon VPC 接口终端节点。有关更多信息，请参阅 [使用接口端点进行访问 Amazon Batch](vpc-interface-endpoints.md)。

**注意**  
您可以使用以下 Amazon CLI 命令生成计算环境模板。  

```
$ aws batch create-compute-environment --generate-cli-skeleton
```

**重要**  
必须以`ENABLED`状态创建计算环境。

以下示例显示了**托管 Amazon EC2 计算环境**的框架模板。如果是，`type`则需要`computeResources`方块`MANAGED`。

```
{
    "computeEnvironmentName": "",
    "type": "MANAGED",
    "state": "ENABLED",
    "computeResources": {
        "type": "EC2",
        "allocationStrategy": "BEST_FIT_PROGRESSIVE",
        "minvCpus": 0,
        "maxvCpus": 16,
        "desiredvCpus": 0,
        "instanceTypes": [
            "default_arm64"
        ],
        "subnets": [
            "{{subnet-a1b2c3d4}}"
        ],
        "securityGroupIds": [
            "{{sg-a1b2c3d4}}"
        ],
        "instanceRole": "arn:aws:iam::{{123456789012}}:instance-profile/{{ecsInstanceRole}}",
        "tags": {
            "KeyName": ""
        },
        "launchTemplate": {
            "launchTemplateId": "",
            "version": "$Default"
        },
        "ec2Configuration": [
            {
                "imageType": "ECS_AL2023"
            }
        ]
    },
    "serviceRole": "",
    "tags": {
        "KeyName": ""
    }
}
```

以下示例显示了**非托管 Amazon EC2 计算环境**的框架模板。该`computeResources`模块不用于`UNMANAGED`计算环境，应省略。

```
{
    "computeEnvironmentName": "",
    "type": "UNMANAGED",
    "state": "ENABLED",
    "unmanagedvCpus": 0,
    "serviceRole": "",
    "tags": {
        "KeyName": ""
    }
}
```