

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

# Utilizzo dei modelli di processo
<a name="job-templates"></a>

Un modello di processo memorizza valori che possono essere condivisi tra le chiamate API `StartJobRun` quando si avvia l'esecuzione di un processo. Supporta due casi d'uso:
+ Per evitare che si ripetano valori di richiesta API `StartJobRun` ricorrenti.
+ Per far rispettare una regola secondo cui determinati valori devono essere forniti tramite richieste API `StartJobRun`.

I modelli di processo consentono di definire un modello riutilizzabile per le esecuzioni dei processi per applicare ulteriori personalizzazioni, ad esempio:
+ Configurazione della capacità di elaborazione dell'esecutore e del driver
+ Impostazione di proprietà di sicurezza e governance come i ruoli IAM
+ Personalizzazione di un'immagine Docker da utilizzare in più applicazioni e pipeline di dati

I seguenti argomenti forniscono informazioni dettagliate sull'utilizzo dei modelli, incluso come utilizzarli per avviare l'esecuzione di un processo e come modificare i parametri dei modelli.

**Topics**
+ [Creare e utilizzare un modello di processo per avviare l'esecuzione di un processo](create-job-template.md)
+ [Definizione di parametri di processo](use-job-template-parameters.md)
+ [Controllo dell'accesso ai modelli di processo](iam-job-template.md)

# Creare e utilizzare un modello di processo per avviare l'esecuzione di un processo
<a name="create-job-template"></a>

Questa sezione descrive la creazione di un modello di lavoro e l'utilizzo del modello per avviare un processo eseguito con AWS Command Line Interface (AWS CLI).

**Per creare un modello di processo**

1. Crea un file `create-job-template-request.json` e specifica i parametri richiesti per l'esecuzione di modello, come illustrato nel file JSON di esempio seguente. Per informazioni su tutti i parametri disponibili, consulta l'[CreateJobTemplate](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/Welcome.html)API.

   La maggior parte dei valori richiesti per l'API `StartJobRun` sono necessari anche per `jobTemplateData`. Se desideri utilizzare i segnaposto per qualsiasi parametro e fornire valori quando richiami StartJobRun utilizzando un modello di lavoro, consulta la sezione successiva sui parametri del modello di lavoro.

   ```
   {
      "name": "mytemplate",
      "jobTemplateData": {
           "executionRoleArn": "iam_role_arn_for_job_execution", 
           "releaseLabel": "emr-6.7.0-latest",
           "jobDriver": {
               "sparkSubmitJobDriver": { 
                   "entryPoint": "entryPoint_location",
                   "entryPointArguments": [ "argument1","argument2",...],
                   "sparkSubmitParameters": "--class <main_class> --conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
               }
           },
           "configurationOverrides": {
               "applicationConfiguration": [
                   {
                       "classification": "spark-defaults", 
                       "properties": {
                            "spark.driver.memory":"2G"
                       }
                   }
               ], 
               "monitoringConfiguration": {
                   "persistentAppUI": "ENABLED", 
                   "cloudWatchMonitoringConfiguration": {
                       "logGroupName": "my_log_group", 
                       "logStreamNamePrefix": "log_stream_prefix"
                   }, 
                   "s3MonitoringConfiguration": {
                       "logUri": "s3://my_s3_log_location/"
                   }
               }
           }
        }
   }
   ```

1. Utilizza il comando `create-job-template` con un percorso per il file `create-job-template-request.json` archiviato localmente.

   ```
   aws emr-containers create-job-template \ 
   --cli-input-json file://./create-job-template-request.json
   ```

**Per avviare un'esecuzione di processo utilizzando un modello di processo**

Fornisci l'ID di cluster virtuale, l'ID modello di processo e il nome di processo nel comando `StartJobRun`, come mostrato nell'esempio seguente.

```
aws emr-containers start-job-run \
--virtual-cluster-id 123456 \
--name myjob \
--job-template-id 1234abcd
```

# Definizione di parametri di processo
<a name="use-job-template-parameters"></a>

I parametri del modello di processo consentono di specificare variabili nel modello di processo. I valori per queste variabili di parametro dovranno essere specificati quando si avvia un’esecuzione di processo utilizzando quel modello di processo. I parametri del modello di processo sono specificati nel formato `${parameterName}`. Puoi scegliere di specificare qualsiasi valore in un campo `jobTemplateData` come parametro del modello di processo. Per ciascuna delle variabili dei parametri del modello di processo, specifica il tipo di dati (`STRING` o `NUMBER`) e, facoltativamente, un valore predefinito. L'esempio seguente mostra come specificare i parametri del modello di processo per la posizione del punto di ingresso, la classe principale e i valori della posizione del log S3.

**Per specificare la posizione del punto di ingresso, la classe principale e la posizione del log di Amazon S3 come parametri del modello di processo**

1. Crea un file `create-job-template-request.json` e specifica i parametri richiesti per l'esecuzione di modello, come illustrato nel file JSON di esempio seguente. Per ulteriori informazioni sui parametri, consulta l'API. [CreateJobTemplate](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/Welcome.html)

   ```
   {
      "name": "mytemplate",
      "jobTemplateData": {
           "executionRoleArn": "iam_role_arn_for_job_execution", 
           "releaseLabel": "emr-6.7.0-latest",
           "jobDriver": {
               "sparkSubmitJobDriver": { 
                   "entryPoint": "${EntryPointLocation}",
                   "entryPointArguments": [ "argument1","argument2",...],
                   "sparkSubmitParameters": "--class ${MainClass} --conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
               }
           },
           "configurationOverrides": {
               "applicationConfiguration": [
                   {
                       "classification": "spark-defaults", 
                       "properties": {
                            "spark.driver.memory":"2G"
                       }
                   }
               ], 
               "monitoringConfiguration": {
                   "persistentAppUI": "ENABLED", 
                   "cloudWatchMonitoringConfiguration": {
                       "logGroupName": "my_log_group", 
                       "logStreamNamePrefix": "log_stream_prefix"
                   }, 
                   "s3MonitoringConfiguration": {
                       "logUri": "${LogS3BucketUri}"
                   }
               }
           },
           "parameterConfiguration": {
               "EntryPointLocation": {
                   "type": "STRING"
               },
               "MainClass": {
                   "type": "STRING",
                   "defaultValue":"Main"
               },
               "LogS3BucketUri": {
                   "type": "STRING",
                   "defaultValue":"s3://my_s3_log_location/"
               }
           }
       }
   }
   ```

1. Utilizza il comando `create-job-template` con un percorso per il file `create-job-template-request.json` archiviato localmente o in Amazon S3.

   ```
   aws emr-containers create-job-template \ 
   --cli-input-json file://./create-job-template-request.json
   ```

**Per avviare un'esecuzione di processo utilizzando un modello di processo con parametri di processo**

Per avviare un processo eseguito con un modello di processo contenente i parametri del modello di processo, specifica l'id del modello di processo e i valori per i parametri del modello di processo nella richiesta API `StartJobRun`, come mostrato di seguito.

```
aws emr-containers start-job-run \
--virtual-cluster-id 123456 \
--name myjob \
--job-template-id 1234abcd \
--job-template-parameters '{"EntryPointLocation": "entry_point_location","MainClass": "ExampleMainClass","LogS3BucketUri": "s3://example_s3_bucket/"}'
```

# Controllo dell'accesso ai modelli di processo
<a name="iam-job-template"></a>

La policy `StartJobRun` consente di imporre che un utente o un ruolo possa eseguire processi solo utilizzando modelli di processo specificati dall'utente e non eseguire operazioni `StartJobRun` senza utilizzare i modelli di processo specificati. A tal fine, assicurati innanzitutto di concedere all'utente o al ruolo un'autorizzazione di lettura per i modelli di processo specificati, come mostrato di seguito.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "emr-containers:DescribeJobRun"
      ],
      "Resource": [
        "arn:aws:emr-containers:*:*:jobtemplate/job_template_1_id",
        "arn:aws:emr-containers:*:*:jobtemplate/job_template_2_id"
      ],
      "Sid": "AllowEMRCONTAINERSDescribejobtemplate"
    }
  ]
}
```

------

Per far sì che un utente o un ruolo sia in grado di invocare un'operazione `StartJobRun` solo quando si utilizzano modelli di processo specificati, è possibile assegnare la seguente autorizzazione della policy `StartJobRun` a un determinato utente o ruolo.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "emr-containers:StartJobRun"
      ],
      "Resource": [
        "arn:aws:emr-containers:*:*:/virtualclusters/virtual_cluster_id"
      ],
      "Condition": {
        "ArnLike": {
          "emr-containers:JobTemplateArn": [
            "arn:aws:emr-containers:*:*:jobtemplate/job_template_1_id",
            "arn:aws:emr-containers:*:*:jobtemplate/job_template_2_id"
          ]
        }
      },
      "Sid": "AllowEMRCONTAINERSStartjobrun"
    }
  ]
}
```

------

Se il modello di processo specifica un parametro del modello di processo all'interno del campo ARN del ruolo di esecuzione, l'utente sarà in grado di fornire un valore per questo parametro e quindi potrà richiamare `StartJobRun` utilizzando un ruolo di esecuzione arbitrario. Per limitare i ruoli di esecuzione che l'utente può fornire, consulta **Controllo dell'accesso al ruolo di esecuzione** in [Uso dei ruoli di esecuzione di processo con Amazon EMR su EKS](iam-execution-role.md). 

Se non viene specificata alcuna condizione nella policy di operazione `StartJobRun` di cui sopra per un determinato utente o ruolo, l'utente o il ruolo potranno invocare un'operazione `StartJobRun` sul cluster virtuale specificato utilizzando un modello di processo arbitrario a cui hanno accesso in lettura o utilizzando un ruolo di esecuzione arbitrario.