

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden von Aufgabenvorlagen
<a name="job-templates"></a>

In einer Auftragvorlage werden Werte gespeichert, die beim Starten eines Auftraglaufs von allen `StartJobRun`-API-Aufrufen gemeinsam genutzt werden können. Sie unterstützt zwei Anwendungsfälle:
+ Um zu verhindern, dass sich wiederholende `StartJobRun`-API-Anforderungswerte auftreten.
+ Um eine Regel durchzusetzen, nach der bestimmte Werte über `StartJobRun`-API-Anfragen bereitgestellt werden müssen.

Auftrag Auftragvorlagen können Sie eine wiederverwendbare Vorlage für Auftragläufe definieren, um zusätzliche Anpassungen vorzunehmen, zum Beispiel:
+ Konfigurieren der Rechenkapazität für Executor und Treiber
+ Einstellen von Sicherheits- und Governance-Eigenschaften wie IAM-Rollen
+ Anpassen eines Docker-Images für die Verwendung in mehreren Anwendungen und Daten-Pipelines

Die folgenden Themen enthalten detaillierte Informationen zur Verwendung von Vorlagen, einschließlich der Verwendung dieser Vorlagen zum Starten einer Auftragsausführung und zum Ändern von Vorlagenparametern.

**Topics**
+ [Eine Auftragsvorlage erstellen und verwenden, um eine Auftragsausführung zu starten](create-job-template.md)
+ [Definieren von Aufgabenvorlagenparametern](use-job-template-parameters.md)
+ [Steuern des Zugriffs auf Aufgabenvorlagen](iam-job-template.md)

# Eine Auftragsvorlage erstellen und verwenden, um eine Auftragsausführung zu starten
<a name="create-job-template"></a>

In diesem Abschnitt wird beschrieben, wie Sie eine Jobvorlage erstellen und die Vorlage verwenden, um eine Jobausführung mit dem AWS Command Line Interface (AWS CLI) zu starten.

**So erstellen Sie eine neue Aufgabenvorlage**

1. Erstellen Sie eine `create-job-template-request.json`-Datei und geben Sie die erforderlichen Parameter für Ihre Aufgabenvorlage an, wie in der folgenden JSON-Beispieldatei gezeigt. Informationen zu allen verfügbaren Parametern finden Sie in der [CreateJobTemplate](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/Welcome.html)API.

   Die meisten Werte, die für die `StartJobRun`-API erforderlich sind, sind auch für `jobTemplateData` erforderlich. Wenn Sie Platzhalter für Parameter verwenden und Werte angeben möchten, wenn Sie StartJobRun mit einer Jobvorlage aufrufen, lesen Sie bitte den nächsten Abschnitt über Jobvorlagenparameter.

   ```
   {
      "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. Verwenden Sie den `create-job-template`-Befehl mit einem Pfad zu der lokal gespeicherten `create-job-template-request.json`-Datei.

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

**So starten Sie eine Auftragsausführung mit einer Auftragsvorlage**

Geben Sie die virtuelle Cluster-ID, die Aufgabenvorlagen-ID und den Aufgabennamen im `StartJobRun`-Befehl an, wie im folgenden Beispiel veranschaulicht.

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

# Definieren von Aufgabenvorlagenparametern
<a name="use-job-template-parameters"></a>

Mit Auftragvorlagenparametern können Sie Variablen in der Auftragvorlage angeben. Werte für diese Parametervariablen müssen angegeben werden, wenn eine Aufgabenausführung mit dieser Aufgabenvorlage gestartet wird. Auftragsvorlagenparameter werden im `${parameterName}`-Format angegeben. Sie können einen beliebigen Wert in einem `jobTemplateData`-Feld als Aufgabenvorlagenparameter angeben. Geben Sie für jede der Parametervariablen der Aufgabenvorlage ihren Datentyp (`STRING` oder `NUMBER`) und optional einen Standardwert an. Das folgende Beispiel zeigt, wie Sie Aufgabenvorlagenparameter für Einstiegspunktposition, Hauptklasse und S3-Protokollspeicherort angeben können.

**Um den Standort des Einstiegspunkts, die Hauptklasse und den Speicherort des Amazon-S3-Protokolls als Parameter für die Aufgabenvorlage anzugeben**

1. Erstellen Sie eine `create-job-template-request.json`-Datei und geben Sie die erforderlichen Parameter für Ihre Aufgabenvorlage an, wie in der folgenden JSON-Beispieldatei gezeigt. Weitere Informationen zu den Parametern finden Sie in der [CreateJobTemplate](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/Welcome.html)API.

   ```
   {
      "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. Verwenden Sie den `create-job-template`-Befehl mit einem Pfad zu der lokal gespeicherten `create-job-template-request.json`-Datei in Amazon S3.

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

**Um eine Aufgabe zu starten, verwenden Sie eine Aufgabenvorlage mit Aufgabenvorlagenparametern**

Um eine Aufgabenausführung mit einer Aufgabenvorlage zu starten, die Aufgabenvorlagenparameter enthält, geben Sie die Aufgabenvorlagen-ID sowie Werte für die Aufgabenvorlagenparameter in der `StartJobRun`-API-Anfrage an, wie unten gezeigt.

```
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/"}'
```

# Steuern des Zugriffs auf Aufgabenvorlagen
<a name="iam-job-template"></a>

Mit der `StartJobRun`-Richtlinie können Sie erzwingen, dass ein Benutzer oder eine Rolle nur Aufträge mit von Ihnen angegebenen Aufgabenvorlagen ausführen kann und keine `StartJobRun`-Operationen ausführen kann, ohne die angegebenen Aufgabenvorlagen zu verwenden. Um dies zu erreichen, stellen Sie zunächst sicher, dass Sie dem Benutzer oder der Rolle eine Leseberechtigung für die angegebenen Aufgabenvorlagen erteilen, wie unten dargestellt.

------
#### [ 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"
    }
  ]
}
```

------

Um sicherzustellen, dass ein Benutzer oder eine Rolle nur dann einen `StartJobRun`-Vorgang aufrufen kann, wenn er bestimmte Aufgabenvorlagen verwendet, können Sie einem bestimmten Benutzer oder einer bestimmten Rolle die folgende `StartJobRun`-Richtlinienberechtigung zuweisen.

------
#### [ 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"
    }
  ]
}
```

------

Wenn die Aufgabenvorlage einen Aufgabenvorlagenparameter innerhalb des ARN-Felds der Ausführungsrolle angibt, kann der Benutzer einen Wert für diesen Parameter angeben und somit `StartJobRun` mit einer beliebigen Ausführungsrolle aufrufen. Informationen zur Einschränkung der Ausführungsrollen, die der Benutzer bereitstellen kann, finden Sie unter **Steuern des Zugriffs auf die Ausführungsrolle** in [Auftragausführungsrollen mit Amazon EMR in EKS verwenden](iam-execution-role.md). 

Wenn in der obigen `StartJobRun`-Aktionsrichtlinie für einen bestimmten Benutzer oder eine Rolle keine Bedingung angegeben ist, darf der Benutzer oder die Rolle mithilfe einer beliebigen Aufgabenvorlage, auf die er Lesezugriff hat, oder mithilfe einer beliebigen Ausführungsrolle `StartJobRun`-Aktionen auf dem angegebenen virtuellen Cluster aufrufen.