Parametri di definizione del lavoro per ContainerProperties - AWS Batch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Parametri di definizione del lavoro per ContainerProperties

Le definizioni di Job utilizzate ContainerPropertiessono suddivise in più parti:

  • il nome della definizione del processo

  • il tipo di definizione del lavoro

  • i valori predefiniti del segnaposto per la sostituzione dei parametri

  • le proprietà del contenitore per il lavoro

  • le proprietà di Amazon EKS per la definizione del processo necessarie per i lavori eseguiti sulle risorse Amazon EKS

  • le proprietà del nodo necessarie per un lavoro parallelo a più nodi

  • le funzionalità della piattaforma necessarie per i lavori eseguiti sulle risorse di Fargate

  • i dettagli di propagazione dei tag predefiniti della definizione del processo

  • la strategia di riprova predefinita per la definizione del processo

  • la priorità di pianificazione predefinita per la definizione del processo

  • i tag predefiniti per la definizione del processo

  • il timeout predefinito per la definizione del lavoro

Nome della definizione del Job

jobDefinitionName

Quando si registra una definizione di processo, è necessario specificare un nome, Il nome può contenere fino a 128 caratteri. Deve contenere lettere maiuscole e minuscole, numeri, trattini (-) e caratteri di sottolineatura (_). Alla prima definizione di processo registrata con quel nome viene assegnata una revisione pari a 1. Tutte le successive definizioni del processo registrate con tale nome vengono contrassegnate con un numero di revisione incrementale.

Tipo: stringa

Campo obbligatorio: sì

Type

type

Quando si registra una definizione di processo, è necessario specificare il tipo di processo. Se il processo viene eseguito su risorse Fargate, multinode non è supportato. Per ulteriori informazioni sui processi in parallelo a più nodi, consulta Creazione di una definizione di processo parallelo a più nodi.

▬Tipo: stringa

Valori validi: container | multinode

Campo obbligatorio: sì

Parametri

parameters

Quando invii un lavoro, puoi specificare parametri che sostituiscono i segnaposto o sostituiscono i parametri di definizione del lavoro predefiniti. I parametri delle richieste di invio del processo hanno priorità rispetto ai valori predefiniti di una definizione del processo. Ciò significa che è possibile utilizzare la stessa definizione di processo per più lavori che utilizzano lo stesso formato. È inoltre possibile modificare a livello di codice i valori del comando al momento dell'invio.

Tipo: mappatura stringa a stringa

Campo obbligatorio: no

Quando si registra una definizione di processo, è possibile utilizzare segnaposto di sostituzione dei parametri nel campo command delle proprietà del container del processo. La sintassi è esposta di seguito.

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

Nell'esempio precedente, sono presenti segnaposto per la sostituzione del parametro Ref::inputfile, Ref::codec e Ref::outputfile nel comando. È possibile utilizzare l'parametersoggetto nella definizione del processo per impostare valori predefiniti per questi segnaposto. Ad esempio, per impostare un valore predefinito per il segnaposto Ref::codec, è necessario specificare quanto segue nella definizione del processo:

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

Quando questa definizione di processo viene inviata per l'esecuzione, l'Ref::codecargomento nel comando per il contenitore viene sostituito con il valore predefinito,. mp4

Proprietà del contenitore

Quando registri una definizione di processo, specifica un elenco di proprietà del contenitore che vengono passate al demone Docker su un'istanza del contenitore quando il lavoro viene inserito. Di seguito sono indicate le proprietà del container consentite in una definizione di processo. Per i processi a nodo singolo, queste proprietà del container vengono impostate a livello di definizione del processo. Per i processi paralleli a più nodi, le proprietà del container vengono impostate nel livello Proprietà del nodo, per ciascun gruppo di nodi.

command

Il comando che viene inviato al container. Questo parametro è mappato a Cmd nella sezione Crea un container dell'API remota Docker e al parametro COMMAND di docker run. Per ulteriori informazioni sul parametro Docker CMD, consulta https://docs.docker.com/engine/reference/builder/#cmd.

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

Tipo: array di stringhe

Campo obbligatorio: no

environment

Le variabili di ambiente da passare a un container. Questo parametro è mappato a Env nella sezione Create a container di Docker Remote API e l'opzione --env a docker run.

Importante

Non è consigliabile utilizzare variabili d'ambiente non crittografate per informazioni sensibili, ad esempio dati di credenziali.

Nota

Le variabili di ambiente non devono iniziare con. AWS_BATCH Questa convenzione di denominazione è riservata alle variabili impostate dal AWS Batch servizio.

Tipo: array di coppie chiave-valore

Campo obbligatorio: no

name

Il nome della variabile di ambiente.

▬Tipo: stringa

Campo obbligatorio: sì, quando viene usato environment.

value

Il valore della variabile di ambiente.

▬Tipo: stringa

Campo obbligatorio: sì, quando viene usato environment.

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

Quando registri una definizione di lavoro, puoi specificare un ruolo IAM. Il ruolo fornisce all'agente container Amazon ECS le autorizzazioni per richiamare le azioni API specificate nelle politiche associate per tuo conto. I lavori eseguiti su risorse Fargate devono fornire un ruolo di esecuzione. Per ulteriori informazioni, consulta AWS Batch esecuzione (ruolo IAM).

▬Tipo: stringa

Campo obbligatorio: no

fargatePlatformConfiguration

La configurazione della piattaforma per i lavori eseguiti sulle risorse di Fargate. I processi in esecuzione su risorse EC2 non devono specificare questo parametro.

Tipo: oggetto FargatePlatformdi configurazione

Campo obbligatorio: no

platformVersion

La versione della piattaforma AWS Fargate da utilizzare per i lavori o per LATEST utilizzare una versione recente e approvata della piattaforma Fargate AWS .

▬Tipo: stringa

Impostazione predefinita: LATEST

Campo obbligatorio: no

image

L'immagine utilizzata per iniziare un lavoro. Questa stringa viene trasmessa direttamente al daemon Docker. Le immagini nel registro Docker Hub sono disponibili di default. Puoi anche specificare altri repository con repository-url/image:tag. Il nome può contenere un massimo di 255 lettere (maiuscole e minuscole); sono consentiti numeri, trattini, caratteri di sottolineatura, due punti, punti, barre e cancelletti. Questo parametro è mappato a Image nella sezione Crea un container dell'API remota Docker e al parametro IMAGE di docker run.

Nota

Dockerl'architettura dell'immagine deve corrispondere all'architettura del processore delle risorse di elaborazione su cui è pianificata. Ad esempio, Docker le immagini Arm basate possono essere eseguite solo su risorse di elaborazione Arm basate.

  • Le immagini negli archivi pubblici di Amazon ECR utilizzano le convenzioni complete registry/repository[:tag] o di registry/repository[@digest] denominazione (ad esempio,). public.ecr.aws/registry_alias/my-web-app:latest

  • Le immagini nei repository Amazon ECR utilizzano la convenzione di registry/repository:[tag] denominazione completa. Ad esempio, aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest.

  • Le immagini in repository ufficiali su Docker Hub utilizzano un singolo nome (ad esempio ubuntu o mongo).

  • Le immagini in altri repository su Docker Hub vengono qualificate con un nome di organizzazione (ad esempi, amazon/amazon-ecs-agent).

  • Le immagini in altri archivi online vengono ulteriormente qualificate da un nome di dominio (ad esempi, quay.io/assemblyline/ubuntu).

