

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à.

# Crea una definizione di processo a nodo singolo con più contenitori su risorse Amazon EC2
<a name="create-job-definition-single-node-multi-container"></a>

Completa i seguenti passaggi per creare una definizione di processo a nodo singolo con più contenitori su risorse Amazon Elastic Compute Cloud (Amazon EC2).

**Per creare una nuova definizione di lavoro sulle risorse Amazon EC2:**

1. Apri la AWS Batch console all'indirizzo [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dalla barra di navigazione, scegli Regione AWS da usare.

1. Nel riquadro di navigazione a sinistra, scegli **Job definition**.

1. Scegli **Create** (Crea).

1. Per il **tipo di orchestrazione, scegli** **Amazon Elastic Compute Cloud (**Amazon EC2).

1. Per la **struttura delle definizioni di Job**, disattiva l'elaborazione della **struttura Use ContainerProperties legacy**.

1. Per la **configurazione della piattaforma EC2**, disattiva **Abilita l'elaborazione parallela a più nodi**.

1. Scegli **Next (Successivo)**.

1. Nella sezione **Configurazione generale**, inserisci quanto segue:

   1. Per **Nome**, inserisci un nome univoco per la definizione del lavoro. Il nome può avere una lunghezza massima di 128 caratteri. Deve contenere lettere maiuscole e minuscole, numeri, trattini (-) e caratteri di sottolineatura (\$1).

   1. Per **Timeout di esecuzione, *facoltativo***, inserisci il valore di timeout (in secondi). Il timeout di esecuzione è il periodo di tempo che intercorre prima che un lavoro incompiuto venga terminato. Se un tentativo supera la durata del timeout, il tentativo viene interrotto e passa a uno stato. `FAILED` Per ulteriori informazioni, consulta [Job timeout](job_timeouts.md). Il valore minimo è 60 secondi.

   1. *Attiva la **priorità di pianificazione (facoltativa**).* Inserisci un valore di priorità di pianificazione compreso tra 0 e 100. Ai valori più alti viene data una priorità maggiore.

   1. Espandi **tag: *facoltativo***, quindi scegli **Aggiungi tag** per aggiungere tag alla risorsa. Inserisci una chiave e un valore opzionale, quindi scegli **Aggiungi tag**.

   1. Attiva i **tag Propagate** per propagare i tag dal processo e dalla definizione del processo al task Amazon ECS.

1. Nella sezione **Retry strategy - *opzionale***, inserisci quanto segue:

   1. Per **Job tentations**, inserisci il numero di volte in cui AWS Batch tenta di spostare il job allo `RUNNABLE` status. Immettete un numero compreso tra 1 e 10.

   1. Per le **condizioni della strategia Retry**, scegli **Aggiungi valuta all'uscita**. Inserisci almeno un valore di parametro, quindi scegli un'**azione**. Per ogni set di condizioni, **l'azione** deve essere impostata su **Riprova** o **Esci**. Queste azioni significano quanto segue:
      + **Riprova**: AWS Batch riprova fino al raggiungimento del numero di tentativi di lavoro specificato.
      + **Esci**: AWS Batch interrompe l'esecuzione di un nuovo tentativo.
**Importante**  
Se scegli **Aggiungi valutazione all'uscita**, devi configurare almeno un parametro e scegliere un'**azione** o scegliere **Rimuovi valutazione all'uscita**.

1. Nella sezione **Proprietà dell'attività**, inserisci quanto segue:

   1. Per **Ruolo di esecuzione: *condizionale***, scegli un ruolo per consentire agli agenti Amazon ECS di effettuare chiamate AWS API per tuo conto. Per ulteriori informazioni sulla creazione di un **ruolo di esecuzione, consulta**. [Tutorial: Creare il ruolo di esecuzione IAM](create-execution-role.md)

   1. Scegli il **comando Enable ECS execute** per abilitare l'accesso diretto alla shell del contenitore Amazon ECS e bypassare il sistema operativo host. **Devi scegliere un ruolo Task.**
