Référence : Paramètres de définition du job pour ContainerProperties - 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.

Référence : Paramètres de définition du job pour ContainerProperties

Les définitions de Job utilisées ContainerPropertiessont divisées en plusieurs parties :

  • le nom de la définition de tâche

  • le type de définition du poste

  • l'espace réservé par défaut pour la substitution de paramètres

  • les propriétés du conteneur pour la tâche

  • les EKS propriétés Amazon pour la définition des tâches qui sont nécessaires pour les tâches exécutées sur les EKS ressources Amazon

  • les propriétés du nœud nécessaires pour une tâche parallèle à nœuds multiples

  • les fonctionnalités de la plateforme nécessaires pour les tâches exécutées sur les ressources Fargate

  • les détails de propagation des balises par défaut de la définition de tâche

  • la stratégie de nouvelle tentative par défaut pour la définition de la tâche

  • la priorité de planification par défaut pour la définition de la tâche

  • les balises par défaut pour la définition de la tâche

  • le délai d'expiration par défaut pour la définition de la tâche

Nom de la définition du job

jobDefinitionName

Lorsque vous enregistrez une définition de tâche, vous indiquez un nom. 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 (_). La première définition de tâche enregistrée sous ce nom reçoit une révision de 1. Toutes les définitions de tâches enregistrées avec ce nom par la suite se voient attribuer un numéro de révision incrémentiel.

Type : String

Obligatoire : oui

Type

type

Lorsque vous enregistrez une définition de tâche, vous indiquez le type de tâche. Si la tâche s'exécute sur les ressources Fargate, elle n'est pas prise en chargemultinode. Pour plus d'informations sur les tâches parallèles à plusieurs nœuds, consultez Création d'une définition de tâche parallèle à nœuds multiples.

Type : String

Valeurs valides : container | multinode

Obligatoire : oui

Paramètres

parameters

Lorsque vous soumettez une tâche, vous pouvez spécifier des paramètres qui remplacent les espaces réservés ou remplacent les paramètres de définition de tâche par défaut. Les paramètres de demandes de soumission de tâche prévalent sur les valeurs par défaut dans une définition de tâche. Cela signifie que vous pouvez utiliser la même définition de tâche pour plusieurs tâches utilisant le même format. Vous pouvez également modifier les valeurs de la commande par programmation au moment de l'envoi.

Type : mappage chaîne/chaîne

Obligatoire : non

Lorsque vous enregistrez une définition de tâche, vous pouvez utiliser les espaces réservés de substitution de paramètres dans le champ command des propriétés de conteneur de la tâche. La syntaxe est la suivante.

"command": [ "ffmpeg", "-i", "Ref::inputfile", "-c", "Ref::codec", "-o", "Ref::outputfile" ]

Dans l'exemple ci-dessus, aucun espace réservé de substitution de paramètre Ref::inputfile, Ref::codec et Ref::outputfile n'est présent dans la commande. Vous pouvez utiliser l'parametersobjet dans la définition de tâche pour définir des valeurs par défaut pour ces espaces réservés. Par exemple, pour définir une valeur par défaut pour l'espace réservé Ref::codec, vous précisez les éléments suivants dans la définition de tâche :

"parameters" : {"codec" : "mp4"}

Lorsque cette définition de tâche est soumise pour être exécutée, l'Ref::codecargument de la commande pour le conteneur est remplacé par la valeur par défaut,mp4.

Propriétés du contenant

Lorsque vous enregistrez une définition de tâche, spécifiez une liste de propriétés de conteneur qui sont transmises au démon Docker sur une instance de conteneur lorsque la tâche est placée. Les propriétés de conteneurs suivantes sont autorisées dans une définition de tâche. Pour les tâches à nœud unique, ces propriétés de conteneur sont définies au niveau de la définition de tâche. Pour les tâches parallèles à plusieurs nœuds, les propriétés de conteneur sont définies au niveau Propriétés du nœud, pour chaque groupe de nœuds.

command

La commande transmise au conteneur. Ce paramètre correspond Cmd à la section Créer un conteneur de Docker Remote API et le COMMAND paramètre à docker run. Pour plus d'informations sur le CMD paramètre Docker, consultez https://docs.docker.com/engine/reference/builder/ #cmd.

"command": ["string", ...]

Type : tableau de chaînes

Obligatoire : non

environment

Variables d'environnement à transmettre à un conteneur. Ce paramètre correspond Env à la section Créer un conteneur de Docker Remote API et à l'--envoption de docker run.

Important

Nous vous déconseillons d'utiliser des variables d'environnement en texte clair pour les informations sensibles, comme les données d'informations d'identification.

Note

Les variables d'environnement ne doivent pas commencer parAWS_BATCH. Cette convention de dénomination est réservée aux variables définies par le AWS Batch service.

Type : tableau de paires clé-valeur

Obligatoire : non

name

Nom de la variable d'environnement.

Type : String

Obligatoire : oui lorsque environment est utilisé.

value

Valeur de la variable d'environnement.

Type : String

Obligatoire : oui lorsque environment est utilisé.

"environment" : [ { "name" : "envName1", "value" : "envValue1" }, { "name" : "envName2", "value" : "envValue2" } ]
executionRoleArn

Lorsque vous enregistrez une définition de tâche, vous pouvez spécifier un IAM rôle. Le rôle fournit à l'agent de ECS conteneur Amazon l'autorisation d'appeler en votre nom les API actions spécifiées dans ses politiques associées. Les tâches exécutées sur les ressources Fargate doivent fournir un rôle d'exécution. Pour de plus amples informations, veuillez consulter Rôle d'exécution AWS Batch IAM.

Type : chaîne

Obligatoire : non

fargatePlatformConfiguration

Configuration de la plate-forme pour les tâches exécutées sur les ressources Fargate. Les tâches exécutées sur EC2 des ressources ne doivent pas spécifier ce paramètre.

Type : objet FargatePlatformConfiguration

Obligatoire : non

platformVersion

La version AWS de la plateforme Fargate utilisée pour les tâches, LATEST ou pour utiliser une version récente et approuvée de la AWS plateforme Fargate.

Type : String

Par défaut: LATEST

Obligatoire : non

image

L'image utilisée pour démarrer une tâche. Cette chaîne est transmise directement au démon Docker. Les images dans le registre Docker Hub sont disponibles par défaut. Vous pouvez également spécifier d'autres référentiels avec repository-url/image:tag. Il peut comporter jusqu'à 255 lettres (majuscules et minuscules), des chiffres, des tirets, des traits de soulignement, deux points, des points, des barres obliques et des signes dièse. Ce paramètre correspond Image à la section Créer un conteneur de Docker Remote API et au IMAGE paramètre de docker run.

Note

Docker l'architecture de l'image doit correspondre à l'architecture du processeur des ressources de calcul sur lesquelles elles sont planifiées. Par exemple, Arm basé Docker les images ne peuvent être exécutées que sur Arm ressources informatiques basées sur des ressources informatiques.

  • Les images stockées dans les référentiels Amazon ECR Public utilisent les conventions complètes registry/repository[:tag] ou de registry/repository[@digest] dénomination (par exemple,public.ecr.aws/registry_alias/my-web-app:latest).

  • Les images stockées dans ECR les référentiels Amazon utilisent la convention de registry/repository:[tag] dénomination complète. Par exemple, aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest.

  • Les images dans les référentiels officiels sur Docker Hub utilisent un nom unique (par exemple, ubuntu ou mongo).

  • Les images dans les autres référentiels sur Docker Hub sont qualifiées par un nom d'organisation (par exemple, amazon/amazon-ecs-agent).

  • Les images dans les autres référentiels en ligne sont qualifiées par un nom de domaine (par exemple, quay.io/assemblyline/ubuntu).