Tipo: stringa

Campo obbligatorio: sì

instanceType

Il tipo di istanza da usare per un processo parallelo a più nodi. Attualmente tutti i gruppi di nodi in un processo parallelo a più nodi devono utilizzare lo stesso tipo di istanza. Questo parametro non è valido per i processi container a nodo singolo o per i lavori eseguiti su risorse Fargate.

▬Tipo: stringa

Campo obbligatorio: no

jobRoleArn

Quando registri una definizione di lavoro, puoi specificare un ruolo IAM. che fornisce al container del processo le autorizzazioni necessarie per chiamare le operazioni dell'API specificate nelle policy associate per conto dell'utente. Per ulteriori informazioni, consulta Ruoli IAM per le attività nella Guida per sviluppatori di Amazon Elastic Container Service.

▬Tipo: stringa

Campo obbligatorio: no

linuxParameters

Modifiche specifiche di Linux che vengono applicate al container, ad esempio i dettagli per le mappature dei dispositivi.

"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 }

Tipo: oggetto LinuxParameters

Campo obbligatorio: no

devices

Elenco dei dispositivi mappati nel container. Questo parametro è mappato a Devices nella sezione Crea un container di API Docker Remote e l'opzione --device a docker run.

Nota

Questo parametro non è applicabile ai processi in esecuzione su risorse Fargate.

Tipo: matrice di oggetti Device

Campo obbligatorio: no

hostPath

Percorso in cui si trova il dispositivo disponibile nell'istanza del contenitore host.

Tipo: stringa

Campo obbligatorio: sì

containerPath

Si trova il percorso in cui è esposto il dispositivo nel contenitore. Se questo non è specificato, il dispositivo viene esposto nello stesso percorso del percorso host.

▬Tipo: stringa

Campo obbligatorio: no

permissions

Autorizzazioni per il dispositivo nel container. Se questo non è specificato, le autorizzazioni sono impostate su READWRITE, eMKNOD.

Tipo: matrice di stringhe

Campo obbligatorio: no

Valori validi: READ | WRITE | MKNOD

initProcessEnabled

Se true, esegue un processo init nel container che inoltra segnali e raccoglie i processi. Questo parametro è mappato all'opzione --init su docker run. Questo parametro richiede la versione 1.25 o successiva di Docker Remote API sull'istanza di container. Per controllare la versione Docker Remote API nell'istanza di container, accedi all'istanza di container ed esegui il seguente comando: sudo docker version | grep "Server API version"

Tipo: Booleano

Campo obbligatorio: no

maxSwap

La quantità totale di memoria di swap (in MiB) che un job può utilizzare. Questo parametro viene convertito nell'opzione --memory-swap in docker run dove il valore sarebbe la somma della memoria del container più il valore maxSwap. Per ulteriori informazioni, consulta la sezione relativa ai dettagli --memory-swap nella documentazione Docker.

Se viene specificato il valore maxSwap di 0, il container non utilizzerà lo swap. I valori accettati sono 0 o qualsiasi numero intero positivo. Se il maxSwap parametro viene omesso, il contenitore utilizza la configurazione di swap per l'istanza del contenitore su cui viene eseguito. È necessario impostare un valore maxSwap per il parametro swappiness da utilizzare.

Nota

Questo parametro non è applicabile ai processi in esecuzione su risorse Fargate.

Tipo: integer

Campo obbligatorio: no

sharedMemorySize

Valore per le dimensioni (in MiB) del volume /dev/shm. Questo parametro è mappato all'opzione --shm-size su docker run.

Nota

Questo parametro non è applicabile ai processi in esecuzione su risorse Fargate.

Tipo: integer

Campo obbligatorio: no

swappiness

In questo modo è possibile ottimizzare il comportamento swappiness di memoria di un container. Un swappiness valore di 0 fa sì che lo scambio non avvenga a meno che non sia assolutamente necessario. Un valore swappiness di 100 produrrà lo swap delle pagine in modo aggressivo. I valori accettati sono numeri interi compresi tra 0 e 100. Se il parametro swappiness non è specificato, viene utilizzato un valore predefinito 60. Se non viene specificato un valore per maxSwap, questo parametro verrà ignorato. Se maxSwap è impostato su 0, il container non utilizza lo swap. Questo parametro è mappato all'opzione --memory-swappiness su docker run.

Quando utilizzi una configurazione swap container, considera quanto segue:

  • Lo spazio di swap deve essere abilitato e allocato sull'istanza di container per consentire ai container di utilizzarlo.

    Nota

    Le AMI ottimizzate per Amazon ECS non hanno lo swap abilitato per impostazione predefinita. È necessario abilitare lo swap sull'istanza per utilizzare questa funzionalità. Per ulteriori informazioni, consulta Instance Store Swap Volumes nella Amazon EC2 User Guide o Come posso allocare memoria per funzionare come spazio di swap in un'istanza Amazon EC2 utilizzando un file di swap? .

  • I parametri dello spazio di swap sono supportati solo per le definizioni dei processi che utilizzano risorse EC2.

  • Se i parametri maxSwap e swappiness vengono omessi dalla definizione di un processo, per ogni container viene ripristinato il valore swappiness predefinito di 60. L'utilizzo totale dello swap è limitato a due volte la riserva di memoria del contenitore.

Nota

Questo parametro non è applicabile ai processi in esecuzione su risorse Fargate.

Tipo: integer

Campo obbligatorio: no

tmpfs

Il percorso del container, le opzioni di montaggio e la dimensione montaggio tmpfs.

Tipo: matrice di oggetti Tmpfs

Nota

Questo parametro non è applicabile ai processi in esecuzione su risorse Fargate.

Campo obbligatorio: no

containerPath

Il percorso assoluto del file nel container in cui è montato il volume tmpfs.

Tipo: stringa

Campo obbligatorio: sì

mountOptions

L'elenco delle opzioni di montaggio del volume tmpfs.

Valori validi: 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»

Tipo: matrice di stringhe

Campo obbligatorio: no

size

Le dimensioni (in MiB) del volume tmpfs.

Tipo: integer

Campo obbligatorio: sì

logConfiguration

La specifica di configurazione del registro per il lavoro.

Questo parametro è mappato a LogConfig nella sezione Crea un container di API Docker Remote e l'opzione --log-driver a docker run. Per impostazione predefinita, i container utilizzano lo stesso driver di log utilizzato dal daemon Docker. Tuttavia, il contenitore può utilizzare un driver di registrazione diverso dal demone Docker specificando un driver di registro con questo parametro nella definizione del contenitore. Per utilizzare un driver di registrazione diverso per un contenitore, il sistema di registro deve essere configurato sull'istanza del contenitore o su un altro server di registro per fornire opzioni di registrazione remota. Per ulteriori informazioni sulle opzioni per diversi driver di log supportati, consulta Configure logging drivers (Configurazione dei driver di log) nella documentazione di Docker.

