Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exécution de tâches à architecture mixte (X86_64 et ARM64)
Un seul environnement de calcul Amazon ECS Managed Instances et une seule file de tâches peuvent exécuter à la fois X86_64 des tâches ARM64 (basées sur le processeur AWS Graviton). Chaque tâche s'exécute sur une capacité qui correspond à l'architecture du processeur déclarée dans sa définition de tâche. Définissez l'architecture runtimePlatform.cpuArchitecture dans la définition du poste. Vous ne configurez pas l'architecture sur l'environnement informatique.
Pour exécuter des tâches à architecture mixte, fournissez une image de conteneur qui prend en charge les deux architectures (un manifeste d'image multi-architecture) et enregistrez une définition de tâche par architecture définie sur ou. runtimePlatform.cpuArchitecture X86_64 ARM64 Vous pouvez soumettre des tâches pour l'une ou l'autre des définitions de tâches à la même file d'attente de tâches.
"runtimePlatform": { "operatingSystemFamily": "LINUX", "cpuArchitecture": "ARM64" }
Configurez ensuite l'environnement informatique de l'une des manières suivantes :
-
Omettez
instanceRequirementsde rendre tous les types d'instances éligibles. -
Spécifiez
allowedInstanceTypesqu'ils couvrent toutes les architectures utilisées par vos tâches.
- Ne pas spécifier de type d'instance
-
Omettez le
instanceRequirementschamp demanagedInstancesProvider.instanceLaunchTemplate(le paramètre qui limite les types d'instances que l'environnement de calcul peut utiliser). Tous les types d'instances sont éligibles et Amazon ECS sélectionne la capacité qui correspond à celle de chaque tâcheruntimePlatform.cpuArchitecture. UneX86_64tâche est lancée sur une instance x86 et uneARM64tâche est lancée sur une instance AWS Graviton à partir du même environnement de calcul. - Spécifiez les types d'instances qui couvrent les architectures requises
-
Si vous définissez
instanceRequirements.allowedInstanceTypes, incluez des types d'instance pour chaque architecture déclarée par vos jobs. Amazon ECS déduit l'architecture à partir des types d'instances que vous autorisez. Les types d'instances autorisés doivent satisfaire à ceux de chaque tâcheruntimePlatform.cpuArchitecture. Par exemple, pour exécuter les deux architectures, incluez :-
les familles x86, telles que et
m5c5 -
AWS Les familles de gravitons, telles que et
m7gc7g
-
La tâche échoue si aucun type d'instance correspondant n'est disponible
Si les types d'instance autorisés n'incluent aucun type correspondant à l'architecture déclarée d'une tâche, celle-ci échoue pour la raison suivante :
ResourceInitializationError: No available instance types were able to satisfy the
task and placement constraints.
Par exemple, si vous ne allowedInstanceTypes répertoriez que les familles x86 et que vous soumettez une ARM64 tâche, celle-ci échoue avec cette erreur. Pour résoudre ce problème, ajoutez une famille d'instances AWS
Graviton àallowedInstanceTypes. Vous pouvez également supprimer instanceRequirements pour autoriser tous les types d'instances.