Type : String

Obligatoire : oui

instanceType

Type d'instance à utiliser pour une tâche parallèle à plusieurs nœuds. Tous les groupes de nœuds dans une tâche parallèle à plusieurs nœuds doivent utiliser le même type d'instance. Ce paramètre n'est pas valide pour les tâches de conteneur à nœud unique ou pour les tâches exécutées sur des ressources Fargate.

Type : chaîne

Obligatoire : non

jobRoleArn

Lorsque vous enregistrez une définition de tâche, vous pouvez spécifier un IAM rôle. Le rôle fournit au conteneur de tâches l'autorisation d'appeler en votre nom les API actions spécifiées dans ses politiques associées. Pour plus d'informations, consultez la section IAMRôles des tâches dans le manuel Amazon Elastic Container Service Developer Guide.

Type : chaîne

Obligatoire : non

linuxParameters

Modifications spécifiques à Linux appliquées au conteneur, telles que les détails des mappages des appareils.

"linuxParameters": { "devices": [ { "hostPath": "string", "containerPath": "string", "permissions": [ "READ", "WRITE", "MKNOD" ] } ], "initProcessEnabled": true|false, "sharedMemorySize": 0, "tmpfs": [ { "containerPath": "string", "size": integer, "mountOptions": [ "string" ] } ], "maxSwap": integer, "swappiness": integer }

Type : objet LinuxParameters

Obligatoire : non

devices

Liste des appareils mappés au conteneur. Ce paramètre correspond Devices à la section Créer un conteneur de Docker Remote API et à l'--deviceoption Docker Run.

Note

Ce paramètre ne s'applique pas aux tâches exécutées sur les ressources Fargate.

Type : tableau d'objets Périphérique

Obligatoire : non

hostPath

Chemin où se trouve le périphérique disponible dans l'instance de conteneur hôte.

Type : String

Obligatoire : oui

containerPath

Le chemin où l'appareil est exposé dans le conteneur se trouve. Si cela n'est pas spécifié, le périphérique est exposé sur le même chemin que le chemin de l'hôte.

Type : chaîne

Obligatoire : non

permissions

Autorisations pour l'appareil dans le conteneur. Si cela n'est pas spécifié, les autorisations sont définies sur READWRITE, etMKNOD.

Type : tableau de chaînes

Obligatoire : non

Valeurs valides : READ | WRITE | MKNOD

initProcessEnabled

Si ce paramètre est défini sur « true », exécutez un processus init dans le conteneur afin de transmettre des signaux et de récolter les processus. Ce paramètre est mappé à l'option --init de docker run. Ce paramètre nécessite la version 1.25 de Docker Remote API ou une version ultérieure sur votre instance de conteneur. Pour vérifier la API version de Docker Remote sur votre instance de conteneur, connectez-vous à votre instance de conteneur et exécutez la commande suivante : sudo docker version | grep "Server API version"

Type : booléen

Obligatoire : non

maxSwap

Quantité totale de mémoire d'échange (en MiB) qu'une tâche peut utiliser. Ce paramètre est converti en l'option --memory-swap de la commande docker run, où la valeur est la somme de la mémoire du conteneur plus la valeur maxSwap. Pour plus d'informations, veuillez consulter les détails de --memory-swap de la documentation Docker.

Si la valeur 0 est spécifiée pour maxSwap, le conteneur n'utilise pas l'échange. Les valeurs acceptées sont 0 ou n'importe quel nombre entier positif. Si le maxSwap paramètre est omis, le conteneur utilise la configuration d'échange pour l'instance de conteneur sur laquelle il s'exécute. Une valeur maxSwap doit être définie pour que le paramètre swappiness soit utilisé.

Note

Ce paramètre ne s'applique pas aux tâches exécutées sur les ressources Fargate.

Type : entier

Obligatoire : non

sharedMemorySize

Valeur correspondant à la taille (en Mio) du volume /dev/shm. Ce paramètre est mappé à l'option --shm-size de docker run.

Note

Ce paramètre ne s'applique pas aux tâches exécutées sur les ressources Fargate.

Type : entier

Obligatoire : non

swappiness

Vous pouvez utiliser ce paramètre pour régler le comportement d'échange de mémoire d'un conteneur. swappinessLa valeur de 0 empêche l'échange, sauf en cas d'absolue nécessité. Avec la valeur swappiness pour 100, l'échange de pages a lieu de manière agressive. Les valeurs acceptées sont les nombres entiers compris entre 0 et 100. Si le paramètre swappiness n'est pas spécifié, la valeur par défaut 60 est utilisée. Si aucune valeur n'est spécifiée pour maxSwap, le paramètre est ignoré. Si maxSwap est défini sur 0, le conteneur n'a pas recours à l'échange. Ce paramètre est mappé à l'option --memory-swappiness de docker run.

Tenez compte des points suivants lorsque vous utilisez une configuration d'échange par conteneur.

  • L'espace d'échange doit être activé et alloué sur l'instance de conteneur pour que les conteneurs puissent l'utiliser.

    Note

    Le swap n'est AMIs pas activé par défaut sur les Amazon ECS optimisés. Vous devez activer l'échange sur l'instance pour utiliser cette fonction. Pour plus d'informations, consultez Instance Store Swap Volumes dans le guide de EC2 l'utilisateur Amazon ou Comment allouer de la mémoire pour qu'elle fonctionne comme espace de swap dans une EC2 instance Amazon à l'aide d'un fichier d'échange ? .

  • Les paramètres de l'espace d'échange ne sont pris en charge que pour les définitions de tâches utilisant EC2 des ressources.

  • Si les paramètres maxSwap et swappiness sont omis d'une définition de tâche, chaque conteneur a une valeur swappiness par défaut de 60. L'utilisation totale du swap est limitée à deux fois la réserve de mémoire du conteneur.

Note

Ce paramètre ne s'applique pas aux tâches exécutées sur les ressources Fargate.

Type : entier

Obligatoire : non

tmpfs

Le chemin du conteneur, les options de montage et la taille du tmpfs monture.

Type : tableau d'objets Tmpfs

Note

Ce paramètre ne s'applique pas aux tâches exécutées sur les ressources Fargate.

Obligatoire : non

containerPath

Le chemin de fichier absolu dans le conteneur où tmpfs le volume est monté.

Type : String

Obligatoire : oui

mountOptions

La liste des tmpfs options de montage du volume.

Valeurs valides : "defaults" | ro "" | rw "" | suid "" | nosuid "" | dev "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | remount "" | mand "|" nomand "|" atime "|noatime" "|diratime" » | nodiratime "|bind" | "|rbind" | unbindable "|runbindable" | "|private" | rprivate "|" | shared "|rshared" "|slave" » | rslave "relatime" | norelatime "» | « strictatime » | « nostrictatime » | » mode« |" uid "|" gid "|" nr_inodes "|" nr_blocks "|" mpol »

Type : tableau de chaînes

Obligatoire : non

size

La taille (en MiB) du tmpfs volume.

Type : entier

Obligatoire : oui

logConfiguration

Spécification de configuration du journal pour la tâche.