Nota

AWS Batch attualmente supporta un sottoinsieme dei driver di registrazione disponibili per il demone Docker (mostrati nel tipo di dati). LogConfiguration

Questo parametro richiede la versione 1.18 o successiva di Docker Remote API sull'istanza di container. Per controllare la versione Docker Remote API nell'istanza di container, accedi all'istanza di container ed esegui il seguente comando: 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" } ] } ] }

Tipo: oggetto LogConfiguration

Campo obbligatorio: no

logDriver

Il driver di registro da utilizzare per il lavoro. Per impostazione predefinita, AWS Batch abilita il driver di awslogs registro. I valori validi elencati per questo parametro sono driver di log con i quali l'agente del container Amazon ECS può comunicare per impostazione predefinita.

Questo parametro è mappato a LogConfig nella sezione Crea un container di API Docker Remote e l'opzione --log-driver a docker run. Per impostazione predefinita, i job utilizzano lo stesso driver di registrazione utilizzato dal demone Docker. Tuttavia, il job può utilizzare un driver di registrazione diverso dal daemon Docker specificando un driver di log con questo parametro nella definizione del processo. Se si desidera specificare un altro driver di registrazione per un job, il sistema di log deve essere configurato sull'istanza del contenitore nell'ambiente di calcolo. Oppure, in alternativa, configuralo su un altro server di registro per fornire opzioni di registrazione remota. Per ulteriori informazioni sulle opzioni per diversi driver di log supportati, consulta Configure logging drivers (Configurazione dei driver di log) nella documentazione di Docker.

Nota

AWS Batch attualmente supporta un sottoinsieme dei driver di registrazione disponibili per il demone Docker. Ulteriori driver di log potranno essere disponibili nei rilasci futuri dell'agente del container Amazon ECS.

I driver di log supportati sono awslogs, fluentd, gelf, json-file, journald, logentries, syslog e splunk.

Nota

I lavori eseguiti sulle risorse Fargate sono limitati ai driver awslogs e splunk log.

Questo parametro richiede la versione 1.18 o successiva di Docker Remote API sull'istanza di container. Per controllare la versione Docker Remote API nell'istanza di container, accedi all'istanza di container ed esegui il seguente comando: sudo docker version | grep "Server API version"

Nota

L'agente container Amazon ECS che viene eseguito su un'istanza di contenitore deve registrare i driver di registrazione disponibili su quell'istanza con la variabile di ECS_AVAILABLE_LOGGING_DRIVERS ambiente. Altrimenti, i contenitori posizionati su quell'istanza non possono utilizzare queste opzioni di configurazione del registro. Per ulteriori informazioni, consulta Configurazione dell'agente del container Amazon ECS nella Guida per gli sviluppatori di Amazon Elastic Container Service.

awslogs

Speciifica il driver di registrazione Amazon CloudWatch Logs. Per ulteriori informazioni, consulta Utilizzo del driver di log awslogs il driver di registrazione Amazon CloudWatch Logs nella documentazione Docker.

fluentd

Specifica il driver di log Fluentd. Per ulteriori informazioni, inclusi l'utilizzo e le opzioni, consulta il driver di registrazione Fluentd nella documentazione Docker.

gelf

Specifica il driver di log GELF (Greylog Extended Format). Per ulteriori informazioni, inclusi l'utilizzo e le opzioni, consulta il driver di registrazione Graylog Extended Format nella documentazione Docker.

journald

Specifica il driver di log journald. Per ulteriori informazioni, incluso l'utilizzo e le opzioni, consulta il driver di registrazione Journald nella documentazione di Docker.

json-file

Specifica il driver di log del file JSON. Per ulteriori informazioni, incluso l'utilizzo e le opzioni, consulta il driver di registrazione dei file JSON nella documentazione di Docker.

splunk

Specifica il driver di log Splunk. Per ulteriori informazioni, tra cui utilizzo e opzioni, consulta il driver di registrazione Splunk nella documentazione di Docker.

syslog

Specifica il driver di log syslog. Per ulteriori informazioni, incluso l'utilizzo e le opzioni, consulta il driver di registrazione Syslog nella documentazione di Docker.

Tipo: stringa

Campo obbligatorio: sì

Valori validi: awslogs | fluentd | gelf | journald | json-file | splunk | syslog

Nota

Se disponi di un driver personalizzato non elencato in precedenza che desideri utilizzare con l'agente container Amazon ECS, puoi eseguire il fork del progetto Amazon ECS container agent disponibile su GitHub e personalizzarlo per funzionare con quel driver. Ti consigliamo di inviare le richieste pull per le modifiche che desideri siano incluse. Tuttavia, Amazon Web Services attualmente non supporta le richieste che eseguono copie modificate di questo software.

options

Opzioni di configurazione del registro da inviare a un driver di registro per il lavoro.

Questo parametro richiede la versione 1.19 o successiva di Docker Remote API sull'istanza di container.

Tipo: mappatura stringa a stringa

Campo obbligatorio: no

secretOptions

Un oggetto che rappresenta il segreto da inviare alla configurazione di log. Per ulteriori informazioni, consulta Specifica di dati sensibili.

Tipo: matrice di oggetti

Campo obbligatorio: no

name

Il nome dell'opzione del driver di registro da impostare nel processo.

Tipo: stringa

Campo obbligatorio: sì

valueFrom

L'Amazon Resource Name (ARN) del segreto da esporre alla configurazione di log del contenitore. I valori supportati sono l'ARN completo del segreto di Secrets Manager o l'ARN completo del parametro nell'archivio dei parametri SSM.

Nota

Se il parametro SSM Parameter Store esiste nella Regione AWS stessa operazione che stai avviando, puoi utilizzare l'ARN completo o il nome del parametro. Se il parametro esiste in una Regione diversa, deve essere specificato l'ARN completo.

Tipo: stringa

Campo obbligatorio: sì

memory

Questo parametro è obsoleto, utilizzalo al suo posto. resourceRequirements

Il numero di MiB di memoria riservati per il lavoro.

Ad esempioresourceRequirements, se la definizione del processo contiene una sintassi simile alla seguente.

"containerProperties": { "memory": 512 }

La sintassi equivalente utilizzata resourceRequirements è la seguente.

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

Tipo: integer

Campo obbligatorio: sì

mountPoints

I punti di montaggio per i volumi di dati nel container. Questo parametro è mappato a Volumes nella sezione Create a container di Docker Remote API e l'opzione --volume a docker run.

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

Tipo: array di oggetti

Campo obbligatorio: no

sourceVolume

Il nome del volume da montare.

▬Tipo: stringa

Campo obbligatorio: sì, quando viene usato mountPoints.

containerPath

Il percorso sul contenitore in cui montare il volume host.

▬Tipo: stringa

Campo obbligatorio: sì, quando viene usato mountPoints.

readOnly

Se il valore è true, il container avrà accesso in sola lettura al volume. Se il valore è false, il container avrà accesso in scrittura al volume.

