

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.

# Notebook-Auftragsworkflows
<a name="create-notebook-auto-run-dag"></a>

Da ein Notebook-Job Ihren benutzerdefinierten Code ausführt, können Sie eine Pipeline erstellen, die einen oder mehrere Notebook-Job-Schritte umfasst. ML-Workflows umfassen häufig mehrere Schritte, darunter einen Verarbeitungsschritt zur Vorverarbeitung der Daten, einen Trainingsschritt zum Aufbau Ihres Modells und einen Modellbewertungsschritt. Eine mögliche Verwendung von Notebook-Aufträgen ist die Vorverarbeitung. Sie könnten beispielsweise ein Notebook haben, das die Datenumwandlung oder -erfassung durchführt, einen EMR-Schritt, der die Datenbereinigung durchführt, und einen weiteren Notebook-Auftrag, der die Feature-Erstellung Ihrer Eingaben durchführt, bevor ein Trainingsschritt initiiert wird. Für einen Notebookjob sind möglicherweise Informationen aus vorherigen Schritten in der Pipeline oder aus benutzerdefinierten Anpassungen als Parameter im Eingabe-Notebook erforderlich. Beispiele, die zeigen, wie Sie Umgebungsvariablen und Parameter an Ihr Notebook übergeben und Informationen aus vorherigen Schritten abrufen können, finden Sie unter [Informationen zu und von Ihrem Notebook weiterleiten Schritt](create-notebook-auto-run-dag-seq.md).

In einem anderen Anwendungsfall kann es vorkommen, dass einer Ihrer Notebook-Aufträge ein anderes Notebook aufruft, um bestimmte Aufgaben während der Ausführung Ihres Notebooks auszuführen. In diesem Fall müssen Sie diese Quell-Notebooks als Abhängigkeiten für Ihren Notebook-Auftragsschritt angeben. Weitere Informationen zum Aufrufen eines anderen Notebooks finden Sie unter [Rufen Sie in Ihrem Notebookjob ein anderes Notebook auf](create-notebook-auto-run-dag-call.md).

Beispielnotizbücher, die zeigen, wie Notizbuchjobs mit dem SageMaker AI Python SDK geplant werden, finden Sie unter [Notizbuch-Beispielnotizbücher für Notizbücher](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-pipelines/notebook-job-step).

# Informationen zu und von Ihrem Notebook weiterleiten Schritt
<a name="create-notebook-auto-run-dag-seq"></a>

In den folgenden Abschnitten werden Möglichkeiten beschrieben, Informationen als Umgebungsvariablen und Parameter an Ihr Notebook zu übergeben.

## Umgebungsvariablen übergeben
<a name="create-notebook-auto-run-dag-seq-env-var"></a>

Übergeben Sie Umgebungsvariablen als Wörterbuch an Ihr `environment_variable` Argument`NotebookJobStep`, wie im folgenden Beispiel gezeigt:

```
environment_variables = {"RATE": 0.0001, "BATCH_SIZE": 1000}

notebook_job_step = NotebookJobStep(
    ...
    environment_variables=environment_variables,
    ...
)
```

Sie können die Umgebungsvariablen im Notebook verwenden`os.getenv()`, wie im folgenden Beispiel gezeigt:

```
# inside your notebook
import os
print(f"ParentNotebook: env_key={os.getenv('env_key')}")
```

## Parameter übergeben
<a name="create-notebook-auto-run-dag-seq-param"></a>

Wenn Sie Parameter an den ersten Notebook-Job-Schritt in Ihrer `NotebookJobStep` Instance übergeben, möchten Sie möglicherweise optional eine Zelle in Ihrem Jupyter-Notebook taggen, um anzugeben, wo neue Parameter oder Parameterüberschreibungen angewendet werden sollen. Anweisungen zum Markieren einer Zelle im Jupyter Notebook finden Sie unter [Parametrisieren Ihres Notebooks](notebook-auto-run-troubleshoot-override.md).

Sie übergeben Parameter über den `parameters` Parameter des Schritts Notebook Job, wie im folgenden Codeausschnitt dargestellt:

```
notebook_job_parameters = {
    "company": "Amazon",
}

notebook_job_step = NotebookJobStep(
    ...
    parameters=notebook_job_parameters,
    ...
)
```

In Ihrem Eingabe-Notebook werden Ihre Parameter nach der Zelle angewendet, die mit dem Tag markiert ist, `parameters` oder am Anfang des Notebookes, wenn Sie keine markierte Zelle haben.

```
# this cell is in your input notebook and is tagged with 'parameters'
# your parameters and parameter overrides are applied after this cell
company='default'
```

```
# in this cell, your parameters are applied
# prints "company is Amazon"
print(f'company is {company}')
```

## Rufen Sie Informationen aus einem vorherigen Schritt ab
<a name="create-notebook-auto-run-dag-seq-interstep"></a>

In der folgenden Diskussion wird erklärt, wie Sie Daten aus einem vorherigen Schritt extrahieren können, um sie an Ihren Notebook-Job-Schritt weiterzuleiten.

**`properties`Attribut verwenden**