Ce paramètre correspond LogConfig à la section Créer un conteneur de Docker Remote API et à l'--log-driveroption Docker Run. Par défaut, les conteneurs utilisent le même pilote de journalisation que celui utilisé par le démon Docker. Toutefois, le conteneur peut utiliser un pilote de journalisation différent de celui du daemon Docker en spécifiant un pilote de journal avec ce paramètre dans la définition du conteneur. Pour utiliser un pilote de journalisation différent pour un conteneur, le système de journalisation doit être configuré sur l'instance du conteneur ou sur un autre serveur de journaux afin de fournir des options de journalisation à distance. Pour plus d'informations sur les options relatives aux différents pilotes du journal pris en charge, consultez la section Configure logging drivers (Configurer les pilotes de journalisation) dans la documentation Docker.

Note

AWS Batch prend actuellement en charge un sous-ensemble des pilotes de journalisation disponibles pour le démon Docker (indiqué dans le type de LogConfigurationdonnées).

Ce paramètre nécessite la version 1.18 de Docker Remote API ou une version ultérieure sur votre instance de conteneur. Pour vérifier la API version de Docker Remote sur votre instance de conteneur, connectez-vous à votre instance de conteneur et exécutez la commande suivante : sudo docker version | grep "Server API version"

"logConfiguration": { "devices": [ { "logDriver": "string", "options": { "optionName1" : "optionValue1", "optionName2" : "optionValue2" } "secretOptions": [ { "name" : "secretOptionName1", "valueFrom" : "secretOptionArn1" }, { "name" : "secretOptionName2", "valueFrom" : "secretOptionArn2" } ] } ] }

Type : objet LogConfiguration

Obligatoire : non

logDriver

Le pilote de journal à utiliser pour la tâche. Par défaut, AWS Batch active le pilote de awslogs journal. Les valeurs valides répertoriées pour ce paramètre sont des pilotes de journal avec lesquels l'agent de ECS conteneur Amazon peut communiquer par défaut.

Ce paramètre correspond LogConfig à la section Créer un conteneur de Docker Remote API et à l'--log-driveroption Docker Run. Par défaut, les tâches utilisent le même pilote de journalisation que celui utilisé par le démon Docker. Cependant, la tâche peut utiliser un pilote de journalisation différent de celui du démon Docker en spécifiant un pilote de journal avec ce paramètre dans la définition de la tâche. Si vous souhaitez spécifier un autre pilote de journalisation pour une tâche, le système de journalisation doit être configuré sur l'instance de conteneur dans l'environnement informatique. Vous pouvez également le configurer sur un autre serveur de journaux pour fournir des options de journalisation à distance. Pour plus d'informations sur les options relatives aux différents pilotes du journal pris en charge, consultez la section Configure logging drivers (Configurer les pilotes de journalisation) dans la documentation Docker.

Note

AWS Batch prend actuellement en charge un sous-ensemble des pilotes de journalisation disponibles pour le démon Docker. Des pilotes de journal supplémentaires pourraient être disponibles dans les futures versions de l'agent de ECS conteneur Amazon.

Les pilotes de journal pris en charge sont awslogs, fluentd, gelf, json-file, journald, logentries, syslog et splunk.

Note

Les tâches exécutées sur les ressources Fargate sont limitées aux awslogs pilotes et log. splunk

Ce paramètre nécessite la version 1.18 de Docker Remote API ou une version ultérieure sur votre instance de conteneur. Pour vérifier la API version de Docker Remote sur votre instance de conteneur, connectez-vous à votre instance de conteneur et exécutez la commande suivante : sudo docker version | grep "Server API version"

Note

L'agent de ECS conteneur Amazon qui s'exécute sur une instance de conteneur doit enregistrer les pilotes de journalisation disponibles sur cette instance avec la variable d'ECS_AVAILABLE_LOGGING_DRIVERSenvironnement. Dans le cas contraire, les conteneurs placés sur cette instance ne peuvent pas utiliser ces options de configuration du journal. Pour plus d'informations, consultez la section Configuration d'Amazon ECS Container Agent dans le manuel du développeur Amazon Elastic Container Service.

awslogs

Spécifie le pilote de CloudWatch journalisation Amazon Logs. Pour plus d'informations, consultez le pilote Utiliser le pilote de journal awslogs de journalisation Amazon CloudWatch Logs dans la documentation Docker.

fluentd

Spécifie le pilote de journalisation Fluentd. Pour plus d'informations, notamment sur l'utilisation et les options, consultez le pilote de journalisation Fluentd dans la documentation Docker.

gelf

Spécifie le pilote de journalisation Graylog Extended Format (GELF). Pour plus d'informations, notamment sur l'utilisation et les options, consultez le pilote de journalisation Graylog Extended Format dans la documentation Docker.

journald

Spécifie le pilote de journalisation journald. Pour plus d'informations, notamment sur son utilisation et ses options, consultez le pilote de journalisation Journald dans la documentation Docker.

json-file

Spécifie le pilote JSON de journalisation des fichiers. Pour plus d'informations, notamment sur l'utilisation et les options, consultez la section Pilote de journalisation de JSON fichiers dans la documentation Docker.

splunk

Spécifie le pilote de journalisation Splunk. Pour plus d'informations, notamment sur l'utilisation et les options, consultez le pilote de journalisation Splunk dans la documentation Docker.

syslog

Spécifie le pilote de journalisation syslog. Pour plus d'informations, notamment sur l'utilisation et les options, consultez le pilote de journalisation Syslog dans la documentation Docker.

Type : String

Obligatoire : oui

Valeurs valides : awslogs | fluentd | gelf | journald | json-file | splunk | syslog

Note

Si vous avez un pilote personnalisé qui n'est pas répertorié précédemment et que vous souhaitez utiliser avec l'agent de ECS conteneur Amazon, vous pouvez bifurquer le projet d'agent de ECS conteneur Amazon disponible sur GitHub et le personnaliser pour qu'il fonctionne avec ce pilote. Nous vous conseillons d'envoyer des demandes d'extraction pour les modifications que vous souhaitez inclure. Cependant, Amazon Web Services ne prend actuellement pas en charge les demandes qui exécutent des copies modifiées de ce logiciel.

options

Options de configuration du journal à envoyer à un pilote de journal pour la tâche.

Ce paramètre nécessite la version 1.19 de Docker Remote API ou une version ultérieure sur votre instance de conteneur.

Type : mappage chaîne/chaîne

Obligatoire : non

secretOptions

Objet qui représente le secret à transmettre à la configuration de journal. Pour de plus amples informations, veuillez consulter Spécifier les données sensibles.

Type : tableau d’objets

Obligatoire : non

name

Nom de l'option de pilote de journal à définir dans le job.

Type : String

Obligatoire : oui

valueFrom

Le nom de ressource Amazon (ARN) du secret à exposer à la configuration du journal du conteneur. Les valeurs prises en charge sont soit l'intégralité ARN du secret du Gestionnaire de Secrets Manager, soit l'intégralité ARN du paramètre dans le SSM Parameter Store.

Note

Si le SSM paramètre Parameter Store existe au même Région AWS endroit que la tâche que vous lancez, vous pouvez utiliser le nom complet ARN ou le nom du paramètre. Si le paramètre existe dans une autre région, la valeur complète ARN doit être spécifiée.

Type : String

Obligatoire : oui

memory

Ce paramètre est obsolète, resourceRequirements utilisez-le à la place.

Le nombre de MiB de mémoire réservé à la tâche.

À titre d'exemple d'utilisationresourceRequirements, si votre définition de tâche contient une syntaxe similaire à la suivante.

"containerProperties": { "memory": 512 }

La syntaxe équivalente utilisée resourceRequirements est la suivante.

"containerProperties": { "resourceRequirements": [ { "type": "MEMORY", "value": "512" } ] }

Type : entier