Tipo: Booleano

Campo obbligatorio: no

Impostazione predefinita: False

networkConfiguration

La configurazione di rete per i lavori eseguiti su risorse Fargate. I processi in esecuzione su risorse EC2 non devono specificare questo parametro.

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

Tipo: array di oggetti

Campo obbligatorio: no

assignPublicIp

Indica se il processo ha un indirizzo IP pubblico. Questa operazione è necessaria se il lavoro richiede l'accesso alla rete in uscita.

▬Tipo: stringa

Valori validi: ENABLED | DISABLED

Campo obbligatorio: no

Impostazione predefinita: DISABLED

privileged

Se il parametro è true, al container vengono assegnati privilegi elevati nell'istanza di container host (simile all'utente root). Questo parametro è mappato a Privileged nella sezione Create a container di Docker Remote API e l'opzione --privileged a docker run. Questo parametro non è applicabile ai processi in esecuzione su risorse Fargate. Non fornirlo né specificarlo come falso.

"privileged": true|false

Tipo: Booleano

Campo obbligatorio: no

readonlyRootFilesystem

Se il parametro è true, al container viene assegnato l'accesso in sola lettura al file system radice. Questo parametro è mappato a ReadonlyRootfs nella sezione Create a container di Docker Remote API e l'opzione --read-only a docker run.

"readonlyRootFilesystem": true|false

Tipo: Booleano

Campo obbligatorio: no

resourceRequirements

Il tipo e la quantità di una risorsa da assegnare a un container. Le risorse supportate includono GPU, MEMORY e VCPU.

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

Tipo: array di oggetti

Campo obbligatorio: no

type

Il tipo di risorsa da assegnare a un container. Le risorse supportate includono GPU, MEMORY e VCPU.

▬Tipo: stringa

Campo obbligatorio: sì, quando viene usato resourceRequirements.

value

La quantità di risorsa specificata da prenotare per il container. I valori variano in base al type specificato.

type="GPU"

Il numero di GPU fisici da prenotare per il container. Il numero di GPU riservate per tutti i contenitori di un processo non può superare il numero di GPU disponibili sulla risorsa di elaborazione su cui viene avviato il processo.

type="MEMORY"

Il limite rigido (in MiB) della memoria da presentare al container. Se il container tenta di superare la memoria specificata qui, viene terminato. Questo parametro è mappato a Memory nella sezione Crea un container di API Docker Remote e l'opzione --memory a docker run. Per un processo, è necessario specificare almeno 4 MiB di memoria. Questo è obbligatorio ma può essere specificato in più posizioni per i processi MNP (Multi-Node Parallel). Deve essere specificato almeno una volta per ogni nodo. Questo parametro è mappato a Memory nella sezione Crea un container di API Docker Remote e l'opzione --memory a docker run.

Nota

Se stai cercando di massimizzare l'utilizzo delle risorse fornendo ai job quanta più memoria possibile per un particolare tipo di istanza, consulta. Risorsa di calcoloGestione della memoria

Per i lavori eseguiti su risorse Fargate, value devono corrispondere a uno dei valori supportati. Inoltre, i VCPU valori devono essere uno dei valori supportati per quel valore di memoria.

VCPU MEMORY

0,25 vCPU

512, 1024 e 2048 MiB

0,5 vCPU

1024-4096 MiB con incrementi di 1024 MiB

1 vCPU

2048-8192 MiB con incrementi di 1024 MiB

2 vCPU

4096-16384 MiB con incrementi di 1024 MiB

4 vCPU

8192-30720 MiB con incrementi di 1024 MiB

8 vCPU

16384-61440 MiB con incrementi di 4096 MiB

16 vCPU

32768-122880 MiB con incrementi di 8192 MiB

type="VCPU"

Il numero di vCPU prenotate per il processo. Questo parametro è mappato a CpuShares nella sezione Crea un container di API Docker Remote e l'opzione --cpu-shares a docker run. Ogni vCPU equivale a 1.024 condivisioni di CPU. Per i lavori eseguiti su risorse EC2, è necessario specificare almeno una vCPU. È obbligatorio ma può essere specificato in diversi punti. Deve essere specificato almeno una volta per ogni nodo.

Per i lavori eseguiti su risorse Fargate, value deve corrispondere a uno dei valori supportati e i MEMORY valori devono essere uno dei valori supportati per quel valore VCPU. I valori supportati sono 0,25, 0,5, 1, 2, 4, 8 e 16.

L'impostazione predefinita per la quota del conteggio risorse vCPU on demand di Fargate è 6 vCPU. Per ulteriori informazioni sulle quote Fargate, vedere Quote AWS Fargate nel. Riferimenti generali di Amazon Web Services

▬Tipo: stringa

Campo obbligatorio: sì, quando viene usato resourceRequirements.

secrets

I segreti del lavoro che sono esposti come variabili di ambiente. Per ulteriori informazioni, consulta Specifica di dati sensibili.

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

Tipo: array di oggetti

Campo obbligatorio: no

name

Il nome della variabile di ambiente che contiene il segreto.

▬Tipo: stringa

Campo obbligatorio: sì, quando viene usato secrets.

valueFrom

Il segreto da esporre al container. I valori supportati sono l'Amazon Resource Name (ARN) completo del segreto Secrets Manager o l'ARN completo del parametro nell'SSM Parameter Store.

Nota

Se il parametro SSM Parameter Store esiste nello Regione AWS stesso processo che stai avviando, puoi utilizzare l'ARN completo o il nome del parametro. Se il parametro esiste in una Regione diversa, deve essere specificato l'ARN completo.

▬Tipo: stringa

Campo obbligatorio: sì, quando viene usato secrets.

ulimits

Un elenco di valori ulimits da impostare nel container. Questo parametro è mappato a Ulimits nella sezione Create a container di Docker Remote API e l'opzione --ulimit a docker run.

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

Tipo: array di oggetti

Campo obbligatorio: no

name

type di ulimit.

▬Tipo: stringa

Campo obbligatorio: sì, quando viene usato ulimits.

hardLimit

Il limite rigido per il tipo ulimit.

Tipo: integer

Campo obbligatorio: sì, quando viene usato ulimits.

softLimit

Il limite flessibile per il tipo ulimit.

Tipo: integer

Campo obbligatorio: sì, quando viene usato ulimits.

user

Il nome utente per l'utilizzo all'interno del container. Questo parametro è mappato a User nella sezione Create a container di Docker Remote API e l'opzione --user a docker run.

"user": "string"

▬Tipo: stringa

Campo obbligatorio: no

vcpus

Questo parametro è obsoleto, utilizzalo al suo posto. resourceRequirements

Il numero di vCPU prenotate per il container.

Come esempio di utilizzoresourceRequirements, se la definizione del processo contiene righe simili a queste:

"containerProperties": { "vcpus": 2 }

Le righe equivalenti utilizzate resourceRequirements sono le seguenti.

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

Tipo: integer

Campo obbligatorio: sì

volumes