**Importante**  
Il comando **ECS execute** richiede che il file system sia scrivibile. 

   1. Per il **ruolo Task**, scegli un ruolo Amazon ECS Identity and Access Management (IAM) per consentire al contenitore di effettuare chiamate AWS API per tuo conto. Per ulteriori informazioni, consulta il [ruolo IAM delle attività di Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) nella *Amazon Elastic Container Service Developer Guide*.

   1. Per la **modalità IPC** scegli `host``task`, o. `none` Se `host` specificato, tutti i contenitori che rientrano nelle attività che hanno specificato la modalità IPC host sulla stessa istanza di contenitore condividono le stesse risorse IPC con l'istanza Amazon EC2 host. Se viene specificata un'attività, tutti i contenitori che si trovano all'interno dell'attività specificata condividono le stesse risorse IPC. Se non ne viene specificato nessuno, le risorse IPC all'interno dei contenitori di un'attività sono private e non condivise con altri contenitori in un'attività o nell'istanza del contenitore. Se non è stato specificato alcun valore, la condivisione del namespace della risorsa IPC dipende dalle impostazioni del daemon Docker sull'istanza del container.

   1. Per la **modalità PID** scegli `host` o`task`. Ad esempio, i sidecar di monitoraggio potrebbero aver bisogno di `pidMode` per accedere a informazioni su altri container in esecuzione nella stessa attività. Se `host` specificato, tutti i contenitori all'interno delle attività che hanno specificato la modalità PID dell'host sulla stessa istanza di contenitore condividono lo stesso spazio dei nomi di processo con l'istanza host Amazon EC2. Se è stato specificato `task`, tutti i container all'interno dell'attività specificata condividono lo stesso namespace del processo. Se non è stato specificato alcun valore, l'impostazione predefinita è un namespace privato per ogni container. 

1. Nella sezione **Risorse consumabili**, inserisci quanto segue:

   1. Inserisci un **nome** univoco e il **valore richiesto**.

   1. Puoi aggiungere altre risorse consumabili selezionando **Aggiungi risorsa consumabile**.

1. Nella sezione **Archiviazione**, inserisci quanto segue:

   1. Inserisci un **nome** e un **percorso di origine** per il volume, quindi scegli **Aggiungi volume**. Puoi anche scegliere di attivare Enable EFS.

   1. Puoi aggiungere altri volumi scegliendo **Aggiungi volume**.

1. **Per **Parametri**, **scegliete Aggiungi parametri** per aggiungere segnaposto sostitutivi dei parametri come coppie **Chiave** e Valore opzionali.**

1. **Scegliete Pagina successiva.**

1. Nella sezione **Configurazione del contenitore**:

   1. In **Name** (Nome) immetti un nome per il container.

   1. Per **Essential container**, abilita se il contenitore è essenziale.

   1. Per **Image**, scegli l'Dockerimmagine da usare per il tuo lavoro. Per impostazione predefinita, le immagini nel registro Docker Hub sono disponibili. Puoi anche specificare altri repository con `repository-url/image:tag`. Il nome può avere una lunghezza massima di 225 caratteri. Può contenere lettere maiuscole e minuscole, numeri, trattini (-), caratteri di sottolineatura (\$1), due punti (:), barre (/) e segni numerici (\$1). Questo parametro è mappato a `Image` nella sezione [Crea un container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) dell'[API remota Docker](https://docs.docker.com/engine/api/v1.38/) e al parametro `IMAGE` di [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**Nota**  
L'architettura immagine Docker deve corrispondere all'architettura del processore delle risorse di calcolo su cui sono pianificate. Ad esempio, le immagini Docker basate su ARM possono essere eseguite solo su risorse di calcolo basate su ARM.
      + 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 esempio, `amazon/amazon-ecs-agent`).
      + Le immagini in altri archivi online vengono ulteriormente qualificate da un nome di dominio (ad esempi, `quay.io/assemblyline/ubuntu`).

   1. Per i **requisiti relativi alle risorse**, configura ciascuno dei seguenti elementi:

      1. Per **v CPUs**, scegli il numero di CPUs per il contenitore.

      1. Per **Memoria**, scegli la quantità di memoria per il contenitore.

      1. Per **GPU: *facoltativo***, scegli il numero di GPUs per il contenitore.

   1. Per **User** (Utente) immetti il nome utente per l'utilizzo all'interno del container.

   1. **Attiva Abilita il filesystem di sola lettura** per rimuovere l'accesso in scrittura al volume.

   1. Attiva **Privileged** per concedere al job container autorizzazioni elevate sull'istanza host, simili all'utente root. 

   1. Per **Command**, inserisci i comandi nel campo come equivalenti all'array di stringhe **JSON**.

      Questo parametro è mappato a `Cmd` nella sezione [Crea un container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) dell'[API remota Docker](https://docs.docker.com/engine/api/v1.38/) e al parametro `COMMAND` di [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Per ulteriori informazioni sul Docker `CMD` parametro, vedere [https://docs.docker.com/engine/reference/builder/](https://docs.docker.com/engine/reference/builder/#cmd) \$1cmd.