Obligatoire : oui

mountPoints

Points de montage des volumes de données dans votre conteneur. Ce paramètre correspond Volumes à la section Créer un conteneur de Docker Remote API et à l'--volumeoption de docker run.

"mountPoints": [ { "sourceVolume": "string", "containerPath": "string", "readOnly": true|false } ]

Type : tableau d'objets

Obligatoire : non

sourceVolume

Nom du volume à monter.

Type : String

Obligatoire : oui lorsque mountPoints est utilisé.

containerPath

Le chemin sur le conteneur où monter le volume hôte.

Type : String

Obligatoire : oui lorsque mountPoints est utilisé.

readOnly

Si cette valeur est true, le conteneur ne peut accéder au volume qu'en lecture. Si cette valeur est false, le conteneur peut écrire sur le volume.

Type : booléen

Obligatoire : non

Par défaut : false

networkConfiguration

Configuration réseau pour les tâches exécutées sur les ressources Fargate. Les tâches exécutées sur EC2 des ressources ne doivent pas spécifier ce paramètre.

"networkConfiguration": { "assignPublicIp": "string" }

Type : tableau d'objets

Obligatoire : non

assignPublicIp

Indique si la tâche présene une adresse IP publique. Cela est nécessaire si la tâche nécessite un accès réseau sortant.

Type : String

Valeurs valides : ENABLED | DISABLED

Obligatoire : non

Par défaut : DISABLED

privileged

Lorsque ce paramètre est défini sur true (vrai), des autorisations élevées inhérentes à l'instance de conteneur hôte sont accordées au conteneur (semblable à l'utilisateur root). Ce paramètre correspond Privileged à la section Créer un conteneur de Docker Remote API et à l'--privilegedoption de docker run. Ce paramètre ne s'applique pas aux tâches exécutées sur les ressources Fargate. Ne le fournissez pas et ne le spécifiez pas comme faux.

"privileged": true|false

Type : booléen

Obligatoire : non

readonlyRootFilesystem

Quand ce paramètre a la valeur true, le conteneur ne dispose que d'un accès en lecture seule au système de fichiers racine. Ce paramètre correspond ReadonlyRootfs à la section Créer un conteneur de Docker Remote API et à l'--read-onlyoption de docker run.

"readonlyRootFilesystem": true|false

Type : booléen

Obligatoire : non

resourceRequirements

Type et quantité d'une ressource à attribuer à un conteneur. Les ressources prises en charge comprennent GPU, MEMORY et VCPU.

"resourceRequirements" : [ { "type": "GPU", "value": "number" } ]

Type : tableau d'objets

Obligatoire : non

type

Type d'une ressource à attribuer à un conteneur. Les ressources prises en charge comprennent GPU, MEMORY et VCPU.

Type : String

Obligatoire : oui lorsque resourceRequirements est utilisé.

value

La quantité de la ressource spécifiée à réserver pour le conteneur. Les valeurs varient en fonction du type spécifié.

type = » GPU

Le nombre de billets physiques GPUs à réserver pour le conteneur. Le nombre de conteneurs GPUs réservés à tous les conteneurs d'une tâche ne peut pas dépasser le nombre de conteneurs disponibles GPUs sur la ressource de calcul sur laquelle la tâche est lancée.

type = » MEMORY

La limite stricte (en Mio) de la mémoire à présenter le conteneur. Si votre conteneur tente de dépasser la mémoire spécifiée ici, il sera désactivé. Ce paramètre correspond Memory à la section Créer un conteneur de Docker Remote API et à l'--memoryoption Docker Run. Vous devez spécifier au moins 4 Mio de mémoire pour une tâche. Cela est obligatoire mais peut être spécifié à plusieurs endroits pour les tâches parallel (MNP) à nœuds multiples. Elle doit être spécifiée pour chaque nœud au moins une fois. Ce paramètre correspond Memory à la section Créer un conteneur de Docker Remote API et à l'--memoryoption Docker Run.

Note

Si vous essayez de maximiser l'utilisation de vos ressources en fournissant à vos tâches autant de mémoire que possible pour un type d'instance particulier, consultezGestion de la mémoire des ressources informatiques.

Pour les tâches exécutées sur des ressources Fargate, value elles doivent correspondre à l'une des valeurs prises en charge. De plus, les VCPU valeurs doivent être l'une des valeurs prises en charge pour cette valeur de mémoire.

VCPU MEMORY

0,25 v CPU

512, 1024 et 2048 MiB

0,5 v CPU

1024 à 4096 MiB par incréments de 1024 MiB

1 v CPU

2048-8192 MiB par incréments de 1024 MiB

2 v CPU

4096-16384 MiB par incréments de 1024 MiB

4 v CPU

8192-30720 MiB par incréments de 1024 MiB

8 v CPU

16384-61440 MiB par incréments de 4096 MiB

16 v CPU

32768-122880 MiB par incréments de 8192 MiB

type = » VCPU

Le nombre de vCPUs personnes réservées pour le travail. Ce paramètre correspond CpuShares à la section Créer un conteneur de Docker Remote API et à l'--cpu-sharesoption Docker Run. Chaque v CPU équivaut à 1 024 CPU actions. Pour les tâches exécutées sur EC2 des ressources, vous devez spécifier au moins un CPU v. Cela est obligatoire mais peut être spécifié à plusieurs endroits. Elle doit être spécifiée pour chaque nœud au moins une fois.

Pour les tâches exécutées sur des ressources Fargatevalue, elles doivent correspondre à l'une des valeurs prises en charge et les valeurs doivent être MEMORY l'une des valeurs prises en charge pour cette valeur. VCPU Les valeurs prises en charge sont 0,25, 0,5, 1, 2, 4, 8 et 16.

Le quota de ressources par défaut pour Fargate On-Demand CPU v est de 6. vCPUs Pour plus d'informations sur les quotas de Fargate, consultez la section Quotas de AWS Fargate dans le. Référence générale d'Amazon Web Services

Type : String

Obligatoire : oui lorsque resourceRequirements est utilisé.

secrets

Les secrets du travail exposés sous forme de variables d'environnement. Pour de plus amples informations, veuillez consulter Spécifier les données sensibles.

"secrets": [ { "name": "secretName1", "valueFrom": "secretArn1" }, { "name": "secretName2", "valueFrom": "secretArn2" } ... ]

Type : tableau d'objets

Obligatoire : non

name

Nom de la variable d'environnement qui contient le secret.

Type : String

Obligatoire : oui lorsque secrets est utilisé.

valueFrom

Secret à exposer au conteneur. Les valeurs prises en charge sont soit le nom complet de la ressource Amazon (ARN) du secret Secrets Manager, soit l'intégralité ARN du paramètre dans le SSM Parameter Store.

Note

Si le SSM paramètre Parameter Store existe au même Région AWS endroit que la tâche que vous lancez, vous pouvez utiliser le nom complet ARN ou le nom du paramètre. Si le paramètre existe dans une autre région, la valeur complète ARN doit être spécifiée.

Type : String

Obligatoire : oui lorsque secrets est utilisé.

ulimits

Une liste de valeurs ulimits à définir dans le conteneur. Ce paramètre correspond Ulimits à la section Créer un conteneur de Docker Remote API et à l'--ulimitoption de docker run.

"ulimits": [ { "name": string, "softLimit": integer, "hardLimit": integer } ... ]

Type : tableau d'objets

Obligatoire : non

name

Le type d'ulimit.

Type : String

Obligatoire : oui lorsque ulimits est utilisé.

hardLimit

La limite stricte du type ulimit.

Type : entier