Quando si registra una definizione di processo, è possibile specificare un elenco di volumi da passare al daemon Docker su un'istanza di container. Nelle proprietà del container sono consentiti i seguenti parametri:

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

Nome del volume. Il nome può contenere un massimo di 255 lettere (maiuscole e minuscole), numeri, trattini e caratteri di sottolineatura. Nel parametro sourceVolume della definizione del container mountPoints viene fatto riferimento a questo nome.

▬Tipo: stringa

Campo obbligatorio: no

host

Il contenuto del parametro host determina se il volume dati persiste nell'istanza di container host e dove viene archiviato. Se il parametro host è vuoto, il daemon Docker assegna automaticamente un percorso dell'host per il volume di dati. Tuttavia, non è garantito che i dati persistano dopo l'interruzione dell'esecuzione del contenitore ad essi associato.

Nota

Questo parametro non è applicabile ai processi in esecuzione su risorse Fargate.

Tipo: oggetto

Campo obbligatorio: no

sourcePath

Il percorso sull'istanza di container dell'host presentato al container. Se questo parametro è vuoto, il daemon Docker assegna automaticamente un percorso host.

Se il parametro host contiene una posizione del file sourcePath, il volume di dati rimane nella posizione specificata sull'istanza di container dell'host finché non viene eliminato manualmente. Se il valore sourcePath non è presente nell'istanza di container host, viene creato automaticamente dal daemon Docker. Se la posizione è presente, i contenuti della cartella del percorso di origine vengono esportati.

▬Tipo: stringa

Campo obbligatorio: no

efsVolumeConfiguration

Questo parametro viene specificato quando utilizzi un file system Amazon Elastic File System per l'archiviazione di attività. Per ulteriori informazioni, consulta Volumi Amazon EFS.

Tipo: oggetto

Campo obbligatorio: no

authorizationConfig

I dettagli di configurazione dell'autorizzazione per il file system Amazon EFS.

▬Tipo: stringa

Campo obbligatorio: no

accessPointId

L'ID del punto di accesso Amazon EFS da utilizzare. Se viene specificato un punto di accesso, il valore della directory principale specificato in EFSVolumeConfiguration deve essere omesso o impostato su. / Ciò impone il percorso impostato sul punto di accesso EFS. Se si utilizza un punto di accesso, la crittografia di transito deve essere abilitata in EFSVolumeConfiguration. Per ulteriori informazioni, consulta Utilizzo dei punti di accesso Amazon EFS nella Guida per l'utente di Amazon Elastic File System.

▬Tipo: stringa

Campo obbligatorio: no

iam

Determina se utilizzare il ruolo IAM del AWS Batch lavoro definito in una definizione di processo durante il montaggio del file system Amazon EFS. Se abilitato, la crittografia di transito deve essere abilitata nella casella EFSVolumeConfiguration. Se questo parametro viene omesso, viene utilizzato il comportamento predefinito di DISABLED. Per ulteriori informazioni, consulta Utilizzo dei punti di accesso Amazon EFS.

▬Tipo: stringa

Valori validi: ENABLED | DISABLED

Campo obbligatorio: no

fileSystemId

L'ID del file system Amazon EFS da utilizzare.

▬Tipo: stringa

Campo obbligatorio: no

rootDirectory

La directory all'interno del file system Amazon EFS da montare come directory principale all'interno dell'host. Se questo parametro viene omesso, viene utilizzata la radice del volume Amazon EFS. Se lo specifichi/, ha lo stesso effetto dell'omissione di questo parametro. La lunghezza massima è 4.096 caratteri.

Importante

Se un punto di accesso EFS è specificato inauthorizationConfig, il parametro della directory principale deve essere omesso o impostato / su. Ciò impone il percorso impostato sul punto di accesso Amazon EFS.

▬Tipo: stringa

Campo obbligatorio: no

transitEncryption

Indica se abilitare o meno la crittografia per i dati Amazon EFS in transito tra l'host Amazon ECS e il server Amazon EFS. Se si utilizza l'autorizzazione Amazon EFS IAM, è necessario abilitare la crittografia di transito. Se questo parametro viene omesso, viene utilizzato il comportamento predefinito di DISABLED. Per ulteriori informazioni, consulta Crittografia dei dati in transito nella Guida per l'utente di Amazon Elastic File System.

▬Tipo: stringa

Valori validi: ENABLED | DISABLED

Campo obbligatorio: no

transitEncryptionPort

La porta da utilizzare per l'invio di dati crittografati tra l'host Amazon ECS e il server Amazon EFS. Se non si specifica una porta di crittografia di transito, verrà utilizzata la strategia di selezione della porta utilizzata dall'helper per il montaggio di Amazon EFS. Il valore deve essere compreso tra 0 e 65.535. Per ulteriori informazioni, consulta Assistente per il montaggio di EFS nella Guida per l'utente di Amazon Elastic File System.

Tipo: integer

Campo obbligatorio: no

Proprietà Amazon EKS

Un oggetto con varie proprietà specifiche dei processi basati su Amazon ECS. Questo non deve essere specificato per le definizioni dei job basate su Amazon ECS.

podProperties

Le proprietà delle risorse del Kubernetes pod di un lavoro.

Tipo: oggetto EksPodProperties

Campo obbligatorio: no

containers

Le proprietà del container utilizzato nel pod Amazon EKS.

Tipo: oggetto EksContainer

Campo obbligatorio: no

args

Un array di argomenti per il punto di ingresso. Se non è specificato, viene utilizzato il CMD dell’immagine del container. Corrisponde al args membro nella parte Entrypoint del Pod in. Kubernetes I riferimenti alle variabili di ambiente vengono espansi utilizzando l'ambiente del container.

Se la variabile di ambiente a cui si fa riferimento non esiste, il riferimento nel comando non viene modificato. Ad esempio, se il riferimento è a "$(NAME1)" e la variabile di ambiente NAME1 non esiste, la stringa del comando rimarrà "$(NAME1)". $$ viene sostituito con $ e la stringa risultante non viene espansa. Ad esempio, $$(VAR_NAME) viene passato come $(VAR_NAME) a prescindere dall’esistenza della variabile di ambiente VAR_NAME. Per ulteriori informazioni, vedete CMD nel riferimento a Dockerfile e Definire un comando e argomenti per un pod nella documentazione. Kubernetes

Tipo: matrice di stringhe

Campo obbligatorio: no

command

Il punto di ingresso per il container. Non viene eseguito in una shell (interprete di comandi). Se non è specificato, viene utilizzato il ENTRYPOINT dell’immagine del container. I riferimenti alle variabili di ambiente vengono espansi utilizzando l'ambiente del container.

Se la variabile di ambiente a cui si fa riferimento non esiste, il riferimento nel comando non viene modificato. Ad esempio, se il riferimento è a "$(NAME1)" e la variabile di ambiente NAME1 non esiste, la stringa del comando rimarrà "$(NAME1)". $$ viene sostituito con $ e la stringa risultante non viene espansa. Ad esempio, $$(VAR_NAME) verrà passato come $(VAR_NAME) a prescindere dall’esistenza della variabile di ambiente VAR_NAME. Il punto di ingresso non può essere aggiornato. Per ulteriori informazioni, vedere ENTRYPOINT nel riferimento a Dockerfile e Definire un comando e argomenti per un contenitore e Entrypoint nella documentazione. Kubernetes

