View a markdown version of this page

Création d'une définition de tâche sur les instances gérées Amazon ECS - AWS Batch

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.

Création d'une définition de tâche sur les instances gérées Amazon ECS

Les définitions de tâches d'Amazon ECS Managed Instances sont utilisées ecsProperties conjointement avec les fonctionnalités de la MANAGED_INSTANCES plateforme. Contrairement à Fargate, il n'existe aucune restriction sur les combinaisons de vCPU et de taille de mémoire, et les ressources GPU sont prises en charge. Pour plus d'informations sur les paramètres pris en charge, consultezDéfinitions des tâches sur les instances gérées Amazon ECS.

Création d'une définition de tâche sur Amazon ECS Managed Instances (console)

Pour créer une nouvelle définition de tâche sur les instances gérées Amazon ECS, procédez comme suit :
  1. Ouvrez la AWS Batch console à l'adresse https://console.aws.amazon.com/batch/.

  2. Dans la barre de navigation supérieure, choisissez l'option Région AWS à utiliser.

  3. Dans le volet de navigation de gauche, choisissez Définitions de tâches.

  4. Choisissez Créer.

  5. Pour le type d'orchestration, choisissez ECS Managed Instances.

  6. Dans le champ Nom, entrez un nom unique pour votre définition de poste. Le nom peut comporter jusqu'à 128 caractères. Il peut contenir des lettres majuscules et minuscules, des chiffres, des traits d'union (-) et des traits de soulignement (_).

  7. (Facultatif) Pour Execution timeout, entrez la valeur du timeout (en secondes). Le délai d'exécution est la durée qui s'écoule avant qu'une tâche inachevée ne soit terminée. Si une tentative dépasse le délai imparti, elle est arrêtée et passe à un FAILED statut. Pour de plus amples informations, veuillez consulter Délais d'exécution des tâches. La valeur minimale est 60 secondes.

  8. Pour le rôle d'exécution, choisissez un rôle IAM qui autorise l'agent de conteneur Amazon ECS à effectuer des appels AWS d'API en votre nom. Ce rôle est obligatoire pour les tâches Amazon ECS Managed Instances. Par exemple, le rôle est utilisé pour extraire des images de conteneurs depuis Amazon ECR.

  9. Dans la section Configuration du conteneur :

    1. Dans Image, entrez l'image du conteneur à utiliser pour la tâche. Les images des registres Amazon ECR peuvent être spécifiées selon la convention de repository-url/image:tag dénomination. Les images des registres publics utilisent l'URI complet (par exemple,public.ecr.aws/amazonlinux/amazonlinux:2023).

    2. Dans le champ Commande, entrez la commande à transmettre au conteneur.

    3. Dans vCPUs, précisez le nombre de vCPU à réserver pour le conteneur.

    4. Pour Mémoire, spécifiez la limite de mémoire (en MiB) disponible pour le conteneur.

    5. (Facultatif) Pour les GPU, spécifiez le nombre de périphériques GPU à mettre à la disposition du conteneur. L'environnement de calcul doit disposer d'instances GPU.

  10. (Facultatif) Développez les balises, puis choisissez Ajouter une balise pour ajouter des balises à la ressource. Activez Propager les balises pour propager les balises à partir de la tâche et de la définition de la tâche.

  11. Choisissez Créer une définition de tâche.

Création d'une définition de tâche sur les instances gérées Amazon ECS (AWS CLI)

Utilisez la register-job-definition commande pour créer une définition de tâche pour les instances gérées Amazon ECS.

Exemple de base

L'exemple suivant crée une définition de tâche minimale qui exécute une commande simple.

$ aws batch register-job-definition \ --job-definition-name my-managed-instances-job-def \ --type container \ --platform-capabilities MANAGED_INSTANCES \ --ecs-properties '{ "taskProperties": [{ "containers": [{ "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "name": "main", "command": ["echo", "hello managed instances"], "resourceRequirements": [ {"type": "VCPU", "value": "1"}, {"type": "MEMORY", "value": "1024"} ] }], "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole" }] }'

Définition des tâches du GPU

L'exemple suivant crée une définition de tâche qui demande des ressources GPU.

$ aws batch register-job-definition \ --job-definition-name my-gpu-managed-instances-job-def \ --type container \ --platform-capabilities MANAGED_INSTANCES \ --ecs-properties '{ "taskProperties": [{ "containers": [{ "image": "123456789012.dkr.ecr.us-east-1.amazonaws.com/my-gpu-image:latest", "name": "main", "command": ["nvidia-smi"], "resourceRequirements": [ {"type": "VCPU", "value": "4"}, {"type": "MEMORY", "value": "16384"}, {"type": "GPU", "value": "1"} ] }], "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole" }] }'

Multi-container définition du poste (sidecar)

L'exemple suivant crée une définition de tâche avec un conteneur principal et un conteneur de journalisation sidecar.

$ aws batch register-job-definition \ --job-definition-name my-sidecar-managed-instances-job-def \ --type container \ --platform-capabilities MANAGED_INSTANCES \ --ecs-properties '{ "taskProperties": [{ "containers": [{ "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "name": "main", "command": ["echo", "processing data"], "essential": true, "resourceRequirements": [ {"type": "VCPU", "value": "2"}, {"type": "MEMORY", "value": "4096"} ] }, { "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "name": "sidecar", "command": ["echo", "logging sidecar"], "essential": false, "resourceRequirements": [ {"type": "VCPU", "value": "1"}, {"type": "MEMORY", "value": "512"} ] }], "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole" }] }'