Obligatoire : oui lorsque ulimits est utilisé.

softLimit

La limite flexible du type ulimit.

Type : entier

Obligatoire : oui lorsque ulimits est utilisé.

user

Le nom utilisateur à utiliser à l'intérieur du conteneur. Ce paramètre correspond User à la section Créer un conteneur de Docker Remote API et à l'--useroption de docker run.

"user": "string"

Type : chaîne

Obligatoire : non

vcpus

Ce paramètre est obsolète, resourceRequirements utilisez-le à la place.

Le nombre de vCPUs livres réservés pour le conteneur.

À titre d'exemple d'utilisationresourceRequirements, si votre définition de tâche contient des lignes similaires à celles-ci :

"containerProperties": { "vcpus": 2 }

Les lignes équivalentes utilisées resourceRequirements sont les suivantes.

"containerProperties": { "resourceRequirements": [ { "type": "VCPU", "value": "2" } ] }

Type : entier

Obligatoire : oui

volumes

Lorsque vous enregistrez une définition de tâche, vous pouvez éventuellement préciser une liste de volumes qui sont transmis au daemon Docker sur une instance de conteneur. Les paramètres suivants sont autorisés dans les propriétés du conteneur :

"volumes": [ { "name": "string", "host": { "sourcePath": "string" }, "efsVolumeConfiguration": { "authorizationConfig": { "accessPointId": "string", "iam": "string" }, "fileSystemId": "string", "rootDirectory": "string", "transitEncryption": "string", "transitEncryptionPort": number } } ]
name

Nom du volume. Il peut comporter jusqu'à 255 lettres (majuscules et minuscules), des chiffres, des tirets ou des traits de soulignement. Ce nom est référencé dans le sourceVolume paramètre de définition de conteneur mountPoints.

Type : chaîne

Obligatoire : non

host

Le contenu du paramètre host détermine si le volume de données persiste sur l'instance de conteneur hôte et où il est stocké. Si le paramètre host est vide, le daemon Docker attribue un chemin hôte pour votre volume de données. Cependant, il n'est pas garanti que les données persistent une fois que le conteneur qui leur est associé cesse de fonctionner.

Note

Ce paramètre ne s'applique pas aux tâches exécutées sur les ressources Fargate.

Type : objet

Obligatoire : non

sourcePath

Le chemin d'accès sur l'instance de conteneur hôte qui est présenté au conteneur. Si ce paramètre est vide, le démon Docker attribue un chemin hôte pour vous.

Si le paramètre host contient un emplacement de fichier sourcePath, le volume de données persiste à l'emplacement spécifié sur l'instance de conteneur hôte jusqu'à ce que vous le supprimiez manuellement. Si la valeur sourcePath n'existe pas sur l'instance de conteneur hôte, le démon Docker la crée. Si l'emplacement n'existe pas, le contenu du chemin source est exporté.

Type : chaîne

Obligatoire : non

efsVolumeConfiguration

Ce paramètre est spécifié lorsque vous utilisez un système de fichiers Amazon Elastic File System pour le stockage des tâches. Pour de plus amples informations, veuillez consulter EFSVolumes Amazon.

Type : objet

Obligatoire : non

authorizationConfig

Les détails de configuration des autorisations pour le système de EFS fichiers Amazon.

Type : chaîne

Obligatoire : non

accessPointId

L'ID du point EFS d'accès Amazon à utiliser. Si un point d'accès est spécifié, la valeur du répertoire racine spécifiée dans le EFSVolumeConfiguration doit être omise ou définie sur. / Cela applique le chemin défini sur le point EFS d'accès. Si un point d'accès est utilisé, le chiffrement de transit doit être activé dans EFSVolumeConfiguration. Pour plus d'informations, consultez Working with Amazon EFS Access Points dans le guide de l'utilisateur d'Amazon Elastic File System.

Type : chaîne

Obligatoire : non

iam

Détermine s'il faut utiliser le IAM rôle de AWS Batch travail défini dans une définition de tâche lors du montage du système de EFS fichiers Amazon. Si cette option est activée, le chiffrement en transit doit être activé dans la configuration EFSVolumeConfiguration. Si ce paramètre est omis, la valeur par défaut DISABLED est utilisée. Pour de plus amples informations, veuillez consulter Utiliser les points EFS d'accès Amazon.

Type : String

Valeurs valides : ENABLED | DISABLED

Obligatoire : non

fileSystemId

L'ID EFS du système de fichiers Amazon à utiliser.

Type : chaîne

Obligatoire : non

rootDirectory

Le répertoire du système de EFS fichiers Amazon à monter en tant que répertoire racine sur l'hôte. Si ce paramètre est omis, la racine du EFS volume Amazon est utilisée. Si vous le spécifiez/, cela a le même effet que l'omission de ce paramètre. La longueur maximale est de 4 096 caractères.

Important

Si un point d'EFSaccès est spécifié dans leauthorizationConfig, le paramètre du répertoire racine doit être omis ou défini sur. / Cela applique le chemin défini sur le point d'EFSaccès Amazon.

Type : chaîne

Obligatoire : non

transitEncryption

Détermine s'il faut activer le chiffrement des EFS données Amazon en transit entre l'ECShôte Amazon et le EFS serveur Amazon. Le chiffrement du transit doit être activé si EFS IAM l'autorisation Amazon est utilisée. Si ce paramètre est omis, la valeur par défaut DISABLED est utilisée. Pour plus d'informations, consultez Chiffrement des données en transit dans le Guide de l'utilisateur Amazon Elastic File System.

Type : String

Valeurs valides : ENABLED | DISABLED

Obligatoire : non

transitEncryptionPort

Port à utiliser lors de l'envoi de données chiffrées entre l'ECShôte Amazon et le EFS serveur Amazon. Si vous ne spécifiez aucun port de chiffrement de transit, celui-ci utilise la stratégie de sélection de port utilisée par l'assistant de EFS montage Amazon. La valeur doit être comprise entre 0 et 65 535. Pour plus d'informations, consultez EFSMount Helper dans le guide de l'utilisateur d'Amazon Elastic File System.

Type : entier

Obligatoire : non

EKSPropriétés d'Amazon

Un objet doté de différentes propriétés spécifiques aux tâches EKS basées sur Amazon. Cela ne doit pas être spécifié pour les définitions de tâches ECS basées sur Amazon.

podProperties

Les propriétés du Kubernetes ressources d'un emploi.

Type : objet EksPodProperties

Obligatoire : non

containers

Les propriétés du conteneur utilisé sur le EKS pod Amazon.

Type : objet EksContainer

Obligatoire : non

args

Tableau d'arguments pour le point d'entrée. Si cela n'est pas spécifié, le CMD de l'image de conteneur est utilisée. Cela correspond au args membre figurant dans la partie Entrypoint du Pod dans Kubernetes. Les références aux variables d'environnement sont développées à l'aide de l'environnement du conteneur.

Si la variable d'environnement référencée n'existe pas, la référence de la commande ne change pas. Par exemple, si la référence porte sur « $(NAME1) » et que la variable d'environnement NAME1 n'existe pas, la chaîne de commande reste « $(NAME1) ». $$ est remplacé par $, et la chaîne résultante n'est pas développée. Par exemple, $$(VAR_NAME) est transmis en tant que $(VAR_NAME), que la variable d'environnement VAR_NAME existe ou non. Pour plus d'informations, consultez CMDla référence Dockerfile et la section Définir une commande et des arguments pour un pod dans le Kubernetes documentation.

Type : tableau de chaînes

Obligatoire : non

command