Tipo: matrice di stringhe

Campo obbligatorio: no

env

Le variabili di ambiente da passare a un container.

Nota

Le variabili di ambiente non possono iniziare con "AWS_BATCH". Questa convenzione di denominazione è riservata alle variabili che impostano. AWS Batch

Tipo: matrice di oggetti EksContainerEnvironmentVariable

Campo obbligatorio: no

name

Il nome della variabile di ambiente.

Tipo: stringa

Campo obbligatorio: sì

value

Il valore della variabile di ambiente.

▬Tipo: stringa

Campo obbligatorio: no

image

L'immagine Docker utilizzata per avviare il container.

Tipo: stringa

Campo obbligatorio: sì

imagePullPolicy

La policy di estrazione immagini per il container. I valori supportati sono Always, IfNotPresent e Never. Questo parametro per impostazione predefinita è IfNotPresent. Tuttavia, se è specificato il tag :latest, viene ripristinata l’impostazione predefinita Always. Per ulteriori informazioni, consulta Aggiornamento delle immagini nella Kubernetesdocumentazione.

▬Tipo: stringa

Campo obbligatorio: no

name

Il nome del container. Se il nome non è specificato, viene utilizzato il nome predefinito, "Default". Ogni container in un pod deve avere un nome univoco.

▬Tipo: stringa

Campo obbligatorio: no

resources

Il tipo e la quantità di risorse da assegnare a un container. Le risorse supportate includono memory, cpu e nvidia.com/gpu. Per ulteriori informazioni, consulta Gestione delle risorse per pod e contenitori nella Kubernetesdocumentazione.

Tipo: oggetto EksContainerResourceRequirements

Campo obbligatorio: no

limits

Il tipo e la quantità di risorse specificate da prenotare per il container. I valori variano in base al name specificato. Le risorse possono essere chieste utilizzando oggetti limits o requests.

memory

Il limite rigido di memoria (in MiB) per il container, espresso in numeri interi con il suffisso "Mi". Se il container prova a superare la memoria qui specificata, sarà terminato. Devi specificare almeno 4 MiB di memoria per un processo. La memory può essere specificata in limits e/o requests. Se la memory è specificata in entrambi, il valore specificato in limits deve essere uguale al valore specificato in requests.

Nota

Per ottimizzare l'utilizzo delle risorse, fornisci ai processi quanta più memoria possibile per il tipo di istanza specifica in uso. Per scoprire come, consulta Risorsa di calcoloGestione della memoria.

cpu

Il numero di CPU prenotate per il container. I valori devono essere un multiplo pari di 0.25. La cpu può essere specificata in limits e/o requests. Se la cpu è specificata in entrambi, il valore specificato in limits deve essere almeno pari al valore specificato in requests.

nvidia.com/gpu

Il numero di GPU prenotate per il container. I valori devono essere un numero intero. La memory può essere specificata in limits e/o requests. Se la memory è specificata in entrambi, il valore specificato in limits deve essere uguale al valore specificato in requests.

Tipo: mappatura stringa a stringa

Valore dei vincoli di lunghezza: lunghezza minima di 1. La lunghezza massima è 256 caratteri.

Campo obbligatorio: no

requests

Il tipo e la quantità di risorse specificate da chiedere per il container. I valori variano in base al name specificato. Le risorse possono essere chieste utilizzando oggetti limits o requests.

memory

Il limite rigido di memoria (in MiB) per il container, espresso in numeri interi con il suffisso "Mi". Se il container prova a superare la memoria qui specificata, sarà terminato. Devi specificare almeno 4 MiB di memoria per un processo. La memory può essere specificata in limits e/o requests. Se la memory è specificata in entrambi, il valore specificato in limits deve essere uguale al valore specificato in requests.

Nota

Se stai cercando di massimizzare l'utilizzo delle risorse fornendo ai job quanta più memoria possibile per un particolare tipo di istanza, consulta. Risorsa di calcoloGestione della memoria

cpu

Il numero di vCPU prenotate per il container. I valori devono essere un multiplo pari di 0.25. La cpu può essere specificata in limits e/o requests. Se la cpu è specificata in entrambi, il valore specificato in limits deve essere uguale al valore specificato in requests.

nvidia.com/gpu

Il numero di GPU prenotate per il container. I valori devono essere un numero intero. La nvidia.com/gpu può essere specificata in limits e/o requests. Se la nvidia.com/gpu è specificata in entrambi, il valore specificato in limits deve essere uguale al valore specificato in requests.

Tipo: mappatura stringa a stringa

Valore dei vincoli di lunghezza: lunghezza minima di 1. La lunghezza massima è 256 caratteri.

Campo obbligatorio: no

securityContext

Il contesto di sicurezza per un processo. Per ulteriori informazioni, consulta Configurare un contesto di sicurezza per un pod o un contenitore nella Kubernetes documentazione.

Tipo: oggetto EksContainerSecurityContext

Campo obbligatorio: no

privileged

Quando questo parametro è true, al container sono assegnate autorizzazioni elevati nell'istanza di container host. Il livello delle autorizzazioni è simile alle autorizzazioni degli root utenti. Il valore predefinito è false. Questo parametro corrisponde alle privileged politiche di sicurezza del pod Privileged nella documentazione. Kubernetes

Tipo: Booleano

Campo obbligatorio: no

readOnlyRootFilesystem

Quando questo parametro è true, al container viene assegnato l'accesso in sola lettura al file system root. Il valore predefinito è false. Questo parametro corrisponde alle ReadOnlyRootFilesystem politiche di sicurezza del pod Volumes and file system presenti nella Kubernetesdocumentazione.

Tipo: Booleano

Campo obbligatorio: no

runAsGroup

Quando questo parametro è specificato, il container viene eseguito come ID gruppo specificato (gid). Se questo parametro non è specificato, l’impostazione predefinita è il gruppo specificato nei medatati dell’immagine. Questo parametro corrisponde alle RunAsGroup MustRunAs politiche di sicurezza del pod Utenti e gruppi presenti nella Kubernetesdocumentazione.

Tipo: long

Campo obbligatorio: no

runAsNonRoot

Quando questo parametro è specificato, il container viene eseguito come utente con un uid diverso da 0. Se questo parametro non è specificato, viene applicata tale regola. Questo parametro corrisponde alle RunAsUser MustRunAsNonRoot politiche di sicurezza del pod Utenti e gruppi presenti nella Kubernetesdocumentazione.

Tipo: long

Campo obbligatorio: no

runAsUser

Quando questo parametro è specificato, il container viene eseguito come ID utente specificato (uid). Se questo parametro non è specificato, l’impostazione predefinita è l’utente specificato nei medatati dell’immagine. Questo parametro corrisponde alle RunAsUser MustRanAs politiche di sicurezza del pod Utenti e gruppi presenti nella Kubernetesdocumentazione.

Tipo: long

