

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

# 运行混合架构作业（X86\_64 和 ARM64）
<a name="ecs-managed-instances-multi-architecture"></a>

单个 Amazon ECS 托管实例计算环境和任务队列可以同时运行`X86_64`和`ARM64`（基于AWS Graviton 处理器的）任务。每个任务的运行容量都与其任务定义中声明的 CPU 架构相匹配。在任务定义`runtimePlatform.cpuArchitecture`中设置架构。您不在计算环境上配置架构。

要运行混合架构作业，请提供支持两种架构的容器映像（多架构映像清单），并为每个架构注册一个设置`runtimePlatform.cpuArchitecture`为或的任务定义。`X86_64` `ARM64`您可以将任一作业定义的任务提交到同一个任务队列。

```
"runtimePlatform": {
  "operatingSystemFamily": "LINUX",
  "cpuArchitecture": "ARM64"
}
```

然后通过以下方式之一设置计算环境：
+ 省略`instanceRequirements`使所有实例类型都符合条件。
+ 指定`allowedInstanceTypes`涵盖您的工作使用的每种架构。

不要指定实例类型  
省略该`instanceRequirements`字段`managedInstancesProvider.instanceLaunchTemplate`（限制计算环境可以使用哪些实例类型的设置）。所有实例类型均符合条件，Amazon ECS 会选择与每个任务相匹配的容量`runtimePlatform.cpuArchitecture`。`X86_64`任务在 x86 实例上启动，`ARM64`作业在同一计算环境的 AWS Graviton 实例上启动。

指定涵盖所需架构的实例类型  
如果您设置`instanceRequirements.allowedInstanceTypes`，请包括您的任务声明的每个架构的实例类型。Amazon ECS 根据您允许的实例类型推断出架构。允许的实例类型必须满足每个任务的要求`runtimePlatform.cpuArchitecture`。例如，要运行这两个架构，请包括：  
+ x86 系列，例如`m5`和 `c5`
+ AWS 引力子家族，例如和 `m7g` `c7g`

**如果没有匹配的实例类型可用，则任务将失败**  
如果允许的实例类型不包含任何与任务的声明架构相匹配的类型，则任务将失败，原因如下：  
`ResourceInitializationError: No available instance types were able to satisfy the task and placement constraints.`  
例如，如果仅`allowedInstanceTypes`列出 x86 系列，而您提交了`ARM64`任务，则任务会因此错误而失败。要解决此问题，请将 AWS Graviton 实例系列添加到`allowedInstanceTypes`中。或者，移除`instanceRequirements`以允许所有实例类型。