Point d'entrée du conteneur. Il n'est pas exécuté dans un shell. Si cela n'est pas spécifié, le ENTRYPOINT de l'image de conteneur est utilisé. Les références aux variables d'environnement sont étendues à l'aide de l'environnement du conteneur.

Si la variable d'environnement référencée n'existe pas, la référence de la commande ne change pas. Par exemple, si la référence porte sur « $(NAME1) » et que la variable d'environnement NAME1 n'existe pas, la chaîne de commande reste « $(NAME1) ». $$ est remplacé par $, et la chaîne résultante n'est pas développée. Par exemple, $$(VAR_NAME) est transmis en tant que $(VAR_NAME), que la variable d'environnement VAR_NAME existe ou non. Ce point d'entrée ne peut pas être mis à jour. Pour plus d'informations, reportez-vous ENTRYPOINTà la référence Dockerfile et à Définir une commande et des arguments pour un conteneur et un point d'entrée dans Kubernetes documentation.

Type : tableau de chaînes

Obligatoire : non

env

Variables d'environnement à transmettre à un conteneur.

Note

Les variables d'environnement ne peuvent pas commencer par « AWS_BATCH ». Cette convention de dénomination est réservée aux variables AWS Batch définies.

Type : tableau d’objets EksContainerEnvironmentVariable

Obligatoire : non

name

Nom de la variable d'environnement.

Type : String

Obligatoire : oui

value

Valeur de la variable d'environnement.

Type : chaîne

Obligatoire : non

image

Image Docker utilisée pour démarrer le conteneur.

Type : String

Obligatoire : oui

imagePullPolicy

Stratégie d'extraction d'images pour le conteneur. Les valeurs prises en charge sont Always, IfNotPresent et Never. Ce paramètre a pour valeur par défaut IfNotPresent. Toutefois, si la balise :latest est spécifiée, elle prend par défaut la valeur Always. Pour plus d'informations, consultez la section Mise à jour des images dans le Kubernetes documentation.

Type : chaîne

Obligatoire : non

name

Nom du conteneur. Si le nom n'est pas spécifié, le nom par défaut « Default » est utilisé. Chaque conteneur d'un pod doit porter un nom unique.

Type : chaîne

Obligatoire : non

resources

Le type et la quantité de ressources à attribuer à un conteneur. Les ressources prises en charge comprennent memory, cpu et nvidia.com/gpu. Pour plus d'informations, consultez la section Gestion des ressources pour les pods et les conteneurs dans le Kubernetes documentation.

Type : objet EksContainerResourceRequirements

Obligatoire : non

limits

Type et quantité de ressources spécifiés à réserver pour le conteneur. Les valeurs varient en fonction du name spécifié. Les ressources peuvent être demandées à l'aide des objets limits ou requests.

memory

Limite stricte de mémoire (en Mio) du conteneur, en entiers, avec un suffixe « Mi ». Si votre conteneur tente de dépasser la mémoire spécifiée, il est résilié. Vous devez spécifier au moins 4 Mio de mémoire pour une tâche. La memory peut être spécifiée dans limits, requests ou les deux. Si memory est spécifié dans les deux, la valeur spécifiée dans limits doit être égale à la valeur spécifiée dans requests.

Note

Pour optimiser l'utilisation de vos ressources, fournissez à vos tâches autant de mémoire que possible pour le type d'instance spécifique que vous utilisez. Pour savoir comment procéder, veuillez consulter la section Gestion de la mémoire des ressources informatiques.

cpu

Le numéro CPUs est réservé au conteneur. Les valeurs doivent correspondre à un multiple pair de 0.25. Le cpu peut être spécifié dans limits, requests ou les deux. Si le cpu est spécifié dans les deux, la valeur spécifiée dans limits doit être au moins égale à la valeur spécifiée dans requests.

nvidia.com/gpu

Le numéro GPUs est réservé au conteneur. Les valeurs doivent correspondre à un entier. memory peut être spécifié dans limits, requests ou les deux. Si memory est spécifié dans les deux, la valeur spécifiée dans limits doit être égale à la valeur spécifiée dans requests.

Type : mappage chaîne/chaîne

Contraintes de longueur de valeur : longueur minimale de 1. Longueur maximale de 256.

Obligatoire : non

requests

Type et quantité de ressources spécifiés à demander pour le conteneur. Les valeurs varient en fonction du name spécifié. Les ressources peuvent être demandées à l'aide des objets limits ou requests.

memory

Limite stricte de mémoire (en Mio) du conteneur, en entiers, avec un suffixe « Mi ». Si votre conteneur tente de dépasser la mémoire spécifiée, il est résilié. Vous devez spécifier au moins 4 Mio de mémoire pour une tâche. La memory peut être spécifiée dans limits, requests ou les deux. Si memory est spécifié dans les deux, la valeur spécifiée dans limits doit être égale à la valeur spécifiée dans requests.

Note

Si vous essayez de maximiser l'utilisation de vos ressources en fournissant à vos tâches autant de mémoire que possible pour un type d'instance particulier, consultezGestion de la mémoire des ressources informatiques.

cpu

Le nombre de CPUs ceux-ci sont réservés au conteneur. Les valeurs doivent correspondre à un multiple pair de 0.25. Le cpu peut être spécifié dans limits, requests ou les deux. Si le cpu est spécifié dans les deux, la valeur spécifiée dans limits doit être au moins égale à la valeur spécifiée dans requests.

nvidia.com/gpu

Le nombre de GPUs ceux-ci sont réservés au conteneur. Les valeurs doivent correspondre à un entier. nvidia.com/gpu peut être spécifié dans limits, requests ou les deux. Si nvidia.com/gpu est spécifié dans les deux, la valeur spécifiée dans limits doit être égale à la valeur spécifiée dans requests.

Type : mappage chaîne/chaîne

Contraintes de longueur de valeur : longueur minimale de 1. Longueur maximale de 256.

Obligatoire : non

securityContext

Contexte de sécurité d'une tâche. Pour plus d'informations, voir Configurer un contexte de sécurité pour un pod ou un conteneur dans le Kubernetes documentation.

Type : objet EksContainerSecurityContext

Obligatoire : non

privileged

Lorsque ce paramètre est défini sur true true, des autorisations élevées inhérentes à l'instance de conteneur hôte sont accordées au conteneur. Le niveau des autorisations est similaire à celui des autorisations des root utilisateurs. La valeur par défaut est false. Ce paramètre correspond à la privileged politique définie dans les politiques de sécurité du module Privileged dans le Kubernetes documentation.

Type : booléen

Obligatoire : non

readOnlyRootFilesystem

Lorsque ce paramètre est défini sur true, le conteneur ne dispose que d'un accès en lecture seule au système de fichiers racine. La valeur par défaut est false. Ce paramètre correspond à la ReadOnlyRootFilesystem politique définie dans les politiques de sécurité du module Volumes et systèmes de fichiers dans le Kubernetes documentation.

Type : booléen

Obligatoire : non

runAsGroup

Lorsque ce paramètre est spécifié, le conteneur est exécuté avec l'ID de groupe spécifié (gid). Si ce paramètre n'est pas spécifié, le groupe spécifié dans les métadonnées d'image correspond au groupe par défaut. Ce paramètre correspond aux MustRunAs politiques RunAsGroup définies dans le module Utilisateurs et groupes et aux politiques de sécurité du Kubernetes documentation.

Type : long

Obligatoire : non

runAsNonRoot