Campo obbligatorio: no

volumeMounts

Il volume viene montato per un container per un processo Amazon EKS. Per ulteriori informazioni sui volumi e sui montaggi dei volumi inKubernetes, consulta Volumes nella Kubernetesdocumentazione.

Tipo: matrice di oggetti EksContainerVolumeMount

Campo obbligatorio: no

mountPath

Il percorso sul container in cui è montato il volume.

▬Tipo: stringa

Campo obbligatorio: no

name

Il nome del montaggio del volume. Deve corrispondere al nome di uno dei volumi nel pod.

▬Tipo: stringa

Campo obbligatorio: no

readOnly

Se il valore è true, il container avrà accesso in sola lettura al volume. In caso contrario, il container può scrivere sul volume. Il valore predefinito è false.

Tipo: Booleano

Campo obbligatorio: no

dnsPolicy

La policy DNS per il pod. Il valore predefinito è ClusterFirst. Se il parametro hostNetwork non è specificato, l’impostazione predefinita è ClusterFirstWithHostNet. ClusterFirst indica che qualunque query DNS non corrispondente al suffisso del dominio del cluster configurato viene inoltrata al server nomi upstream ereditato dal nodo. Se non è stato specificato alcun valore dnsPolicy nell'operazione RegisterJobDefinition API, non viene restituito alcun valore dnsPolicy dalle DescribeJobdefinizioni o dalle operazioni DescribeJobsAPI. L'impostazione delle specifiche del pod conterrà ClusterFirst o ClusterFirstWithHostNet, a seconda del valore del parametro hostNetwork. Per ulteriori informazioni, consulta la politica DNS di Pod nella Kubernetesdocumentazione.

Valori validi: Default | ClusterFirst | ClusterFirstWithHostNet

▬Tipo: stringa

Campo obbligatorio: no

hostNetwork

Indica se il pod utilizza l'indirizzo IP di rete degli host. Il valore predefinito è true. L'impostazione di questa opzione false abilita il modello di rete Kubernetes pod. La maggior parte dei AWS Batch carichi di lavoro è di sola uscita e non richiede il sovraccarico dell'allocazione IP per ogni pod per le connessioni in ingresso. Per ulteriori informazioni, consulta Host namespaces e Pod networking nella documentazione. Kubernetes

Tipo: Booleano

Campo obbligatorio: no

serviceAccountName

Il nome dell’account di servizio utilizzato per l’esecuzione del pod. Per ulteriori informazioni, consulta Account di Kubernetes servizio e Configurazione di un account di Kubernetes servizio per assumere un ruolo IAM nella Amazon EKS User Guide e Configurare gli account di servizio per i pod nella Kubernetesdocumentazione.

▬Tipo: stringa

Campo obbligatorio: no

volumes

Specifica i volumi per una definizione di processo che utilizza risorse Amazon EKS.

Tipo: matrice di oggetti EksVolume

Campo obbligatorio: no

EmptyDir

Specifica la configurazione di un volume. Kubernetes emptyDir Un volume emptyDir viene creato per la prima volta quando un pod viene assegnato a un nodo. Esiste finché il pod funziona su quel nodo. Il volume emptyDir inizialmente è vuoto. Tutti i container nel pod possono leggere e scrivere i file nel volume emptyDir. Il volume emptyDir,tuttavia, può essere montato sullo stesso percorso o su percorsi diversi in ogni container. Quando un pod viene rimosso da un nodo per un motivo qualunque, i dati nella emptyDir vengono eliminati definitivamente. Per ulteriori informazioni, consulta EmptyDir nella documentazione. Kubernetes

Tipo: oggetto Dir EksEmpty

Campo obbligatorio: no

medium

Il supporto per memorizzare il volume. Il valore predefinito è una stringa vuota, che utilizza la memoria del nodo.

""

(Impostazione predefinita) Utilizza la memoria su disco del nodo.

"Memory"

Usa il volume tmpfs supportato dalla RAM del nodo. I contenuti del volume vengono persi al riavvio del nodo e tutta la memoria sul volume viene conteggiata in base al limite di memoria del container.

▬Tipo: stringa

Campo obbligatorio: no

Limite di dimensione

La dimensione massima del volume. Per impostazione predefinita, non è definita alcuna dimensione massima.

▬Tipo: stringa

Limitazioni di lunghezza: lunghezza minima pari a 1. La lunghezza massima è 256 caratteri.

Campo obbligatorio: no

Percorso dell'host

Speciifica la configurazione di un Kubernetes hostPath volume. Un volume hostPath monta un file o una directory esistente dal file system del nodo host nel pod. Per ulteriori informazioni, vedete HostPath nella Kubernetes documentazione.

Tipo: oggetto EksHostPath

Campo obbligatorio: no

path

Il percorso del file o della directory sull'host da montare in container nel pod.

▬Tipo: stringa

Campo obbligatorio: no

nome

Nome del volume. Il nome deve essere consentito come nome sottodominio DNS. Per ulteriori informazioni, consulta i nomi dei sottodomini DNS nella Kubernetes documentazione.

Tipo: stringa

Campo obbligatorio: sì

Secret

Specifica la configurazione di un volume. Kubernetes secret Per ulteriori informazioni, vedere secret nella Kubernetesdocumentazione.

Tipo: oggetto EksSecret

Campo obbligatorio: no

facoltativo

Speciifica se è necessario definire il segreto o le chiavi del segreto.

Tipo: Booleano

Campo obbligatorio: no

NomeSegreto

Il nome del segreto. Il nome deve essere consentito come nome sottodominio DNS. Per ulteriori informazioni, consulta i nomi dei sottodomini DNS nella documentazione. Kubernetes

Tipo: stringa

Campo obbligatorio: sì

Funzionalità della piattaforma

platformCapabilities

Le funzionalità della piattaforma richieste dalla definizione del lavoro. Se non viene specificato alcun valore, il valore predefinito è EC2. Per i lavori eseguiti su risorse Fargate, FARGATE è specificato.

Nota

Se il job viene eseguito su risorse Amazon EKS, non devi specificareplatformCapabilities.

▬Tipo: stringa

Valori validi: EC2 | FARGATE

Campo obbligatorio: no

Propaga i tag

propagateTags

Specifica se propagare i tag dal processo o dalla definizione del processo all'attività Amazon ECS corrispondente. Se non viene specificato alcun valore, i tag non vengono propagati. I tag possono essere propagati alle attività solo quando l'attività viene creata. Per i tag con lo stesso nome, viene data la priorità ai tag di processo anziché ai tag delle definizioni di processo. Se il numero totale di tag combinati del processo e della definizione del processo è superiore a 50, il lavoro viene FAILED spostato nello stato.

Nota

Se il job viene eseguito su risorse Amazon EKS, non devi specificarepropagateTags.

Tipo: Booleano

Campo obbligatorio: no

Proprietà del nodo

nodeProperties