Sie können die folgenden Eigenschaften mit dem `properties` Attribut des vorherigen Schritts verwenden:
+ `ComputingJobName` –Der Trainingsauftragsname
+ `ComputingJobStatus` – Der Status des Trainingsjobs
+ `NotebookJobInputLocation` –Der eingegebene Amazon-S3-Speicherort
+ `NotebookJobOutputLocationPrefix` – der Pfad zu Ihren Trainingsjob-Ausgaben, genauer gesagt: `{NotebookJobOutputLocationPrefix}/{training-job-name}/output/output.tar.gz`. mit Ausgaben
+ `InputNotebookName` – Der Name der Eingabe-Notebook-Datei
+ `OutputNotebookName` – Der Name der Ausgabe-Notebookdatei (der möglicherweise nicht im Ausgabeordner des Trainingsjobs vorhanden ist, falls der Job fehlschlägt)

Der folgende Codeausschnitt zeigt, wie Parameter aus dem Eigenschaftenattribut extrahiert werden.

```
notebook_job_step2 = NotebookJobStep(
    ....
    parameters={
        "step1_JobName": notebook_job_step1.properties.ComputingJobName,
        "step1_JobStatus": notebook_job_step1.properties.ComputingJobStatus,
        "step1_NotebookJobInput": notebook_job_step1.properties.NotebookJobInputLocation,
        "step1_NotebookJobOutput": notebook_job_step1.properties.NotebookJobOutputLocationPrefix,
    }
```

**Verwenden Sie JsonGet**

Wenn Sie andere Parameter als die zuvor genannten übergeben möchten und sich die JSON-Ausgaben Ihres vorherigen Schritts in Amazon S3 befinden, verwenden Sie `JsonGet`. `JsonGet` ist ein allgemeiner Mechanismus, mit dem Daten direkt aus JSON-Dateien in Amazon S3 extrahiert werden können.

Führen Sie die folgenden Schritte aus`JsonGet`, um JSON-Dateien in Amazon S3 mit zu extrahieren:

1. Laden Sie Ihre JSON-Datei in Amazon S3 hoch. Wenn Ihre Daten bereits auf Amazon S3 hochgeladen wurden, überspringen Sie diesen Schritt. Das folgende Beispiel zeigt, wie Sie eine JSON-Datei in Amazon S3 hochladen.

   ```
   import json
   from sagemaker.s3 import S3Uploader
   
   output = {
       "key1": "value1", 
       "key2": [0,5,10]
   }
               
   json_output = json.dumps(output)
   
   with open("notebook_job_params.json", "w") as file:
       file.write(json_output)
   
   S3Uploader.upload(
       local_path="notebook_job_params.json",
       desired_s3_uri="s3://path/to/bucket"
   )
   ```

1. Geben Sie Ihre S3-URI und den JSON-Pfad zu dem Wert an, den Sie extrahieren möchten. Im folgenden Beispiel wird ein Objekt `JsonGet` zurückgegeben, das den Index 2 des mit key `key2` (`10`) verknüpften Werts darstellt.

   ```
   NotebookJobStep(
       ....
       parameters={
           # the key job_key1 returns an object representing the value 10
           "job_key1": JsonGet(
               s3_uri=Join(on="/", values=["s3:/", ..]),
               json_path="key2[2]" # value to reference in that json file
           ), 
           "job_key2": "Amazon" 
       }
   )
   ```

# Rufen Sie in Ihrem Notebookjob ein anderes Notebook auf
<a name="create-notebook-auto-run-dag-call"></a>

Sie können eine Pipeline einrichten, in der ein Notebookjob ein anderes Notebook aufruft. Im Folgenden wird ein Beispiel für eine Pipeline mit einem Notebook-Job-Schritt beschrieben, in dem das Notebook zwei andere Notebooks aufruft. Das Eingabe-Notebook enthält die folgenden Zeilen:

```
%run 'subfolder/notebook_to_call_in_subfolder.ipynb'
%run 'notebook_to_call.ipynb'
```

Übergeben Sie diese Notebooks mit `additional_dependencies` an Ihre `NotebookJobStep`-Instances, wie im folgenden Ausschnitt gezeigt. Beachten Sie, dass die Pfade für die Notebooks in vom Stammverzeichnis aus bereitgestellt `additional_dependencies` werden. Informationen darüber, wie SageMaker KI Ihre abhängigen Dateien und Ordner auf Amazon S3 hochlädt, sodass Sie die Pfade zu Ihren Abhängigkeiten korrekt angeben können, finden Sie `additional_dependencies` in [NotebookJobStep](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#sagemaker.workflow.notebook_job_step.NotebookJobStep)der Beschreibung für unter.

```
input_notebook = "inputs/input_notebook.ipynb"
simple_notebook_path = "inputs/notebook_to_call.ipynb"
folder_with_sub_notebook = "inputs/subfolder"

notebook_job_step = NotebookJobStep(
    image_uri=image-uri,
    kernel_name=kernel-name,
    role=role-name,
    input_notebook=input_notebook,
    additional_dependencies=[simple_notebook_path, folder_with_sub_notebook],
    tags=tags,
)
```