Lorsque ce paramètre est spécifié, le conteneur est exécuté en tant qu'utilisateur avec un uid autre que 0. Si ce paramètre n'est pas spécifié, cette règle est appliquée. Ce paramètre correspond aux MustRunAsNonRoot politiques RunAsUser définies dans le module Utilisateurs et groupes et aux politiques de sécurité du Kubernetes documentation.

Type : long

Obligatoire : non

runAsUser

Lorsque ce paramètre est spécifié, le conteneur est exécuté avec l'ID utilisateur spécifié (uid). Si ce paramètre n'est pas spécifié, le groupe spécifié dans les métadonnées d'image correspond au groupe par défaut. Ce paramètre correspond aux MustRanAs politiques RunAsUser définies dans le module Utilisateurs et groupes et aux politiques de sécurité du Kubernetes documentation.

Type : long

Obligatoire : non

volumeMounts

Le volume est monté pour un conteneur destiné à une EKS tâche Amazon. Pour plus d'informations sur les volumes et les montages de volumes dans Kubernetes, voir Volumes dans le Kubernetes documentation.

Type : tableau d’objets EksContainerVolumeMount

Obligatoire : non

mountPath

Le chemin d'accès du conteneur, sur lequel le volume est monté.

Type : chaîne

Obligatoire : non

name

Nom du montage de volume. Ce nom doit correspondre au nom d'un des volumes du pod.

Type : chaîne

Obligatoire : non

readOnly

Si cette valeur est true, le conteneur ne peut accéder au volume qu'en lecture. Dans le cas contraire, le conteneur peut écrire sur le volume. La valeur par défaut est false.

Type : booléen

Obligatoire : non

dnsPolicy

La DNS politique pour le module. La valeur par défaut est ClusterFirst. Si le hostNetwork paramètre n'est pas spécifié, la valeur par défaut estClusterFirstWithHostNet. ClusterFirstindique que toute DNS requête ne correspondant pas au suffixe de domaine de cluster configuré est transmise au serveur de noms en amont hérité du nœud. Si aucune valeur n'a été spécifiée dnsPolicy dans l'RegisterJobDefinitionAPIopération, aucune valeur n'est renvoyée dnsPolicy par l'une DescribeJobDefinitionsou l'autre des DescribeJobsAPIopérations. Le paramètre de spécification du pod contient ClusterFirst ou ClusterFirstWithHostNet, selon la valeur du paramètre hostNetwork. Pour plus d'informations, consultez la DNS politique de Pod dans le Kubernetes documentation.

Valeurs valides : Default | ClusterFirst | ClusterFirstWithHostNet

Type : chaîne

Obligatoire : non

hostNetwork

Indique si le pod utilise l'adresse IP réseau des hôtes. La valeur par défaut est true. Le réglage de cette false valeur pour activer Kubernetes modèle de mise en réseau de pods. La plupart des AWS Batch charges de travail concernent uniquement les sorties et ne nécessitent pas la surcharge liée à l'allocation d'adresses IP pour chaque module pour les connexions entrantes. Pour plus d'informations, voir Espaces de noms d'hôtes et mise en réseau des pods dans le Kubernetes documentation.

Type : booléen

Obligatoire : non

serviceAccountName

Nom du compte de service utilisé pour exécuter le pod. Pour plus d’informations, consultez .Kubernetes comptes de service et configurez un Kubernetes compte de service pour jouer un IAM rôle dans le guide de EKS l'utilisateur Amazon et configurer les comptes de service pour les pods dans Kubernetes documentation.

Type : chaîne

Obligatoire : non

volumes

Spécifie les volumes pour une définition de tâche qui utilise les EKS ressources Amazon.

Type : tableau d’objets EksVolume

Obligatoire : non

emptyDir

Spécifie la configuration d'un Kubernetes emptyDirvolume. Un volume emptyDir est créé pour la première fois lorsqu'un pod est attribué à un nœud. Il existe tant que ce pod fonctionne sur ce nœud. Le volume emptyDir est initialement vide. Tous les conteneurs du pod peuvent lire et écrire les fichiers du volume emptyDir. Toutefois, le volume emptyDir peut être monté sur des chemins identiques ou différents dans chaque conteneur. Lorsqu'un pod est supprimé d'un nœud pour quelque raison que ce soit, les données du emptyDir sont définitivement supprimées. Pour plus d'informations, consultez emptyDirle Kubernetes documentation.

Type : objet EksEmptyDir

Obligatoire : non

medium

Support sur lequel stocker le volume. La valeur par défaut est une chaîne vide utilisant le stockage du nœud.

""

(Par défaut) Utilisez le stockage sur disque du nœud.

« Mémoire »

Utilisez le tmpfs volume soutenu par RAM le nœud. Le contenu du volume est perdu lorsque le nœud redémarre, et tout stockage présent sur le volume est pris en compte dans la limite de mémoire du conteneur.

Type : chaîne

Obligatoire : non

sizeLimit

Taille maximale du volume. Par défaut, aucune taille maximale n'est définie.

Type : String

Contraintes de longueur : longueur minimum de 1. Longueur maximale de 256.

Obligatoire : non

hostPath

Spécifie la configuration d'un Kubernetes hostPathvolume. Un volume hostPath monte un fichier ou un répertoire existant depuis le système de fichiers du nœud hôte dans votre pod. Pour plus d'informations, consultez hostPathle Kubernetes documentation.

Type : objet EksHostPath

Obligatoire : non

chemin

Chemin du fichier ou du répertoire sur l'hôte à monter dans les conteneurs du pod.

Type : chaîne

Obligatoire : non

name

Le nom du volume. Le nom doit être autorisé en tant que nom de DNS sous-domaine. Pour plus d'informations, consultez la section sur les noms DNS de sous-domaines dans le Kubernetes documentation.

Type : String

Obligatoire : oui

secret

Spécifie la configuration d'un Kubernetes secretvolume. Pour plus d'informations, consultez la section « secret » dans le Kubernetes documentation.

Type : objet EksSecret

Obligatoire : non

facultatif

Spécifie si le secret ou les clés du secret doivent être définis.

Type : booléen

Obligatoire : non

secretName

Le nom du secret. Le nom doit être autorisé en tant que nom de DNS sous-domaine. Pour plus d'informations, consultez la section sur les noms DNS de sous-domaines dans le Kubernetes documentation.

Type : String

Obligatoire : oui

Fonctionnalités de la plateforme

platformCapabilities

Les fonctionnalités de la plateforme requises par la définition du poste. Si aucune valeur n'est spécifiée, elle est par défaut EC2. Pour les tâches exécutées sur des ressources FARGATE Fargate, est spécifié.

Note

Si la tâche s'exécute sur les EKS ressources Amazon, vous ne devez pas le spécifierplatformCapabilities.

Type : String

Valeurs valides : EC2 | FARGATE

Obligatoire : non

Propager les tags

propagateTags

Spécifie s'il faut propager les balises de la tâche ou de la définition de la tâche vers la ECS tâche Amazon correspondante. Si aucune valeur n'est spécifiée, les balises ne sont pas propagées. Les balises ne peuvent être propagées aux tâches que lorsque celles-ci sont créées. Pour les balises portant le même nom, les balises de tâche ont la priorité sur les balises de définition de tâche. Si le nombre total de balises combinées entre la tâche et la définition de la tâche est supérieur à 50, la tâche est déplacée vers l'FAILEDétat.

Note

Si la tâche s'exécute sur les EKS ressources Amazon, vous ne devez pas le spécifierpropagateTags.

Type : booléen

Obligatoire : non

Propriétés du nœud

nodeProperties