Quando si registra una definizione di processo parallelo multinodo, è necessario specificare un elenco di proprietà del nodo. Queste proprietà dei nodi definiscono il numero di nodi da utilizzare nel job, l'indice del nodo principale e i diversi intervalli di nodi da utilizzare. Se il lavoro viene eseguito su risorse Fargate, non è possibile specificare. nodeProperties Utilizza invece containerProperties. Di seguito sono indicate le proprietà del nodo consentite in una definizione di processo. Per ulteriori informazioni, consulta Lavori paralleli multinodo.

Nota

Se il job viene eseguito su risorse Amazon EKS, non devi specificarenodeProperties.

Tipo: oggetto NodeProperties

Campo obbligatorio: no

mainNode

Specifica l'indice del nodo per il nodo principale di un processo parallelo a più nodi. Il valore dell'indice del nodo deve essere inferiore al numero di nodi.

Tipo: integer

Campo obbligatorio: sì

numNodes

Il numero di nodi associati a un processo parallelo multinodo.

Tipo: integer

Campo obbligatorio: sì

nodeRangeProperties

Un elenco di intervalli di nodi e le relative proprietà associate a un processo parallelo multinodo.

Nota

Un gruppo di nodi è un gruppo identico di nodi di lavoro che condividono tutti le stesse proprietà del contenitore. È possibile utilizzare AWS Batch per specificare fino a cinque gruppi di nodi distinti per ogni job.

Tipo: Matrice di oggetti NodeRangeProperty

Campo obbligatorio: sì

targetNodes

L'intervallo di nodi, utilizzando i valori di indice del nodo. Un intervallo di 0:3 indica i nodi con i valori di indice compresi tra 0 e 3. Se il valore dell'intervallo iniziale viene omesso (:n), viene utilizzato 0 per iniziare l'intervallo. Se il valore di chiusura dell'intervallo (n:) viene omesso, viene utilizzato l'indice di nodo più alto possibile per chiudere l'intervallo. Gli intervalli di nodo cumulativi devono comprendere tutti i nodi (0:n). È possibile annidare intervalli di nodi, ad esempio 0:10 e4:5. In questo caso, le proprietà dell'4:5intervallo hanno la precedenza sulle 0:10 proprietà.

▬Tipo: stringa

Campo obbligatorio: no

container

I dettagli del container per l'intervallo di nodo. Per ulteriori informazioni, consulta Proprietà del contenitore.

Tipo: oggetto ContainerProperties

Campo obbligatorio: no

Riprova la strategia

retryStrategy

Quando si registra una definizione di processo, è possibile specificare una strategia per il numero di tentativi da utilizzare per i processi non riusciti inviati con questa definizione di processo. Qualsiasi strategia di nuovo tentativo specificata durante un'SubmitJoboperazione ha la precedenza sulla strategia di nuovo tentativo definita qui. Per impostazione predefinita, ogni processo viene tentato una sola volta. Se si specifica più di un tentativo, il processo viene ritentato se fallisce. Esempi di tentativo fallito includono il processo che restituisce un codice di uscita diverso da zero o l'istanza del contenitore viene terminata. Per ulteriori informazioni, consulta Ritentativi di lavoro automatizzati.

Tipo: oggetto RetryStrategy

Campo obbligatorio: no

attempts

Il numero di volte per cui spostare un processo nello stato RUNNABLE. Puoi specificare da 1 a 10 tentativi. Se il valore di attempts è maggiore di uno, in caso di errore il processo viene ritentato il numero di volte specificato, fino a quando viene spostato in RUNNABLE.

"attempts": integer

Tipo: integer

Campo obbligatorio: no

evaluateOnExit

Matrice di un massimo di 5 oggetti che specificano le condizioni in base alle quali il processo viene riprovato o fallito. Se viene specificato questo parametro, è necessario specificare anche il parametro attempts. Se evaluateOnExit viene specificato ma nessuna delle voci corrisponde, il processo viene ritentato.

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

Tipo: matrice di oggetti EvaluateOnExit

Campo obbligatorio: no

action

Specifica l'azione da eseguire se vengono soddisfatte tutte le condizioni specificate (onStatusReason, onReason e onExitCode). I valori non fanno distinzione tra maiuscole e minuscole.

Tipo: stringa

Campo obbligatorio: sì

Valori validi: RETRY | EXIT

onExitCode

Contiene uno schema a globo da confrontare con la rappresentazione decimale del ExitCode valore restituito per un lavoro. Il modello può contenere fino a 512 caratteri. Può contenere solo numeri. Non può contenere lettere o caratteri speciali. Facoltativamente può terminare con un asterisco (*) in modo che solo l'inizio della stringa debba essere una corrispondenza esatta.

▬Tipo: stringa

Campo obbligatorio: no

onReason

Contiene uno schema a globo da confrontare con Reason quello restituito per un lavoro. Il modello può contenere fino a 512 caratteri. Può contenere lettere, numeri, punti (.), due punti (:) e spazi bianchi (spazi, tabulazioni). Facoltativamente può terminare con un asterisco (*) in modo che solo l'inizio della stringa debba essere una corrispondenza esatta.

▬Tipo: stringa

Campo obbligatorio: no

onStatusReason

Contiene uno schema a globo da confrontare con StatusReason quello restituito per un lavoro. Il modello può contenere fino a 512 caratteri. Può contenere lettere, numeri, punti (.), due punti (:) e spazi bianchi (spazi, tabulazioni). Facoltativamente può terminare con un asterisco (*) in modo che solo l'inizio della stringa debba essere una corrispondenza esatta.

▬Tipo: stringa

Campo obbligatorio: no

Priorità di pianificazione

schedulingPriority

La priorità di pianificazione per i lavori inviati con questa definizione di processo. Ciò riguarda solo i processi in coda di lavoro con una policy di ripartizione equa. I processi con una priorità di pianificazione più alta vengono pianificati prima dei lavori con una priorità di pianificazione inferiore.

Il valore minimo supportato è 0 e il valore massimo supportato è 9999.

Tipo: integer

Campo obbligatorio: no

Tag

tags

Tag di coppia chiave-valore da associare alla definizione del processo. Per ulteriori informazioni, consulta Tagging delle risorse AWS Batch.

Tipo: mappatura stringa a stringa

Campo obbligatorio: no

Timeout

timeout

È possibile configurare una durata di timeout per i processi in modo che, se un lavoro dura più a lungo, lo AWS Batch interrompa. Per ulteriori informazioni, consulta Job timeout. Se un lavoro viene interrotto a causa di un timeout, non viene ritentato. Qualsiasi configurazione di timeout specificata durante un'SubmitJoboperazione ha la precedenza sulla configurazione di timeout definita qui. Per ulteriori informazioni, consulta Job timeout.

Tipo: oggetto JobTimeout

Campo obbligatorio: no

attemptDurationSeconds

La durata in secondi (misurata in base al startedAt timestamp del tentativo di lavoro) dopo la fine dei lavori non completati. AWS Batch Il valore minimo per il timeout è 60 secondi.

Per i processi dell'array, il timeout si applica ai processi figlio, non al processo dell'array padre.

Per processi paralleli multinodo (MNP), il timeout si applica all'intero processo, non ai singoli nodi.

Tipo: integer

Campo obbligatorio: no