**Nota**  
È possibile utilizzare valori predefiniti per la sostituzione dei parametri e i segnaposto nel comando. Per ulteriori informazioni, consulta [Parametri](job_definition_parameters.md#parameters).

   1. Per **le credenziali del repository, *facoltativo***, inserisci l'ARN del segreto contenente le tue credenziali.

   1. Per **le variabili di ambiente, *facoltativo***, scegli **Aggiungi variabili di ambiente per aggiungere variabili** di ambiente da passare al contenitore.

   1. Nella sezione **Parametri Linux - *opzionale***:

      1. **Attiva Enable init process** per eseguire un processo di inizializzazione all'interno del contenitore. 

      1. Per **Dimensione della memoria condivisa**, inserisci la dimensione (in MiB) del volume /dev/shm

      1. Per **Dimensione massima di swap**, inserisci la quantità totale di memoria di swap (in MiB) che il contenitore può utilizzare.

      1. Per **Swappiness**, inserite un valore compreso tra 0 e 100 per indicare il comportamento di swappiness del contenitore. Se non specificate un valore e lo scambio è abilitato, il valore predefinito è 60. 

      1. Per **i dispositivi**, scegli **Aggiungi dispositivo per aggiungere un dispositivo**:

         1. Per **Container path (Percorso container)**, specifica il percorso dell'istanza del container per esporre il dispositivo mappato all'istanza host. Se lasci vuoto questo campo, il percorso dell'host viene utilizzato nel contenitore.

         1. Per **Host path (Percorso host)**, specifica il percorso di un dispositivo nell'istanza host.

         1. Per **Autorizzazioni**, scegli una o più autorizzazioni da applicare al dispositivo. **Le autorizzazioni disponibili sono **READ**, **WRITE** e MKNOD.**

      1. Per **Tmpfs, scegli Aggiungi tmpfs** **per aggiungere un mount**. `tmpfs`

   1. 
**Nota**  
La registrazione di Firelens deve essere eseguita in un contenitore dedicato. Per configurare la registrazione Firelens:  
**In ogni contenitore, ad eccezione del contenitore firelens dedicato, imposta il driver Logging su** `awsfirelens`
*Nel tuo contenitore Firelens, imposta la configurazione **Firelens - opzionale e la configurazione Logging - opzionale** sulla destinazione di **registrazione***

      **Nella sezione Configurazione Firelens - opzionale:**
**Importante**  
AWS Batch applica la modalità `host` di rete su job Amazon ECS non MNP e non Fargate. [L'utente root è richiesto](https://github.com/aws/aws-for-fluent-bit/blob/mainline/troubleshooting/debugging.md#amazon-ecs-firelens-root-is-required) per Amazon ECS Firelens. [Quando si eseguono attività che utilizzano la modalità di `host` rete, Amazon ECS sconsiglia di eseguire contenitori utilizzando l'utente root (UID 0) per una maggiore sicurezza.](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#network_mode) Pertanto, tutti i lavori ECS non MNP e non Fargate con registrazione Firelens non soddisferanno le migliori pratiche di sicurezza.

      1. **Per Tipo`fluentd`, `fluentbit` scegliete una delle due opzioni o.** 

      1. In **Opzioni**, inserite la name/value coppia di opzioni. È possibile aggiungere altre **opzioni** utilizzando l'**opzione Aggiunta**.

   1.  Nella sezione **Configurazione della registrazione, *opzionale*:**

      1. Per **Log driver**, scegli il driver di registro da usare. [Per ulteriori informazioni sui driver di registro disponibili, LogConfiguration vedi:LogDriver.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**Nota**  
Per impostazione predefinita, viene utilizzato il driver di `awslogs` registro.

      1. Per **Opzioni**, **scegliete Aggiungi opzione** per aggiungere un'opzione. Immettete una coppia nome-valore, quindi scegliete l'opzione **Aggiungi**.

      1. Per **Segreti**, scegli **Aggiungi** segreto. Inserisci una coppia nome-valore, quindi scegli **Aggiungi segreto** per aggiungere un segreto.
**Suggerimento**  
[Per ulteriori informazioni, vedi:SecretOptions. LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Per **Punti di montaggio, *facoltativo***, scegliete **Aggiungi punti di montaggio per aggiungere punti** di montaggio per i volumi di dati. È necessario specificare il volume di origine e il percorso del contenitore. 

   1. Per **Segreti: *facoltativo***, scegli **Aggiungi segreto** per aggiungere un segreto. Quindi, inserisci una coppia nome-valore e scegli **Aggiungi** segreto.
**Suggerimento**  
[Per ulteriori informazioni, vedi:SecretOptions. LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Per **Ulimiti: *facoltativo***, scegli **Aggiungi ulimit per aggiungere un valore per il contenitore**. `ulimits` **Inserisci i valori **Name**, **Soft limit** e **Hard limit**, quindi scegli Aggiungi ulimit.**

   1. Per **Dipendenze, *facoltativo***, scegli **Aggiungi** dipendenze dal contenitore. Scegli il nome del contenitore e il suo stato per determinare quando verrà avviato.

1. Se hai configurato un solo contenitore, devi scegliere **Aggiungi contenitore** e completare la configurazione del nuovo contenitore. Altrimenti, scegli **Avanti** per rivedere. 