Lorsque vous enregistrez une définition de tâche parallèle à nœuds multiples, vous devez spécifier une liste de propriétés de nœuds. Ces propriétés de nœud définissent le nombre de nœuds à utiliser dans votre tâche, l'index des nœuds principaux et les différentes plages de nœuds à utiliser. Si la tâche s'exécute sur les ressources Fargate, vous ne pouvez pas le spécifier. nodeProperties Utilisez à la place containerProperties. Les propriétés de nœud suivantes sont autorisées dans une définition de tâche. Pour de plus amples informations, veuillez consulter Tâches parallélisées sur plusieurs nœuds.

Note

Si la tâche s'exécute sur les EKS ressources Amazon, vous ne devez pas le spécifiernodeProperties.

Type : objet NodeProperties

Obligatoire : non

mainNode

Spécifie l'index de nœud pour le nœud principal d'une tâche parallèle à plusieurs nœuds. Cette valeur d'index de nœud doit être inférieure au nombre de nœuds.

Type : entier

Obligatoire : oui

numNodes

Le nombre de nœuds associé à une tâche parallèle à plusieurs nœuds.

Type : entier

Obligatoire : oui

nodeRangeProperties

Une liste des plages de nœuds et leurs propriétés associées avec une tâche parallèle à plusieurs nœuds.

Note

Un groupe de nœuds est un groupe identique de nœuds de travail qui partagent tous les mêmes propriétés de conteneur. Vous pouvez spécifier jusqu' AWS Batch à cinq groupes de nœuds distincts pour chaque tâche.

Type : tableau d’objets NodeRangeProperty

Obligatoire : oui

targetNodes

La plage de nœuds en utilisant les valeurs d'index de nœud. Une plage de nœuds 0:3 indique les nœuds dont les valeurs d'index sont comprises entre 0 et 3. Si la valeur de la plage de départ est omise (:n), 0 est utilisé pour démarrer la plage. Si la valeur de fin de la plage n'est pas spécifiée (n:), l'index de nœud le plus élevé possible est utilisé pour terminer la plage. Vos plages de nœuds cumulatives doivent tenir compte de tous les nœuds (0:n). Vous pouvez imbriquer des plages de nœuds, par exemple 0:10 et4:5. Dans ce cas, les propriétés 4:5 de la plage remplacent les 0:10 propriétés.

Type : chaîne

Obligatoire : non

container

Les détails du conteneur pour la plage de nœuds. Pour de plus amples informations, veuillez consulter Propriétés du contenant.

Type : objet ContainerProperties

Obligatoire : non

Réessayer la stratégie

retryStrategy

Lorsque vous enregistrez une définition de tâche, vous pouvez, si vous le souhaitez, définir une stratégie de nouvelle tentative à adopter pour les tâches en échec qui sont soumises avec cette définition de tâche. Toute stratégie de nouvelle tentative spécifiée au cours d'une SubmitJobopération remplace la stratégie de nouvelle tentative définie ici. Par défaut, chaque tâche est lancée une seule fois. Si vous spécifiez plusieurs tentatives, la tâche est réessayée en cas d'échec. Parmi les exemples de tentative d'échec, citons le renvoi d'un code de sortie différent de zéro par la tâche ou l'arrêt de l'instance de conteneur. Pour de plus amples informations, veuillez consulter Nouvelles tentatives de travail automatisées.

Type : objet RetryStrategy

Obligatoire : non

attempts

Nombre de fois où une tâche est passée en statut RUNNABLE. Vous pouvez indiquer entre 1 et 10 tentatives. Si attempts est supérieur à un, la tâche est relancée ce nombre de fois en cas d'échec, jusqu'à ce que son statut devienne RUNNABLE.

"attempts": integer

Type : entier

Obligatoire : non

evaluateOnExit

Tableau contenant jusqu'à 5 objets qui spécifient les conditions dans lesquelles la tâche est réessayée ou échoue. Si ce paramètre est spécifié, le paramètre attempts doit également être spécifié. Si elle evaluateOnExit est spécifiée mais qu'aucune des entrées ne correspond, la tâche est réessayée.

"evaluateOnExit": [ { "action": "string", "onExitCode": "string", "onReason": "string", "onStatusReason": "string" } ]

Type : tableau d’objets EvaluateOnExit

Obligatoire : non

action

Spécifie l'action à exécuter si toutes les conditions spécifiées (onStatusReason, onReason et onExitCode) sont remplies. Les valeurs ne sont pas sensibles à la casse.

Type : String

Obligatoire : oui

Valeurs valides : RETRY | EXIT

onExitCode

Contient un motif global à faire correspondre à la représentation décimale du résultat ExitCode renvoyé pour une tâche. Le modèle peut contenir jusqu'à 512 caractères. Il ne peut contenir que des chiffres. Il ne peut pas contenir de lettres ou de caractères spéciaux. Il peut éventuellement se terminer par un astérisque (*) ; seul le début de la chaîne doit constituer une correspondance exacte.

Type : chaîne

Obligatoire : non

onReason

Contient un motif global correspondant à Reason celui renvoyé pour une tâche. Le modèle peut contenir jusqu'à 512 caractères. Il peut contenir des lettres, des chiffres, des points (.), des points (:) et des espaces blancs (espaces, onglets). Il peut éventuellement se terminer par un astérisque (*) ; seul le début de la chaîne doit constituer une correspondance exacte.

Type : chaîne

Obligatoire : non

onStatusReason

Contient un motif global correspondant à StatusReason celui renvoyé pour une tâche. Le modèle peut contenir jusqu'à 512 caractères. Il peut contenir des lettres, des chiffres, des points (.), des points (:) et des espaces blancs (espaces, onglets). Il peut éventuellement se terminer par un astérisque (*) ; seul le début de la chaîne doit constituer une correspondance exacte.

Type : chaîne

Obligatoire : non

Priorité de planification

schedulingPriority

Priorité de planification pour les tâches soumises avec cette définition de tâche. Cela n'affecte que les tâches dans les files d'attente de tâches avec une politique de partage équitable. Les tâches avec une priorité de planification plus élevée sont planifiées avant celles dont la priorité de planification est inférieure.

La valeur minimale prise en charge est 0 et la valeur maximale prise en charge est 9999.

Type : entier

Obligatoire : non

Balises

tags

Balises de paire clé-valeur à associer à la définition de la tâche. Pour de plus amples informations, veuillez consulter Marquez vos AWS Batch ressources.

Type : mappage chaîne/chaîne

Obligatoire : non

Timeout

timeout

Vous pouvez configurer un délai d'expiration pour vos tâches de telle sorte que si une tâche dure plus longtemps, AWS Batch elle soit interrompue. Pour de plus amples informations, veuillez consulter Expiration des délais d'exécution des tâches. Si une tâche est interrompue en raison d'un délai imparti, elle n'est pas réessayée. Toute configuration de temporisation spécifiée au cours d'une SubmitJobopération remplace la configuration de temporisation définie ici. Pour de plus amples informations, veuillez consulter Expiration des délais d'exécution des tâches.

Type : objet JobTimeout

Obligatoire : non

attemptDurationSeconds

Durée en secondes (mesurée à partir de l'startedAthorodatage de la tentative de tâche) après la AWS Batch fin des tâches inachevées. La valeur minimale pour le délai d'expiration est 60 secondes.

Pour les tâches de tableau, le délai s'applique aux tâches enfants, et non à la tâche de tableau parent.

Pour les tâches parallel (MNP) à nœuds multiples, le délai d'attente s'applique à l'ensemble de la tâche, et non aux nœuds individuels.

Type : entier

Obligatoire : non